Введение
Kubernetes Dashboard - это веб-интерфейс пользователя, который упрощает управление и мониторинг кластеров Kubernetes. Он предоставляет интуитивно понятный способ развертывания и управления приложениями, а также просмотра и анализа ресурсов кластера. В этом лабораторном занятии (LabEx) вы научитесь развертывать и получать доступ к Kubernetes Dashboard.
Запустите кластер Kubernetes
Перед развертыванием Kubernetes Dashboard убедитесь, что ваш кластер запущен. В этом лабораторном занятии (LabEx) мы будем использовать Minikube.
Откройте терминал и перейдите в директорию проекта:
cd ~/projectЗапустите кластер Minikube:
minikube startMinikube создает локальный кластер Kubernetes, что позволяет легко тестировать такие функции, как Dashboard. Настройка может занять несколько минут.
Проверьте, запущен ли Minikube, проверив его статус:
minikube statusЕсли кластер не запущен, перезапустите его с помощью команды
minikube delete, а затемminikube start.
Разверните Kubernetes Dashboard
Kubernetes Dashboard по умолчанию не включен в кластер. Разверните его с использованием официального YAML-файла развертывания.
Выполните следующую команду для развертывания Dashboard:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yamlЭта команда создает все необходимые ресурсы для Dashboard, включая Deployment, Service и настройки Role-Based Access Control (RBAC, ролевая система контроля доступа).
Проверьте, запущен ли Dashboard:
kubectl get pods -n kubernetes-dashboardНайдите под с именем
kubernetes-dashboardи убедитесь, что его статус -Running(запущен).Проверьте пространство имен (namespace) для Dashboard:
kubectl get ns | grep kubernetes-dashboardПространство имен
kubernetes-dashboardдолжно существовать.
Создайте учетную запись сервиса и привязку роли
По умолчанию Kubernetes Dashboard ограничивает доступ. Чтобы войти с административными привилегиями, вам нужно создать учетную запись сервиса и привязать ее к кластерной роли.
Создайте файл с именем
dashboard-admin.yaml:nano ~/project/dashboard-admin.yamlДобавьте следующее содержимое в файл:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
Этот файл определяет учетную запись сервиса admin-user и предоставляет ей административные привилегии в рамках всего кластера.
Нажмите Ctrl+X, затем Y, а затем Enter, чтобы сохранить файл.
Примените конфигурацию:
kubectl apply -f dashboard-admin.yamlПроверьте учетную запись сервиса и привязку роли:
kubectl get sa -n kubernetes-dashboardВы должны увидеть учетную запись сервиса
admin-userв списке.kubectl get clusterrolebindingВы должны увидеть привязку кластерной роли
admin-userв списке.
Доступ к Kubernetes Dashboard
Теперь, когда Dashboard запущен и разрешения настроены, вы можете получить к нему доступ через браузер.
Сгенерируйте токен для входа:
kubectl -n kubernetes-dashboard create token admin-userСкопируйте сгенерированный токен. Он будет использоваться для входа.
Отредактируйте службу (Service) Dashboard, чтобы сделать ее доступной через NodePort:
kubectl edit service -n kubernetes-dashboard kubernetes-dashboardНайдите поле
typeв разделеspecи измените его значение наNodePort. Сохраните изменения и выйдите.

Найдите NodePort, назначенный Dashboard:
kubectl get service -n kubernetes-dashboardNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.104.164.172 <none> 8000/TCP 20m kubernetes-dashboard NodePort 10.108.222.153 <none> 443:30587/TCP 20mОбратите внимание на номер порта в столбце
PORT(S)(например,30587). Именно этот порт вы будете использовать для доступа к Dashboard.Получите IP-адрес узла:
kubectl get node -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME minikube Ready control-plane 35m v1.26.1 192.168.58.2 <none> Ubuntu 20.04.5 LTS 5.15.0-56-generic docker://20.10.23В столбце
INTERNAL-IPуказан IP-адрес узла.Откройте браузер Firefox на рабочем столе и перейдите по следующему URL:
https://<node-ip>:<node-port>Замените
<node-ip>на IP-адрес узла и<node-port>на порт из шага 3.

- Если появится предупреждение о безопасности, нажмите "Расширенно" и затем "Принять риск и продолжить".

- На странице входа выберите вариант Token, вставьте (щелкните правой кнопкой мыши) токен из шага 1 и нажмите "Войти".

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

Резюме
В этом лабораторном занятии (LabEx) вы научились:
- Развертывать Kubernetes Dashboard в локальном кластере.
- Создавать учетную запись сервиса и связывать ее с кластерной ролью для доступа с административными правами.
- Получать доступ к Dashboard через браузер с использованием службы (Service) NodePort.
С помощью Kubernetes Dashboard вы можете визуально управлять приложениями, отслеживать ресурсы и изучать конфигурации кластера. Этот инструмент упрощает операции с Kubernetes, особенно для начинающих, переходящих от командной строки. Продолжайте изучать его функции, чтобы максимально использовать возможности вашей среды Kubernetes!


