RBAC

Допустим, у вас есть namespace dev. Чтобы дать разработчику Alice права деплоить приложения туда, создаём:

# 1. Роль dev-deployer в namespace dev
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: dev
  name: dev-deployer
rules:
- apiGroups: ["", "apps", "extensions"]
  resources: ["deployments", "pods", "services"]
  verbs: ["get", "list", "watch", "create", "update", "delete"]
# 2. Привязка роли к пользователю Alice
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: dev
  name: dev-deployer-binding
subjects:
- kind: User
  name: alice
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: dev-deployer
  apiGroup: rbac.authorization.k8s.io

Генерация и настройка kubeconfig для разработчика

После того, как роль и биндинг созданы, нужно выдать Alice kubeconfig, в котором будут её учётные данные и context, привязанный к namespace:

  1. Добавляем пользователю креды (например, клиентский сертификат):

  2. Создаём context с привязкой к кластеру и namespace:

  3. Активируем context:

Last updated