Kubernetes - Пользователь «system:serviceaccount:management:gitlab-admin» не может получить ресурс «serviceaccounts» в API> группе «» в пространстве имен «services»
Я получаю эту ошибку -
Ошибка: обработанные манифесты содержат уже существующий ресурс. Невозможно продолжить> установку: не удалось получить информацию о ресурсе: serviceaccounts "simpleapi" запрещен:> Пользователь "system:serviceaccount:management:gitlab-admin" не может получить ресурс "serviceaccounts" в API> группе "" в пространстве имен "Сервисы"
apiVersion: v1
kind: ServiceAccount
metadata:
name: gitlab
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: gitlab-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: gitlab
namespace: kube-system
- kind: ServiceAccount
name: gitlab
namespace: services
Я использую это для RBAC как администратор кластера. Почему я это получаю. Я также попробовал следующее, но все еще получил ту же проблему. Может кто-нибудь объяснить, что я здесь делаю не так?
apiVersion: rbac.authorization.k8s.io/v1
kind: "ClusterRole"
metadata:
name: gitlab-admin
labels:
app: gitlab-admin
rules:
- apiGroups: ["*"] # also tested with ""
resources:
[
"replicasets",
"pods",
"pods/exec",
"secrets",
"configmaps",
"services",
"deployments",
"ingresses",
"horizontalpodautoscalers",
"serviceaccounts",
]
verbs: ["get", "list", "watch", "create", "patch", "delete", "update"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: "ClusterRoleBinding"
metadata:
name: gitlab-admin-global
labels:
app: gitlab-admin
roleRef:
apiGroup: "rbac.authorization.k8s.io"
kind: "ClusterRole"
name: cluster-admin
subjects:
- kind: ServiceAccount
name: gitlab-admin
namespace: management
- kind: ServiceAccount
name: gitlab-admin
namespace: services
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: gitlab-admin
namespace: management
labels:
app: gitlab-admin
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: gitlab-admin
namespace: services
labels:
app: gitlab-admin
1 ответ
Итак, вот что произошло. Мне нужно было запустить это как внутри пространства имен, т.е. я изменил конфигурацию для запуска из самого управления пространством имен.
kubectl config set-context --current --namespace=management
А потом
kubectl apply -f gitlab-admin.yaml