CRD仅能管理Pod吗?能否用CRD管理Service或ConfigMap?
CRD能否管理Pod之外的K8s资源?
你同事的说法完全不属实。CRD(自定义资源定义)只是用来扩展Kubernetes API、定义自定义资源结构规则的工具,真正实现资源管控逻辑的是和CRD配套的控制器(Controller)。只要控制器的代码逻辑支持,CRD完全可以用来管理Service、ConfigMap,甚至Deployment、Ingress等所有Kubernetes原生资源,还能同时组合管理多种资源。
举个实际场景:你可以定义一个叫WebApp的CRD,里面包含应用镜像地址、服务端口、配置项这些字段。然后编写对应的控制器,当用户创建一个WebApp实例时,控制器会自动完成一系列操作:
- 创建Deployment来运行Pod
- 创建Service对外暴露应用端口
- 生成ConfigMap存储应用配置并挂载到Pod里
说白了,CRD是给你自定义API的能力,而控制器是执行具体资源操作的核心。只要你在控制器里写了操作Service、ConfigMap的逻辑,CRD就能间接管控这些资源。
总结:CRD+控制器的组合可以管理任何K8s资源,根本不限于Pod。
内容的提问来源于stack exchange,提问作者User12547645
相关产品推荐
相关产品推荐

