Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

Как создать пользователя в Kubernetes

Ответить
Аватара пользователя
ALEXX
Администратор
Администратор
Сообщения: 1350
Зарегистрирован: 21 дек 2014, 14:59
Откуда: Королёв
Контактная информация:

Как создать пользователя в Kubernetes

Сообщение ALEXX »

Чтобы создать пользователя с полными административными правами для определенного namespace в Kubernetes, следуйте этим шагам. Этот процесс включает создание сертификатов, настройку ролей и ролевых привязок.

Создание ключа и сертификата пользователя Для начала необходимо создать сертификат и закрытый ключ для нового пользователя. Предположим, что новый пользователь называется user1 и он будет иметь полные права в namespace custom-namespace.

Создайте закрытый ключ для пользователя:

Код: Выделить всё

openssl genrsa -out user1.key 2048
Создайте запрос на подпись сертификата (CSR) для user1:

Код: Выделить всё

openssl req -new -key user1.key -out user1.csr -subj "/CN=user1/O=group1"
В /CN=user1 укажите имя пользователя, а /O=group1 — это группа, к которой будет принадлежать пользователь. Вы можете настроить эти значения по вашему усмотрению.

Подписание сертификата с использованием Kubernetes CA Kubernetes имеет свою собственную систему CA (Центр сертификации), которую можно использовать для подписи CSR. Для этого вам нужно будет получить доступ к ca.crt и ca.key, которые обычно находятся на управляющем узле в /etc/kubernetes/pki/.

Подпишите CSR, используя CA Kubernetes:

Код: Выделить всё

openssl x509 -req -in user1.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out user1.crt -days 500
Создание конфигурационного файла kubectl для нового пользователя Создайте файл конфигурации kubectl для user1, чтобы он мог взаимодействовать с кластером Kubernetes.

Начните с добавления нового пользователя в конфиг kubectl:

Код: Выделить всё

kubectl config set-credentials user1 --client-certificate=/path/to/user1.crt --client-key=/path/to/user1.key
Затем добавьте контекст, использующий нового пользователя и указанный namespace:

Код: Выделить всё

kubectl config set-context user1-context --cluster=<your-cluster-name> --namespace=custom-namespace --user=user1
Создание RoleBinding или ClusterRoleBinding Чтобы предоставить пользователю user1 административные права на namespace custom-namespace, необходимо создать RoleBinding или ClusterRoleBinding (если пользователь должен иметь права на весь кластер).

Создайте файл role-binding.yaml со следующим содержанием для RoleBinding:

Код: Выделить всё

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: admin-role-binding
  namespace: custom-namespace
subjects:
- kind: User
  name: user1
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: admin
  apiGroup: rbac.authorization.k8s.io
Примените RoleBinding:

Код: Выделить всё

kubectl apply -f role-binding.yaml
Теперь пользователь user1 имеет полные административные права в namespace custom-namespace. Вы можете переключиться на новый контекст, используя kubectl config use-context user1-context, и начать управлять ресурсами в указанном namespace.

Генерируем config

Код: Выделить всё

kubectl config set-context nixm-context --cluster=cluster.k8s --namespace=reports-test --user=nixm

kubectl config --kubeconfig=./config set-cluster cluster.k8s --server=https://172.16.4.122:6443 --certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs=true

kubectl config --kubeconfig=./config set-credentials nixm --client-key=nixm.key --client-certificate=nixm.crt --embed-certs=true

kubectl config --kubeconfig=./config set-context nixm-context --cluster cluster.k8s --user=nixm --namespace reports-test

kubectl config --kubeconfig=./config use-context nixm-context
Ответить

Вернуться в «DOCKER/kubernetes»