Гид по технологиям

Portainer: подключение и управление кластером Kubernetes

• 9 min read • DevOps • Обновлено 18 Nov 2025
Portainer и Kubernetes: подключение и управление
Portainer и Kubernetes: подключение и управление

Быстрые ссылки

  • Развёртывание Portainer в кластере

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

  • Управление Kubernetes через Portainer

  • Сводка

Скриншот интерфейса панели управления Portainer

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

В этой статье описано, как подключить Portainer к Kubernetes. Вы научитесь просматривать и управлять объектами Kubernetes — Pod’ами, Deployment’ами, ConfigMap’ами — из Portainer. Portainer также может разворачивать Helm-чарты и показывать основные сведения по кластерам. Для простых задач это удобная альтернатива официальной Dashboard или инструментам вроде Lens.

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

Перед началом убедитесь, что у вас есть доступ к работающему Kubernetes‑кластеру. Это может быть управляемый кластер в облаке или локальный кластер (MicroK8s, Minikube и т. п.). Для упрощённой установки Portainer рекомендуется иметь Helm.

Добавьте репозиторий Portainer в Helm и обновите кеш репозиториев:

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

Далее выполните один из командных вариантов установки в зависимости от способа экспонирования сервиса.

Вариант: NodePort (простейший)

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

Это самый простой способ. Portainer будет доступен по HTTP на порту 30777 на Node, где запущен Pod. HTTPS будет доступен на порту 30779 с самоподписанным сертификатом. Если вы хотите использовать свой сертификат, обратитесь к документации Portainer для передачи секретов с SSL.

Важно: NodePort хорош для тестирования, но не является устойчивым решением для production, так как не обеспечивает балансировки между Node’ами и требует проброса портов на каждом узле.

Вариант: LoadBalancer

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

LoadBalancer создаёт внешний балансировщик (если ваша среда его поддерживает). После установки Portainer будет доступен на IP балансировщика по порту 9000 (HTTP) и 9443 (HTTPS).

Плюсы: простая внешняя IP‑адресация, поддержка балансировки трафика. Минусы: требует поддержки со стороны провайдера или облака.

Вариант: Ingress (рекомендуется для долгосрочной эксплуатации)

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="/"

Этот вариант предполагает, что в кластере развернут Ingress‑контроллер (например, NGINX Ingress). Укажите собственные значения host и path, а затем настройте DNS, чтобы портainer.example.com указывал на IP точки входа.

Ingress оптимален для production: позволяет назначать домены, использовать TLS через общий сертификат, применять правила балансировки и политики безопасности.

После установки откройте браузер по IP/домену и завершите первичную настройку пользователя на экране установки.

Скриншот страницы установки Portainer

Потом нажмите кнопку “Get Started” (Начать работу) в интерфейсе, чтобы перейти к основной панели.

Скриншот экрана приветствия Portainer

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

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

  1. Войдите в ваш Portainer.
  2. В левой боковой панели нажмите «Environments» (Окружения).
  3. Нажмите синюю кнопку “Add environment” (Добавить окружение).

Скриншот добавления окружения в Portainer

  1. Выберите плитку “Kubernetes” и нажмите “Start Wizard” (Запустить мастер).

Скриншот выбора Kubernetes в Portainer

Мастер покажет команду для установки Portainer Agent в ваш кластер. Агент разворачивается внутри кластера и отвечает за обмен данными между Portainer и Kubernetes API. Агент защищён цифровой подписью: при первом подключении Portainer передаёт подпись, и агент будет отклонять запросы от клиентов без правильной подписи.

Выберите вкладку NodePort или LoadBalancer в мастере и скопируйте команду. Запустите её в терминале, чтобы добавить агент в кластер.

Заполните поля “Name” и “Environment URL” в интерфейсе Portainer. Имя — любая удобная метка для вашего кластера.

Скриншот экрана настройки агента Portainer

  • Для NodePort укажите URL вида http://NODE_IP:30778.
  • Для LoadBalancer найдите внешний 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

Агент будет доступен по порту 9001 на внешнем IP. Нажмите “Connect” (Подключить). Если всё прошло успешно, появится зелёное уведомление о подключении. Нажмите “Finish” (Завершить), чтобы вернуться к списку окружений.

Управление Kubernetes через Portainer

Главная страница Portainer показывает все подключённые окружения: Kubernetes‑кластеры, локальные Docker Engine и другие поддерживаемые эндпоинты. Выберите кластер для управления.

Скриншот отображения подключённых эндпоинтов в Portainer

Панель кластера даёт обзор по количеству ресурсов. Portainer в первую очередь фокусируется на Namespace, Applications (Pod’ы и Deployment’ы), ConfigMap, Secrets и Volumes. Это уровень абстракции, упрощающий работу с базовыми объектами Kubernetes.

