Создание пользователей кластера в MicroK8S

Для того чтобы не работать в кластере постоянно под админом лучше добавить пользователя.

Сначала надо включить плагин rbac иначе все авторизованные пользователи получат полный доступ во всех namespace.

microk8s enable rbac

Создание пользователя

  1. Создаём ключ и запрос на сертификат
openssl genrsa -out user1.key 2048
openssl req -new -key user1.key -out user1.csr -subj "/CN=user1"
  1. Подписываем запрос CSR с помощью CA Kubernetes
openssl x509 -req -in user1.csr -CA /var/snap/microk8s/current/certs/ca.crt \
  -CAkey /var/snap/microk8s/current/certs/ca.key -CAcreateserial \
  -out user1.crt -days 365
  1. Добавляем пользователя в kubeconfig (пример для microk8s)
microk8s kubectl config set-credentials user1 \
  --client-certificate=user1.crt --client-key=user1.key

Выдача прав

Самый простой способ выдать полные (или почти полные права) в границах namespace новому пользователю это создать RoleBinding на кластерную роль admin:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: maksim-gitea
  namespace: gitea
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: admin
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: user1

По аналогии можно выдать права на ServiceAccount но он создается проще и изнутри кластера.