Kubernetes · 4 min read · Feb 03, 2026

Веб-интерфейс панели управления для Kubernetes

Панель управления Kubernetes предоставляет веб-интерфейс для кластера. С помощью панели можно развертывать приложения в кластере, а также устранять неполадки существующих приложений в кластере. Панель также предоставляет информацию о ресурсах в кластере. Панель официально предоставляется Kubernetes. С помощью панели можно создавать, изменять, обновлять и удалять объекты Kubernetes.

В этой статье мы установим официальную панель, предоставляемую Kubernetes, и настроим учетную запись сервиса для доступа к ней. Перед тем как продолжить, предполагается, что вы знакомы с Kubernetes и у вас есть кластер Kubernetes.

Предварительные требования

  1. Кластер Kubernetes с как минимум 1 рабочим узлом.
    Если вы хотите научиться создавать кластер Kubernetes, нажмите здесь. Этот гид поможет вам создать кластер Kubernetes с 1 мастер-узлом и 2 рабочими узлами на AWS Ubuntu 18.04 EC2 Instances.
  2. Базовое понимание Kubernetes.

Что мы будем делать?

  1. Развернуть панель управления Kubernetes.
  2. Настроить учетную запись сервиса для доступа к панели управления Kubernetes.
  3. Получить доступ к панели управления Kubernetes.

Развертывание панели управления Kubernetes

Чтобы развернуть панель управления Kubernetes, мы можем скачать ее объектный файл с Github. Используйте следующую команду для загрузки объектного файла. Этот файл содержит определения для Namespace, ServiceAccount, Service, Secret, ConfigMap, Role, ClusterRole, RoleBinding, ClusterRoleBinding, Deployment и Service.

pwd
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml

Скачать шаблоны

Переименуйте файл и измените тип сервиса на NodePort. Смотрите следующий скриншот.

mv recommended.yaml kubernetes-dashboard-deployment.yml
vim kubernetes-dashboard-deployment.yml

Изменить тип сервиса на NodePort

После того как вы изменили тип сервиса на NodePort, пришло время создать все объекты, ответственные за развертывание панели управления Kubernetes.

kubectl apply -f kubernetes-dashboard-deployment.yml

Проверьте развертывание, Pod и Service, которые были созданы вышеуказанной командой. Эта команда также создает Namespace, ServiceAccount, Service, Secret, ConfigMap, Role, ClusterRole, RoleBinding, ClusterRoleBinding, Deployment и Service.

kubectl get deployments -n kubernetes-dashboard
kubectl get svc
kubectl get pods
kubectl get pods -n kubernetes-dashboard
kubectl get svc -n kubernetes-dashboard  

Создать объекты Kubernetes для панели управления

На приведенном выше скриншоте вы можете видеть, что служба панели управления Kubernetes с типом “NodePort” была создана. Это означает, что панель будет доступна по любому из IP-адресов узлов на NodePort “32304”. Вы можете увидеть другой порт для службы в вашем кластере.

Используйте следующую команду, чтобы получить IP-адреса ваших узлов, которые вам понадобятся на следующих этапах.

kubectl get nodes -o wide

Настройка учетной записи сервиса для доступа к панели управления Kubernetes

Чтобы получить доступ к панели управления Kubernetes, вам нужен токен. Чтобы создать токен, сначала необходимо создать учетную запись сервиса.

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

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

После того как у вас есть объектный файл, выполните следующую команду для создания учетной записи сервиса.

kubectl apply -f admin-sa.yml

Создать учетную запись сервиса

Теперь вам нужно связать учетную запись сервиса “rahul-admin” с кластерной ролью “cluster-admin”. Создайте новый файл со следующим содержимым, чтобы создать ClusterRoleBinding, или нажмите здесь, чтобы скачать объектный файл из моего репозитория на Github.

vim admin-rbac.yml
cat admin-rbac.yml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: rahul-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: rahul-admin
    namespace: kube-system  

Выполните следующую команду для создания “ClusterRoleBinding”.

kubectl apply -f admin-rbac.yml

Создать ClusterRoleBinding

Теперь у нас есть “ClusterRole” –> “cluster-admin” связанная с “ServiceAccount” –> “rahul-admin”.

Теперь мы готовы получить токен, который будет использоваться для входа в панель управления Kubernetes. Чтобы получить токен, выполните следующие команды.

SA_NAME="rahul-admin"
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk '{print $1}')

Получить токен

На приведенном выше скриншоте вы можете увидеть токен, который будет использоваться для входа в панель управления Kubernetes. Скопируйте этот токен и перейдите по URL панели на “NodeIP:NodePort”.

Здесь NodeIP - это IP-адрес любого из узлов в кластере, а NodePort - это порт (в данном случае это 32304, в вашем случае может быть другой порт) службы, которую мы создали.

После того как вы перейдете по URL “NodeIP:NodePort”, вы увидите экран, как показано ниже. Здесь выберите опцию “Token”, введите токен, который мы получили на предыдущем шаге, и нажмите кнопку “Войти”.

Доступ к панели управления Kubernetes

Доступ к панели управления по IP:NodePort

После успешного входа вы должны увидеть панель управления Kubernetes, как показано ниже.

Панель управления - стандартный Namespace

В верхней части экрана вы даже можете изменить Namespace и увидеть ресурсы в нем. Теперь вы готовы исследовать панель управления Kubernetes.

Панель управления - Namespace kubernetes-dashboard

Заключение

В этой статье мы развернули все необходимые объекты Kubernetes, чтобы иметь панель в кластере. Мы создали учетную запись сервиса и ClusterRoleBinding, чтобы получить токен для доступа к панели управления Kubernetes, так как к ней нельзя получить доступ просто так. Панель управления может помочь вам понять кластер и увидеть все объекты, которые в нем есть.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.