无法将 ClusterRoleBinding 附加到 Kubernetes ServiceAccount

Unable to attach a ClusterRoleBinding to a Kubernetes ServiceAccount

我正在尝试使用 ClusterRoleBinding 授予 Kubernetes ServiceAccount 集群管理员角色:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins
  namespace: jenkins

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: jenkins
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: jenkins
  namespace: jenkins

...我收到此错误:

The ClusterRoleBinding "jenkins" is invalid: roleRef: Invalid value: rbac.RoleRef{APIGroup:"rbac.authorization.k8s.io", Kind:"ClusterRole", Name:"cluster-admin"}:
 cannot change roleRef

我已验证 ClusterRole 确实存在:

kubectl get clusterrole
NAME                                                                   AGE
admin                                                                  1d
alb-ingress-controller                                                 1d
aws-node                                                               1d
cluster-admin                                                          1d

我也曾尝试将其他集群角色附加到我的服务帐户,但未能成功。

我认为这意味着您不能将集群角色附加到服务帐户,如果是这种情况,那么您如何向服务帐户授予集群级别的权限?

错误 "cannot change roleRef" 指的是我尝试创建的 ClusterRoleBinding 已经存在。

通过 运行 kubectl get clusterrolebinding 我能够看到 ClusterRoleBinding 已经存在。

在 运行 kubectl delete clusterrolebinding/jenkins 之后,我能够成功执行上面的 YAML。