我在
kube-system
命名空间下创建了一个名为“test-sa”的 ServiceAccount,并创建了一个 ClusterRoleBinding 将此服务帐户绑定到 cluster-admin
角色:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: test-sa-binding
subjects:
- kind: ServiceAccount
name: test-sa
apiGroup: ""
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: ""
尝试使用此服务帐户执行
helm install
命令时,出现以下错误:
无法继续安装:无法获取有关资源的信息:禁止使用 serviceaccounts“test-sa-ns1”:用户“test-sa”无法获取命名空间“ns1”中 API 组“”中的资源“serviceaccounts”
我在这里缺少什么?据我所知 ClusterRoleBinding 应该适用于所有命名空间
我将所有功劳归功于给出这个答案的@Malgorzata......
将
ServiceAccount
更改为 User
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: test-sa-binding
subjects:
- kind: ServiceAccount
name: test-sa
apiGroup: ""
namespace: kube-system
roleRef:
kind: User
name: cluster-admin
apiGroup: ""
我写这篇文章是为了提高它的答案,因为如果我早点找到它,我就不会浪费我的时间。