Панель управления веб-интерфейсом для Kubernetes
На этой странице
- Предварительные условия
- Что мы будем делать?
- Развертывание панели мониторинга Kubernetes
- Настройте учетную запись службы для доступа к панели управления Kubernetes.
- Доступ к панели управления Kubernetes
- Заключение
Панель инструментов Kubernetes предоставляет веб-интерфейс для кластера. Можно развертывать приложения в кластере с помощью панели управления, а также устранять неполадки в существующих приложениях в кластере. Панель мониторинга также дает представление о ресурсах в кластере. Панель инструментов официально предоставлена Kubernetes. С помощью панели управления можно создавать, изменять, обновлять и удалять объекты Kubernetes.
В этой статье мы установим официальную панель управления, предоставленную Kubernetes, и настроим учетную запись службы для доступа к ней. Прежде чем приступить к изучению этой статьи, предполагается, что вы знакомы с Kubernetes и имеете кластер Kubernetes.
Предпосылки
- Кластер Kubernetes по крайней мере с 1 рабочим узлом.
Если вы хотите научиться создавать кластер Kubernetes, нажмите здесь. Это руководство поможет вам создать кластер Kubernetes с 1 главным и 2 рабочими узлами на экземплярах AWS Ubuntu 18.04 EC2. - Основное понимание Kubernetes.
Что мы будем делать?
- Разверните панель мониторинга Kubernetes.
- Настройте учетную запись ServiceAccount для доступа к панели мониторинга Kubernetes.
- Доступ к панели управления 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, пришло время создать все объекты, отвечающие за развертывание панели мониторинга Kubernetes.
kubectl apply -f kubernetes-dashboard-deployment.yml
Проверьте развертывание, модуль и службу, созданные с помощью приведенной выше команды. Приведенная выше команда также создает пространство имен, 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 с типом \NodePort\. Это означает, что панель мониторинга будет доступна на любом из IP-адресов узлов в NodePort \32304\. Вы можете увидеть другой порт для службы в вашем кластере.
Используйте следующую команду, чтобы получить IP-адреса ваших узлов, которые вам понадобятся на последующих этапах.
kubectl get nodes -o wide
Настройте учетную запись ServiceAccount для доступа к панели управления Kubernetes.
Чтобы получить доступ к панели управления Kubernetes, вам необходим токен. Чтобы создать токен, нам сначала нужно создать ServiceAccount.
Создайте новый файл и добавьте в него следующее содержимое, чтобы создать ServiceAccount. Вы также можете скачать объектный файл из моего репозитория Github.
vim admin-sa.yml
cat admin-sa.yml
apiVersion: v1 kind: ServiceAccount metadata: name: rahul-admin namespace: kube-system
Получив объектный файл, выполните следующую команду, чтобы создать ServiceAccount.
kubectl apply -f admin-sa.yml
Теперь вам нужно связать ServiceAccount \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
Теперь у нас есть \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 \IP-адрес узла:NodePort\, вы увидите следующий экран. Здесь выберите параметр «Токен», введите токен, который мы получили на предыдущем шаге, и нажмите кнопку «Войти».
Доступ к панели управления Kubernetes
После успешного входа вы должны увидеть панель управления Kubernetes следующим образом.
В верхней части экрана вы даже можете изменить пространство имен и увидеть ресурсы в нем. Теперь все готово для изучения панели управления Kubernetes.
Заключение
В этой статье мы развернули все необходимые объекты Kubernetes, чтобы Dashboard был в кластере. Мы создали ServiceAccount и ClusterRoleBinding, чтобы иметь токен для доступа к панели мониторинга Kubernetes, поскольку к ней нельзя получить простой доступ. Панель управления может помочь вам получить представление о кластере и увидеть все объекты, которые в нем есть.