Я пытаюсь дать моей учетной записи службы foo
разрешения на получение списка узлов в кластере (через kubectl get nodes
). Я создал кластерную роль и привязку роли со следующими разрешениями:
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: foo-cluster-role
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
Когда я запускаю модуль с этой учетной записью службы, я не могу запустить kubectl get nodes
:
root@debugger:/# kubectl get nodes
Error from server (Forbidden): nodes is forbidden: User "system:serviceaccount:default:foo" cannot list resource "nodes" in API group "" at the cluster scope
Странно , когда я спрашиваю через kubectl auth can-i
, он говорит мне, что у меня должен быть доступ:
root@debugger:/# kubectl auth can-i get nodes
Warning: resource 'nodes' is not namespace scoped
yes
Как мне настроить учетную запись службы, чтобы у меня был доступ к списку узлов в кластере?
edit clusterrolebinding выглядит так:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: foo-binding
subjects:
- kind: ServiceAccount
name: foo
roleRef:
kind: ClusterRole
name: foo-cluster-role
apiGroup: ""