Из того, что я вижу, ваш yaml
файл поврежден в нескольких местах.
Как упоминается @ rfum , вам нужно указать пространство имен внутри Role
и тамв конце resources: ["pods/exec"]
кажется лишним символом, поэтому ваш Role
должен выглядеть следующим образом:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: qa-namespaces
name: sa-test-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]
Вы можете создать ServiceAccount
, используя следующую команду:
kubectl create serviceaccount sa-test-serviceaccount --namespace qa-namespaces
Ваш RoleBinding
также немного отключен и должен выглядеть следующим образом:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: sa-test-rolebinding
namespace: qa-namespaces
subjects:
- kind: ServiceAccount
name: sa-test-serviceaccount
namespace: qa-namespaces
roleRef:
kind: Role
name: sa-test-role
apiGroup: rbac.authorization.k8s.io
Я также рекомендую прочитать Настройка разрешений в Kubernetes с помощью RBAC ,и Использование авторизации RBAC .