Установите разрешения тома в мультитенантном кластере Kubernetes - PullRequest
0 голосов
/ 28 января 2019

Ситуация:
- пользователи A, B, C, D
- команда 1: пользователь A, пользователь B
- команда 2: пользователь C, пользователь D

Желаемый:
- у каждого пользователя есть личный том
- у каждой команды есть общий том -> пользователи в команде могут видеть общий том
- некоторые пользователи на основании разрешения могут видеть оба общих тома

Искал уже довольно давно, не вижу решения в Документах.

Идеи:
- Используйте пространства имен!проблема -> больше не может видеть общий том другого пространства имен

1 Ответ

0 голосов
/ 28 января 2019

Это пример того, как вы это сделаете.Вы можете использовать пространства имен для разных команд.

Затем вы можете использовать Role для каждого тома и назначать пользователям соответственно.(Роли в пространстве имен).Пример роли будет:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: team1
  name: volume-access
rules:
- apiGroups: [""]
  resources: ["persistentvolume", "persistentvolumeclaims"]
  resourceNames: ["my-volume"]
  verbs: ["update", "get", "list", "patch", "watch"]

Тогда ваша привязка будет выглядеть примерно так:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: pv-binding
  namespace: team1
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: volume-access
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: usera
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: userb

Вышесказанное будет доступно для пользователя A и пользователя B. Вы можете создать отдельные роли дляТом, который является частным.

...