Скриншот обзора кластера в Portainer

Приложения (Applications)

Зайдите в раздел Applications, чтобы увидеть запущенные Pod’ы и Deployment’ы, образ, который используется, и внешние URL, если настроен Ingress.

Скриншот просмотра приложений в Portainer

Чтобы добавить приложение, загрузите манифест Kubernetes или используйте кнопку “Add application with form” (Добавить приложение через форму) для пошаговой настройки.

Скриншот формы для добавления Kubernetes‑приложения

Наблюдение за ресурсами

В разделе “Cluster” можно посмотреть узлы и их загрузку памяти и CPU (резервации и запросы). Это полезно для быстрого просмотра распределения нагрузок.

Скриншот просмотра нагрузки кластера в Portainer

Настройка функциональности кластера

Перейдите Cluster > Setup, чтобы включить или выключить интеграции: доступные балансировщики, Ingress‑контроллеры и StorageClass. Здесь же можно разрешить или запретить overcommit ресурсов и активировать Metrics API для детальной статистики (если в кластере установлен соответствующий компонент).

Скриншот конфигурации кластера в Portainer

Практические рекомендации и лучшие практики

  • Для production используйте Ingress с TLS через сертификаты (Let’s Encrypt, ACME или корпоративный CA). Это позволит централизовать управление TLS и упростит политику безопасности.
  • Разворачивайте Portainer в отдельном namespace и применяйте ограничения RBAC — не давайте Portainer полных прав кластера без необходимости.
  • Храните секреты TLS и пароли в Kubernetes Secrets с соответствующими политиками доступа.
  • Используйте NetworkPolicy для ограничения трафика между компонентами Portainer и агентом.
  • Включайте логирование и мониторинг (Metrics API, Prometheus, Grafana) отдельно, если нужна детальная телеметрия.

Важно: Portainer упрощает многие операции, но не заменяет необходимость понимать kubectl и принципы Kubernetes. Для сложных сценариев всё равно потребуется мануальная работа с манифестами и API.

Когда Portainer может не подойти

  • Сложные multi‑cluster сценарии с продвинутой сетевой политикой и кастомными CRD. Portainer оптимизирован для типичных операций и базовой видимости.
  • Политики безопасности и аудита на уровне, требующем тонкой настройки RBAC и динамических политик. Portainer облегчает задачи, но может скрывать детали, которые нужно отслеживать вручную.
  • Если требуется интеграция со специфическими CI/CD пайплайнами с нестандартными шагами, может быть удобнее использовать специализированные инструменты.

Альтернативы и когда их выбирать

  • Kubernetes Dashboard — официальная утилита, хорошо интегрирована, но с ограничённым UX и безопасностью по умолчанию.
  • Lens — мощный клиент для разработчиков с большими возможностями локальной работы с кластерами.
  • Argo CD, Flux — лучше для GitOps и автоматического развёртывания.

Выбор зависит от задач: Portainer хорош для простого управления и консолидации сред; Lens — для локальной отладки; GitOps‑инструменты — для автоматизации развёртываний.

Пошаговый SOP: быстрое развёртывание Portainer (минимально рабочий набор)

  1. Проверить доступ к кластеру: kubectl cluster-info.
  2. Установить Helm, добавить репозиторий Portainer и обновить репозитории.
  3. Выбрать способ экспонирования: NodePort (тест), LoadBalancer (облако), Ingress (production).
  4. Выполнить helm install с выбранными параметрами.
  5. Дождаться готовности Pod’ов: kubectl -n portainer get pods –watch.
  6. Открыть UI, создать администратора, пройти начальную настройку.
  7. (Опционально) Установить Portainer Agent в целевые кластеры и подключить их через Environments.
  8. Настроить RBAC, NetworkPolicy, TLS и резервное копирование конфигураций.

Чек‑лист по ролям

DevOps / SRE:

  • Убедиться в наличии Backup/Restore для namespace portainer.
  • Настроить RBAC так, чтобы Portainer имел минимальные права.
  • Настроить мониторинг и оповещения для Portainer и агента.

Кластерный администратор:

  • Выбрать подходящий тип сервиса (Ingress/LoadBalancer/NodePort) и настроить DNS/TLS.
  • Проверить NetworkPolicy и Firewall для доступа к API.

Разработчик:

  • Проверить, что у вас есть доступ к нужному Namespace через Portainer.
  • Использовать кнопку загрузки манифеста для тестовых релизов.

Критерии приёмки

  • UI Portainer отвечает и доступен по указанному домену/IP.
  • Агент зарегистрирован и показывает статус “Connected” для каждого добавленного кластера.
  • Возможность просмотреть Pods, Deployments и просмотреть логи контейнеров через интерфейс.
  • Разворачивание простого приложения (например, Nginx) из манифеста проходит успешно и возвращает 200 OK по настроенному Ingress.

