Kubernetes Dashboard — это приложение, развернутое на Kubernetes , которое предоставляет веб-интерфейс для ежедневного управления, устранения неполадок и мониторинга кластеров Kubernetes. Для новичков в Kubernetes он может служить ценным компонентом для визуализации состояния кластера и лучшего понимания того, что происходит в ваших кластерах. Панель инструментов обеспечивает более оперативную информацию о ресурсах кластера, рабочих нагрузках и событиях, тем самым облегчая эффективную отладку проблем.
Ниже представлена таблица, показывающая основные функции Kubernetes Dashboard:
Особенность | Описание |
---|---|
Обзор кластера | Мгновенно просматривайте статусы узлов, использование ресурсов и рабочие нагрузки. |
Управление рабочей нагрузкой | Развертывания, StatefulSets, Pods, ReplicaSets — создавайте, редактируйте и удаляйте их легко. |
Журналы в реальном времени | Просмотр журналов пода без необходимости использования kubectl logs . |
Мониторинг контейнеров | Просматривайте статус модуля, перезапуски, работоспособность контейнера и события. |
Переключение пространства имен | Быстро перемещайтесь между пространствами имен. |
Секреты и КонфигурацииКарты | Просматривайте и редактируйте их безопасно (если это позволяет RBAC). |
RBAC-Aware | Разрешения зависят от учетной записи службы или пользователя, получающего доступ к панели управления. |
Терминальный доступ | Откройте интерактивную оболочку в контейнере (как kubectl exec -it в браузере). |
В этом кратком руководстве мы рассмотрим необходимые шаги для установки, настройки и доступа к панели мониторинга Kubernetes через веб-браузер. Предполагается, что у вас есть работающий кластер Kubernetes. Вы можете обратиться к статьям, доступным на нашем веб-сайте, для руководств по установке Kubernetes .
Убедитесь, что ваш кластер функционирует, перечислив узлы:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k0snode01.kalyuzhnyy.ru Ready control-plane 26d v1.32.2+k0s
k0snode02.kalyuzhnyy.ru Ready <none> 26d v1.32.2+k0s
Установить Helm
На вашей рабочей станции должен быть установлен Helm. Если нет, выполните следующие команды, чтобы установить его.
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
Проверьте версию, чтобы убедиться, что она работает:
helm version
Установите Kubernetes Dashboard с помощью Helm
После установки Helm добавьте репозиторий Helm панели Kubernetes.
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
Создать значение по умолчанию values.yaml
для диаграммы
helm show values kubernetes-dashboard/kubernetes-dashboard > kubernetes-dashboard-values.yaml
При необходимости отрегулируйте значения в соответствии с вашими требованиями.
Пример: включить Ingress
Если в вашем кластере настроен ingress, например Nginx Ingress . Включите конфигурации ingress в файле значений.
app:
ingress:
enabled: true
hosts:
- localhost
ingressClassName: internal-nginx
tls:
enabled: true
secretName: ""
Используйте helm для установки Kubernetes Dashboard
После внесения необходимых изменений в значения по умолчанию установите панель управления Kubernetes в кластере.
helm upgrade --install kubernetes-dashboard \
kubernetes-dashboard/kubernetes-dashboard \
--create-namespace \
--namespace kubernetes-dashboard \
-f kubernetes-dashboard-values.yaml
Ожидаемый результат выполнения команды:
Release "kubernetes-dashboard" does not exist. Installing it now.
NAME: kubernetes-dashboard
LAST DEPLOYED: Sun Apr 6 22:35:37 2025
NAMESPACE: kubernetes-dashboard
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
*************************************************************************************************
*** PLEASE BE PATIENT: Kubernetes Dashboard may need a few minutes to get up and become ready ***
*************************************************************************************************
Congratulations! You have just installed Kubernetes Dashboard in your cluster.
To access Dashboard run:
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
NOTE: In case port-forward command does not work, make sure that kong service name is correct.
Check the services in Kubernetes Dashboard namespace using:
kubectl -n kubernetes-dashboard get svc
Dashboard will be available at:
https://localhost:8443
Перечислите все ресурсы в пространстве имен, чтобы подтвердить успешную установку:
# kubectl get all -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
pod/kubernetes-dashboard-api-868c9bc5f4-6gmtx 1/1 Running 0 3m20s
pod/kubernetes-dashboard-auth-7df6cd66db-svxw7 1/1 Running 0 3m20s
pod/kubernetes-dashboard-kong-678c76c548-m8b98 1/1 Running 0 3m20s
pod/kubernetes-dashboard-metrics-scraper-7d9658df44-w4xwq 1/1 Running 0 3m20s
pod/kubernetes-dashboard-web-66b75c6c7f-hbncj 1/1 Running 0 3m20s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes-dashboard-api ClusterIP 10.152.183.245 <none> 8000/TCP 3m20s
service/kubernetes-dashboard-auth ClusterIP 10.152.183.250 <none> 8000/TCP 3m20s
service/kubernetes-dashboard-kong-proxy ClusterIP 10.152.183.78 <none> 443/TCP 3m20s
service/kubernetes-dashboard-metrics-scraper ClusterIP 10.152.183.236 <none> 8000/TCP 3m20s
service/kubernetes-dashboard-web ClusterIP 10.152.183.93 <none> 8000/TCP 3m20s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/kubernetes-dashboard-api 1/1 1 1 3m20s
deployment.apps/kubernetes-dashboard-auth 1/1 1 1 3m20s
deployment.apps/kubernetes-dashboard-kong 1/1 1 1 3m20s
deployment.apps/kubernetes-dashboard-metrics-scraper 1/1 1 1 3m20s
deployment.apps/kubernetes-dashboard-web 1/1 1 1 3m20s
NAME DESIRED CURRENT READY AGE
replicaset.apps/kubernetes-dashboard-api-868c9bc5f4 1 1 1 3m20s
replicaset.apps/kubernetes-dashboard-auth-7df6cd66db 1 1 1 3m20s
replicaset.apps/kubernetes-dashboard-kong-678c76c548 1 1 1 3m20s
replicaset.apps/kubernetes-dashboard-metrics-scraper-7d9658df44 1 1 1 3m20s
replicaset.apps/kubernetes-dashboard-web-66b75c6c7f 1 1 1 3m20s
Доступ к панели инструментов Kubernetes
Прежде чем получить доступ к панели управления, давайте сначала настроим правильную аутентификацию с использованием учетной записи службы и токена на предъявителя.
Создать ресурсы Kubernetes
Начнем с создания:
- Учетная запись службы с именем
dashboard-admin
в пространстве имен kubernetes-dashboard - Создать ClusterRoleBinding
- Создайте секрет с помощью токена на предъявителя
1) Создание пользователя-администратора
Выполните следующие команды, чтобы создать учетную запись службы и назначить привязку роли кластера с правами администратора.
kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-admin
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dashboard-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin
namespace: kubernetes-dashboard
---
apiVersion: v1
kind: Secret
metadata:
name: dashboard-admin
namespace: kubernetes-dashboard
annotations:
kubernetes.io/service-account.name: "dashboard-admin"
type: kubernetes.io/service-account-token
EOF
После создания секрета выполните следующие команды для получения токена:
kubectl get secret dashboard-admin -n kubernetes-dashboard -o jsonpath="{.data.token}" | base64 -d;echo
2) пользователь только для чтения
Если вы хотите создать пользователя с правами только на чтение, обратитесь к следующей учетной записи службы и
kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-read-only-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
name: dashboard-read-only-clusterrole
namespace: kubernetes-dashboard
rules:
- apiGroups:
- ""
resources: ["*"]
verbs:
- get
- list
- watch
- apiGroups:
- extensions
resources: ["*"]
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources: ["*"]
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dashboard-read-only-binding
roleRef:
kind: ClusterRole
name: dashboard-read-only-clusterrole
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: dashboard-read-only-user
namespace: kubernetes-dashboard
EOF
Затем получите токен из созданного секрета:
kubectl get secret dashboard-read-only-user -n kubernetes-dashboard -o jsonpath="{.data.token}" | base64 -d;echo
Доступ к панели управления Kubernetes с помощью переадресации портов kubectl
Наиболее безопасный метод доступа к панели управления Kubernetes — использование прокси-сервера kubectl для переадресации портов.
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
Вывод выполнения команды:
Forwarding from 127.0.0.1:8443 -> 8443
Forwarding from [::1]:8443 -> 8443
Затем перейдите по URL-адресу https://localhost:8443
. Вставьте сгенерированный токен для аутентификации:
После входа в панель управления Kubernetes вы сможете просматривать и управлять различными типами ресурсов Kubernetes.
Полезные ссылки на панель инструментов Kubernetes:
Если у вас есть какие-либо мысли или вопросы по этой теме, пожалуйста, не стесняйтесь оставить комментарий или отправить мне сообщение. Я хотел бы продолжить дискуссию и услышать вашу точку зрения.
А также вы всегда можете поддержать меня зайдя на сайт и подписаться: https://dzen.ru/kalyuzhnyy.ru
или найти больше статей на https://kalyuzhnyy.ru или на моем канале telegramm https://t.me/nbkalyuzhnyy на котором выкладываются самые актуальные новости и инструкции по навыкам и обучению. Подпишись!