Поиск по сайту:

Как приступить к управлению кластером Kubernetes с помощью Portainer


Portainer — один из самых популярных интерфейсов управления контейнерами. Хотя Portainer начал с сосредоточения внимания на Docker и Docker Compose, он также работает с кластерами, управляемыми оркестраторами, включая Docker Swarm и Kubernetes.

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

Развертывание Portainer в вашем кластере

Прежде чем продолжить, убедитесь, что у вас есть доступ к работающему кластеру Kubernetes. Вы можете подготовить его с помощью [управляемого облачного сервиса] или запустить свой собственный локально с помощью такого решения, как MicroK8s или Minikube. Вам также потребуется установить Helm, чтобы упростить процесс установки Portainer.

Добавьте репозиторий Portainer в Helm, используя следующие команды:

$ helm repo add portainer https://portainer.github.io/k8s/ 
$ helm repo update

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

Открыть Portainer с помощью NodePort

$ helm install --create-namespace -n portainer portainer portainer/portainer

Это самый простой метод. Вы сможете получить доступ к Portainer через HTTP, используя порт 30777 на узле, на котором работает модуль Portainer. Трафик HTTPS будет обслуживаться через порт 30779 с использованием самозаверяющего сертификата. Обратитесь к документации Portainer, если вы хотите предоставить свой собственный SSL-сертификат при развертывании с помощью этого метода.

Предоставьте Portainer с помощью балансировщика нагрузки

$ helm install --create-namespace -n portainer portainer portainer/portainer \
    --set service.type=LoadBalancer

Этот метод похож на NodePort, но он будет использовать балансировщик нагрузки перед вашими узлами. Посетите порт 9000 на IP-адресе балансировщика нагрузки, чтобы получить доступ к Portainer через HTTP. HTTPS поддерживается на порту 9443.

Открыть Portainer с входным маршрутом

helm install --create-namespace -n portainer portainer portainer/portainer \
  --set service.type=ClusterIP \
  --set ingress.enabled=true \
  --set ingress.annotations.'kubernetes\.io/ingress\.class'=nginx \
  --set ingress.annotations."nginx\.ingress\.kubernetes\.io/backend-protocol"=HTTPS \
  --set ingress.hosts[0].host=portainer.example.com \
  --set ingress.hosts[0].paths[0].path="/"

Этот метод предоставляет Portainer использование маршрута Ingress. Вам понадобится контроллер Ingress, такой как NGINX Ingress внутри вашего кластера. Измените переменные host и path в команде, чтобы настроить маршрут Portainer. В этом примере вы сможете получить доступ к Portainer, посетив portainer.example.com после настройки соответствующей записи DNS.

Настройка Ingress-маршрута — лучший способ долгосрочного обслуживания Portainer, поскольку он поддерживает балансировку нагрузки между узлами и позволяет назначать определенный домен. Параметры NodePort или LoadBalancer являются более простыми вариантами, когда вы экспериментируете с кластерами, в которых нет доступного контроллера Ingress.

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

Теперь Portainer будет готов к использованию с вашим кластером Kubernetes — развертывание непосредственно в Kubernetes автоматически обнаружит вашу среду. Нажмите кнопку «Начать», чтобы завершить установку.

Добавление кластера Kubernetes к существующей установке Portainer

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

Начните с входа в свой экземпляр Portainer. Нажмите ссылку «Среды» в нижней части левой боковой панели. Нажмите синюю кнопку «Добавить среду» в верхней части экрана.

Затем нажмите плитку «Kubernetes», а затем кнопку «Start Wizard» в нижней части экрана.

На следующем экране будут показаны инструкции по установке агента Portainer Kubernetes. Этот компонент устанавливается внутри вашего кластера. Portainer связывается с агентом для извлечения информации Kubernetes и выполнения запрошенных действий.

Вы можете выбрать развертывание агента с помощью NodePort или LoadBalancer. Выберите соответствующую вкладку, а затем скопируйте отображаемую команду. Запустите это в своем терминале, чтобы добавить агента Portainer в свой кластер. Агент Portainer защищен с помощью цифровой подписи, которую он получает при первом контакте с приложением Portainer. Агент будет отклонять сообщения от клиентов, которые не предоставляют правильную подпись.

Затем заполните поля «Имя» и «URL-адрес среды», отображаемые в веб-интерфейсе Portainer. Вы можете выбрать любое имя, которое идентифицирует ваш кластер.

Если вы используете соединение NodePort, URL-адрес среды должен быть портом 30778 на IP-адресе вашего узла. Для подключений LoadBalancer найдите внешний IP-адрес балансировщика нагрузки, запустив kubectl get services -n portainer. Агент будет доступен через порт 9001 на этом IP-адресе.

$ kubectl get services -n portainer
NAMESPACE     NAME              TYPE            CLUSTER-IP      EXTERNAL-IP       PORT(S)
portainer     portainer-agent   LoadBalancer    10.245.110.27   139.59.198.245    9001:30343/TCP

Нажмите кнопку «Подключиться», чтобы завершить подключение. Вы должны увидеть зеленое всплывающее предупреждение, подтверждающее добавление среды. Нажмите кнопку «Готово» в нижней части экрана, чтобы вернуться к списку сред.

Использование Portainer для управления Kubernetes

На главном экране Portainer отображаются все настроенные среды. Это могут быть кластеры Kubernetes, локальные установки Docker Engine или любые другие поддерживаемые конечные точки. Щелкните свой кластер, чтобы начать управлять им.

На экране панели мониторинга кластера представлен обзор количества ресурсов в вашем кластере. В настоящее время Portainer фокусируется на взаимодействии с пространствами имен, приложениями (вашими подами и развертываниями), ConfigMaps и секретами, а также томами. Он обеспечивает уровень абстракции над некоторыми концепциями Kubernetes.

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

Вы можете добавить новое приложение, загрузив файл манифеста Kubernetes или нажав кнопку «Добавить приложение с формой», чтобы интерактивно настроить свои модули.

Portainer также предлагает базовую сводку об использовании ресурсов вашего кластера. Щелкните элемент боковой панели «Кластер», чтобы просмотреть узлы в вашем кластере и их резервирование памяти и ЦП.

Наконец, экран настройки кластера, доступ к которому можно получить, перейдя в раздел «Кластер» > «Настройка», управляет функциями Portainer, которые необходимо включить для вашей среды Kubernetes. Вы можете использовать это, чтобы сообщить Portainer, какие балансировщики нагрузки, контроллеры Ingress и классы хранилища должны быть доступны пользователям. Другие настройки включают в себя возможность изменить, разрешена ли чрезмерная фиксация ресурсов (когда может быть запрошено больше ресурсов, чем может предоставить кластер) и активация API метрик для доступа к более подробной информации об использовании. Для этого в вашем кластере уже должен быть установлен Metrics API.

Краткое содержание

Portainer — один из самых популярных интерфейсов управления контейнерами. Современные выпуски Portainer имеют встроенную поддержку кластеров Kubernetes. Вы можете либо развернуть Portainer внутри своего кластера, либо использовать агент Portainer для подключения Kubernetes к существующему экземпляру приложения.

После настройки вы можете использовать Portainer для просмотра и взаимодействия с модулями Kubernetes и другими объектами. Это может быть удобнее, чем выполнять сложные команды Kubectl в терминале. Portainer позволяет объединить все ваши среды контейнеров в одну платформу, от кластеров Kubernetes до установок Docker с одним узлом.