Создать ServiceAccounts для доступа к Kubernetes Deployments - PullRequest
0 голосов
/ 04 сентября 2018

Я хочу получить доступ к объектам развертывания kubernetes через сервер API.

У меня есть файл учетной записи службы, показанный ниже.

apiVersion: v1
kind: ServiceAccount
metadata:
  name: name
  namespace: namespace

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: name
  namespace: namespace
rules:
- apiGroups: [""]
  resources: ["deployment"]
  verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
  resources: ["deployment/exec"]
  verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
  resources: ["deployment/log"]
  verbs: ["get","list","watch"]
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get"]

---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
  name: name
  namespace: namespace
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: name
subjects:
- kind: ServiceAccount
  name: name

Я получаю 403 Запрещена ошибка токен с владельцем этой учетной записи службы при доступе к конечной точке

/apis/apps/v1beta1/namespaces/namespace/deployments

1 Ответ

0 голосов
/ 04 сентября 2018

Все правила вашей роли предназначены для ядра (пусто) API-группа . Однако URL-адрес, к которому вы пытаетесь обратиться, /apis/apps/v1beta1, находится в группе API «apps» (часть пути после /apis). Таким образом, чтобы получить доступ к этому конкретному пути API, вам нужно изменить определение роли на

rules:
- apiGroups: ["apps"]
  resources: ["deployment"]
  verbs: ["create","delete","get","list","patch","update","watch"]
# and also the other deployment subpaths
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...