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
Другие вопросы по тегам