Исключение KubernetesClientException: кластерная роль или роль

#kubernetes #rbac #openshift-enterprise #spring-cloud-kubernetes

#kubernetes #rbac #openshift-enterprise #spring-cloud-kubernetes

Вопрос:

При развертывании службы с Spring Cloud Kubernetes Discovery Client я получаю исключение KubernetesClientException, в котором указывается, что пользователю «по умолчанию» запрещено получать доступ к pod.

Я уже добавил роль и привязку ролей, как указано здесь

В руководстве указано, что кластерная роль необходима. Но для меня это не вариант, поскольку мы разделяем кластер с другими отделами. Я только хочу, чтобы роль влияла на наш проект / пространство имен.

Требуется ли кластерная роль или роли должно быть достаточно?

Ответ №1:

Чтобы разрешить учетной записи службы доступ к ним, необходимо создать роль с необходимыми разрешениями и назначить ее учетной записи.Это делается с помощью кластерной роли или роли, если она требуется только в одном пространстве имен, и привязки роли, специфичной для пространства имен.

Здесь говорится, что вы можете использовать либо роль, либо кластерную роль.

Просто имейте в виду, что при создании роли должно быть определено пространство имен. т.е.

 kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: mynamespace
  name: service-discovery-client
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["services", "pods", "configmaps", "endpoints"]
  verbs: ["get", "watch", "list"]