☸️ Как создать пользователя с правами администратора для доступа к Kubernetes Dashboard |

☸️ Как создать пользователя с правами администратора для доступа к Kubernetes Dashboard

Мануал
Панель управления Kubernetes – это веб-интерфейс пользователя для развертывания контейнерных приложений в кластере Kubernetes – Deployments, Jobs, StatefulSets, DaemonSets c и управление ресурсами кластера, позволяя устранять проблемы, которые могут возникнуть.
Вы можете использовать панель инструментов, чтобы получить обзор приложений, работающих в вашем кластере.
Ознакомьтесь с нашим руководством по развертыванию админской панели Kubernetes:
В этом руководстве обсуждается, как создать администратора, который имеет доступ ко всем ресурсам Kubernetes.
Пользователь с правами администратора может изменять объекты во всех пространствах имен, а также администрировать любые другие компоненты в кластере!

Шаг 1. Создайте учетную запись администратора

Начнем с создания файла манифеста учетной записи.

Я назову служебную учетную запись itsecforu-admin.

$ vim admin-sa.yml
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: itsecforu-admin
  namespace: kube-system

Где jmutai-admin – имя создаваемой itsecforu-admin.

После создания файла примените манифест для создания объекта в вашем кластере kubernetes.

$ kubectl apply -f admin-sa.yml
serviceaccount/jmutai-admin created
clusterrolebinding.rbac.authorization.k8s.io/itsecforu-admin created

Шаг 2. Создание Cluster Role Binding

Далее следует назначить служебной учетной записи созданную привязку роли кластера cluster-admin.

$ vim admin-rbac.yml
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: itsecforu-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: itsecforu-admin
    namespace: kube-system
Замените itsecforu-admin на имя учетной записи службы, созданной на шаге 1.
Примените файл.
$  kubectl apply -f admin-rbac.yml

Шаг 3: Получите токен администратора

Вы можете вывести сгенерированный токен для учетной записи службы с помощью команды kubectl.

Установите переменную для хранения имени учетной записи службы.

SA_NAME="itsecforu-admin"
Затем выполните команду, показанную ниже, чтобы вывести на экран токен для созданного пользователя с правами администратора.
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk '{print $1}')

Вывод:

Name:         itsecforu-admin-token-mm9jd
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: itsecforu-admin
              kubernetes.io/service-account.uid: 80fade4b-4270-11ea-9fe4-005056ba45bd

Type:  kubernetes.io/service-account-token

Data
====
token:      eyJhbGciOiJSUzI1NiIsImtpZCI9IiJ9.eyJpc7MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUxOiJqa211dGFpLWFkbWluLXRva2VuLW1tOWpkIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImprbXV0YWktYWRtaW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI4MGZhZGU0Yi00MjcwLTExZWEtOWZlNC0wMDUwNTZiYTQ1YmQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06amttdXRhaS1hZG1pbiJ9.uMC2ydeHF4jVA5tnKFbBeHRvc4NWqL920jigk2FDeduUdBuFhsNyDcscmL-pBbWHG5KKwOAEuAAeyNaknaHsDadNnbLpp4AMZTTdr22FEp-_v7MfIEQm3QWmq-c0ykpdrzUzGmk5Q3JIpfqeorDI0lZd52-DF4IVMw3VtTNp6ZMHdieQUNRnCEyfs98raCTRAotiXZQaMvmRW5s9peu5hfxM71jufg-Qzmflr9nO-dY2dOHh1WZcKhJqfNfB73GYX2TQlUlurV4Oy0-2CpUUpJ1HAjcSHzKGuSrMUAMAhRwhbZZXhwvbQ6Ei_9Vv2PkD8_Pw9c-k9x-bblFSAqyFhA
ca.crt:     1025 bytes
namespace:  11 bytes

 

 

Скопируйте содержимое токена.

Шаг 4: Доступ к дашборду Kubernetes

После создания токена вы можете получить по нему доступ к своей панели администрирования Kubernetes.

Если вы используете NodePort для доступа к службе дашборда, вы можете узнать выделенный порт, введя команду.

$ kubectl get services -n <namespace> | grep dashboard
kubernetes-dashboard   NodePort    10.111.76.69    <none>        443:32254/TCP                   414d
У меня доступ к админке Kubernetes на любом IP-адресе кластерной машины через порт 32254.
Выберите тип аутентификации Token и вставьте свой токен для доступа к панели мониторинга.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Роман

    Команда kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk ‘{print $1}’) не работает.

    Ответить
    1. cryptoparty автор

      Добавил скриншот в подтверждение корректной работы команды

      Ответить