Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Как создать пользователя в Kubernetes
- ALEXX
- Администратор
- Сообщения: 1350
- Зарегистрирован: 21 дек 2014, 14:59
- Откуда: Королёв
- Контактная информация:
Как создать пользователя в Kubernetes
Чтобы создать пользователя с полными административными правами для определенного namespace в Kubernetes, следуйте этим шагам. Этот процесс включает создание сертификатов, настройку ролей и ролевых привязок.
Создание ключа и сертификата пользователя Для начала необходимо создать сертификат и закрытый ключ для нового пользователя. Предположим, что новый пользователь называется user1 и он будет иметь полные права в namespace custom-namespace.
Создайте закрытый ключ для пользователя:
Создайте запрос на подпись сертификата (CSR) для user1:
В /CN=user1 укажите имя пользователя, а /O=group1 — это группа, к которой будет принадлежать пользователь. Вы можете настроить эти значения по вашему усмотрению.
Подписание сертификата с использованием Kubernetes CA Kubernetes имеет свою собственную систему CA (Центр сертификации), которую можно использовать для подписи CSR. Для этого вам нужно будет получить доступ к ca.crt и ca.key, которые обычно находятся на управляющем узле в /etc/kubernetes/pki/.
Подпишите CSR, используя CA Kubernetes:
Создание конфигурационного файла kubectl для нового пользователя Создайте файл конфигурации kubectl для user1, чтобы он мог взаимодействовать с кластером Kubernetes.
Начните с добавления нового пользователя в конфиг kubectl:
Затем добавьте контекст, использующий нового пользователя и указанный namespace:
Создание RoleBinding или ClusterRoleBinding Чтобы предоставить пользователю user1 административные права на namespace custom-namespace, необходимо создать RoleBinding или ClusterRoleBinding (если пользователь должен иметь права на весь кластер).
Создайте файл role-binding.yaml со следующим содержанием для RoleBinding:
Примените RoleBinding:
Теперь пользователь user1 имеет полные административные права в namespace custom-namespace. Вы можете переключиться на новый контекст, используя kubectl config use-context user1-context, и начать управлять ресурсами в указанном namespace.
Генерируем config
Создание ключа и сертификата пользователя Для начала необходимо создать сертификат и закрытый ключ для нового пользователя. Предположим, что новый пользователь называется user1 и он будет иметь полные права в namespace custom-namespace.
Создайте закрытый ключ для пользователя:
Код: Выделить всё
openssl genrsa -out user1.key 2048
Код: Выделить всё
openssl req -new -key user1.key -out user1.csr -subj "/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 config set-credentials user1 --client-certificate=/path/to/user1.crt --client-key=/path/to/user1.key
Код: Выделить всё
kubectl config set-context user1-context --cluster=<your-cluster-name> --namespace=custom-namespace --user=user1
Создайте файл 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
Код: Выделить всё
kubectl apply -f role-binding.yaml
Генерируем 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