在K8s安装控制器与代理报错:需先装CRD,安装Agnos未解决
解决方案:Kubernetes安装控制器/代理时的"CRD must be installed"及RoleBinding版本错误
1. 修正RBAC资源的API版本
- 打开报错的
role.yaml文件,找到RoleBinding资源的apiVersion字段,将rbac.authorization.k8s.io/v1beta1替换为rbac.authorization.k8s.io/v1 - 同步检查所有关联的RBAC资源(Role、ClusterRole、ClusterRoleBinding),确保全部使用
rbac.authorization.k8s.io/v1版本——Kubernetes 1.22+已废弃v1beta1版本的RBAC API,不再提供支持
2. 确认并安装对应控制器所需CRD
- 先查看集群已安装的CRD:
kubectl get crds - 对比控制器官方文档,确认缺少的CRD,使用官方提供的CRD清单执行安装:
kubectl apply -f <控制器CRD清单文件路径> - 注意:无关CRD(如你之前安装的Agnos)无法解决当前问题,必须安装目标控制器要求的对应CRD
3. 重新部署资源
- 修正API版本并完成CRD安装后,重新部署相关资源:
kubectl apply -f role.yaml -n jenkins - 若存在其他部署清单(如控制器、代理的配置文件),也需一并重新执行部署
内容的提问来源于stack exchange,提问作者Restfull-Rider
相关产品推荐
相关产品推荐