Мини‑методология для принятия решения о развёртывании

  1. Оцените цель: тест/демонстрация или production.
  2. Для теста — NodePort; для облака — LoadBalancer; для долгосрочной эксплуатации — Ingress.
  3. Подумайте о безопасности: RBAC, TLS и NetworkPolicy обязательно.
  4. Планируйте резервное копирование конфигурации Portainer и механизм отката.

Модель принятия решения (упрощённая)

flowchart TD
  A[Нужен быстрый доступ к кластеру?] -->|Да| B[NodePort]
  A -->|Нет| C[Production / долгий срок]
  C --> D{Есть Ingress-контроллер?}
  D -->|Да| E[Ingress + TLS]
  D -->|Нет| F{Поддерживает ли провайдер LoadBalancer?}
  F -->|Да| G[LoadBalancer]
  F -->|Нет| B

Тесты и приёмочные сценарии

  • Тест подключения: после установки агента в кластере в Portainer отображается новый Environment и его статус Connected.
  • Тест развёртывания: загрузка YAML манифеста и успешный запуск Pod’а.
  • Тест сети: доступ к приложению через Ingress/LoadBalancer/NodePort в зависимости от выбранного варианта.

Безопасность и конфиденциальность

  • Минимизируйте права, предоставляемые Portainer. Настройте RBAC для исключения избыточных привилегий.
  • Храните секреты в Kubernetes Secrets, а доступ к ним ограничьте с помощью RBAC.
  • При возможности используйте централизованное управление сертификатами (ACME, Cert‑Manager).
  • Внимательно относитесь к настройкам экспонирования: не открывайте административный интерфейс Portainer в публичный интернет без защиты (TLS, IP‑фильтры, VPN).

Примечание по GDPR/конфиденциальности: Portainer сам по себе не хранит персональные данные, но предоставляет доступ к метаданным и логам приложений, которые могут содержать чувствительную информацию. Контролируйте права доступа и хранение логов согласно политике вашей организации.

Советы по миграции и совместимости

  • При переходе с одной версии Portainer на другую читайте release notes и проверяйте изменения RBAC и API.
  • Если у вас несколько кластеров и вы хотите централизовать мониторинг — подключите их через агенты к одному экземпляру Portainer.
  • Для крупных корпоративных сред рассмотрите изоляцию Portainer по средам (prod/stage/dev) для предотвращения случайных воздействий.

Быстрый справочник команд

  • Добавить репозиторий и обновить кэш Helm:
helm repo add portainer https://portainer.github.io/k8s/
helm repo update
  • Установить Portainer с ServiceType=LoadBalancer:
helm install --create-namespace -n portainer portainer portainer/portainer --set service.type=LoadBalancer
  • Проверить сервисы в namespace portainer:
kubectl get services -n portainer
  • Отслеживать состояние Pod’ов:
kubectl -n portainer get pods --watch

Быстрая галерея крайних случаев

  • Нет Ingress и нет LoadBalancer в среде — используйте NodePort и проброс портов с контролируемого узла.
  • Ограниченная сеть — разверните Portainer в той же приватной сети и используйте VPN/SSH туннель для доступа.
  • Много кластеров с изолированными сетями — разверните агентов локально и подключите их к центральному Portainer через защищённые каналы.

Короткое объявление (для рассылки, 100–200 слов)

Portainer теперь удобно интегрируется с Kubernetes и позволяет управлять кластерами через понятный веб‑интерфейс. Вы можете развернуть Portainer прямо в кластере с помощью Helm (NodePort, LoadBalancer или Ingress) или подключить существующий экземпляр через Portainer Agent. Управление Pods, Deployments, ConfigMap и Secrets выполняется через интуитивные формы и загрузку YAML‑манифестов. Для production рекомендуется использовать Ingress с TLS, включить RBAC и ограничения NetworkPolicy. Эта статья содержит пошаговый SOP, чек‑листы по ролям и рекомендации по безопасности для быстрого старта.

Сводка

Portainer — удобный инструмент для упрощённого управления Kubernetes, особенно для базовых операций и визуального контроля. Развёртывание и подключение происходят через Helm и Portainer Agent. Выбирайте NodePort для быстрых тестов, LoadBalancer для облака и Ingress для долгосрочной эксплуатации. Не забывайте про безопасность: RBAC, TLS, NetworkPolicy и мониторинг.

Important: Portainer облегчает рутинные задачи, но не заменяет глубокого понимания Kubernetes. Используйте инструмент как надстройку для повышения продуктивности, а не как единственный источник правды по кластерам.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро