Как запланировать задание от имени учетной записи службы из другого пространства имен?

#kubernetes #google-kubernetes-engine

# #kubernetes #google-kubernetes-engine

Вопрос:

У меня есть служба Kubernetes, запущенная в пространстве NA имен, которая настроена для запуска от имени учетной записи службы A . Служба планирует задание Kubernetes в пространстве NB имен. Как мне выполнить задание в NB act от имени учетной записи службы A ? Я попытался указать имя учетной записи службы для задания, но я получаю следующую ошибку:

 Error creating: pods "pod_id_x is forbidden: error looking up service account NB/A: serviceaccount "A" not found
 

PS Я использую Google Kubernetes Engine

Ответ №1:

AFAIK это можно сделать, предоставив учетной записи службы [A] привязку ролей в пространстве имен NB, позволяющую ей развертывать модули. Вам просто нужна соответствующая роль.

Вы можете просто ссылаться на ServiceAccount из другого пространства имен в привязке ролей:

 
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
  name: pod-reader
  namespace: ns2
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: pod-reader-from-ns1
  namespace: ns2
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: pod-reader
subjects:
- kind: ServiceAccount
  name: ns1-service-account
  namespace: ns1