Налаштування Kubernetes Multi-Cluster Management з Portainer Business

Коли в інфраструктурі з'являється кілька Kubernetes-кластерів, керування через kubectl стає незручним і сповільнює роботу команди. Ми налаштовуємо централізоване керування за допомогою Portainer Business, об'єднуючи всі кластери та Docker-середовища в єдиний веб-інтерфейс. Наша команда реалізує проєкт під ключ — від аудиту до впровадження та подальшої підтримки, забезпечуючи надійну та масштабовану інфраструктуру.
Часті запитання

Зазнчимо: коли в інфраструктурі компанії з'являється другий Kubernetes-кластер, управління через kubectl перестає бути зручним. Кожен інженер зберігає kubeconfig-файли, перемикається між контекстами, а при змішаній інфраструктурі (K8s + Docker Compose) задача ускладнюється. Ми стикалися з цим не раз і знайшли рішення — Portainer. Цей інструмент займає нішу між Lens (інструмент інженера) і Rancher (enterprise-платформа): це веб-інтерфейс, доступний всій команді, який однаково працює з Kubernetes та Docker середовищами. За 5 років ми налаштували Portainer для 15+ компаній — від стартапів до enterprise з 10+ кластерами. Наш досвід дозволяє розгорнути multi-cluster management за 1-2 дні з гарантією відмовостійкості. Якщо вам потрібне централізоване управління — зв'яжіться з нами, ми оцінимо вашу інфраструктуру та запропонуємо оптимальну конфігурацію.

Порівняння Portainer з Lens та Rancher

Lens хороший для розробника: швидкий, локальний, але вимагає встановлення на кожну машину. Rancher — потужний, але складний в налаштуванні та ресурсоємний. Portainer — золота середина: простий UI, що працює з браузера, з можливістю керувати і Kubernetes, і Docker. Він ідеальний для команд до 20 осіб, де не потрібен enterprise SSO. За нашими оцінками, Portainer налаштовується втричі швидше за Rancher — за 2 години замість 6.

Інструмент Тип Управління Docker RBAC Складність налаштування
Portainer Business Веб Так Вбудоване Низька
Lens Десктоп Ні Через k8s RBAC Середня
Rancher Веб Через сторонні інструменти Розширене Висока

Як Portainer керує кількома кластерами?

Архітектура: Server та Agent

Portainer розгортається у двох компонентах:

Portainer Server — основний сервіс з веб-інтерфейсом. Встановлюється один раз, зазвичай в окремий Kubernetes namespace або на Docker-хост.

Portainer Agent — легкий агент, встановлюється в кожен керований кластер або на Docker-хост. Агент відкриває захищене з'єднання назад до Server.

Це ключова відмінність від Lens: Portainer доступний за URL будь-якому користувачу з браузером, не вимагає встановлення нічого на робочу машину.

Встановлення Server та підключення кластерів: покроково

  1. Встановіть Portainer Server у Kubernetes за допомогою Helm:
helm repo add portainer https://portainer.github.io/k8s/
helm install portainer portainer/portainer \
  --namespace portainer \
  --create-namespace \
  --set service.type=LoadBalancer \
  --set tls.force=true
  1. Отримайте URL сервера (наприклад, https://portainer.example.com).

  2. В інтерфейсі Portainer перейдіть до Environments → Add Environment → Kubernetes.

  3. Виберіть метод підключення: Agent або kubeconfig. При виборі Agent Portainer згенерує маніфест для kubectl.

  4. Застосуйте маніфест до цільового кластера: kubectl apply -f portainer-agent.yaml.

  5. За хвилину кластер з'явиться у списку Environments — готовий до управління.

Весь процес підключення одного кластера займає близько 15 хвилин.

Компонент CPU RAM Сховище Мережеві вимоги
Portainer Server 2 vCPU 4 GB 10 GB Висока пропускна здатність до агентів
Portainer Agent 0.5 vCPU 512 MB 1 GB Доступ до Server через 9443/tcp

Що Portainer вміє з Kubernetes?

Через веб-інтерфейс доступні:

  • Управління Namespaces з Resource Quotas та Limit Ranges
  • Розгортання застосунків через форму або YAML-маніфест
  • Управління Deployments, Services, Ingresses, ConfigMaps, Secrets
  • Перегляд логів подів у реальному часі
  • Exec у контейнер прямо з браузера
  • Управління Helm Charts через вбудовані App Templates

Portainer Business додає RBAC поверх стандартного Kubernetes RBAC — це важливо для організацій, де потрібно обмежити розробників конкретними namespaces без налаштування складних ClusterRole.

Можливість Portainer CE Portainer Business
Кластери K8s Так Так
Docker-хости Так Так
RBAC Ні Так (із маппінгом на LDAP/OIDC)
Реєстри контейнерів Так Так
Підтримка GitOps Через App Templates Через App Templates + зовнішні репозиторії
Зовнішня БД (PostgreSQL) Ні Так

Docker середовища в одному інтерфейсі

Це те, чого немає ні у Lens, ні у Rancher в такому зручному вигляді. Якщо частина сервісів ще працює на Docker Compose (legacy-хости, dev-середовища), Portainer керує ними поряд із Kubernetes-кластерами. Одне вікно для деплою стека в Docker Compose та Helm-релізу в Kubernetes.

Portainer Agent встановлюється на Docker-хост:

docker run -d \
    -p 9001:9001 \
    --name portainer_agent \
    --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /var/lib/docker/volumes:/var/lib/docker/volumes \
    portainer/agent:latest

Після цього хост з'являється в Environments поряд із Kubernetes-кластерами.

Безпека та обмеження

Portainer Business підтримує OAuth2/OIDC та LDAP для SSO. Community Edition — тільки локальні користувачі або LDAP.

Portainer Agent потребує широкі права в кластері (ClusterAdmin) для повного функціоналу управління. Це компроміс: за зручність платиш розширеними правами агента. Якщо потрібна мінімізація прав — використовуйте readonly-режим або обмежте Agent конкретними namespaces, але функціонал буде урізаний.

Сам Portainer Server зберігає токени та credentials у власній базі даних (BoltDB або зовнішня). При втраті цієї бази втрачається конфігурація всіх підключених оточень. Тому ми обов'язково налаштовуємо резервне копіювання бази в S3 або використовуємо зовнішню PostgreSQL.

Налаштування RBAC у Portainer Business для розробників

Вмикаємо зовнішню аутентифікацію (LDAP/OIDC), створюємо команди на основі груп із провайдера, призначаємо кожній команді доступ тільки до певних environments та namespaces. Так розробник бачить лише свої поди та логи, без доступу до production-кластера. У Portainer Business можна зв'язати ролі з LDAP із командами — це централізує управління правами.

Сфера застосування Portainer

Portainer — хороший вибір якщо:

  • Команда невелика (до 20 осіб), не потрібен enterprise SSO
  • В інфраструктурі змішані Kubernetes та Docker
  • Потрібен простий UI без складного налаштування Rancher
  • Хочеться швидко дати розробникам доступ до перегляду стану їхніх застосунків без kubectl

Для великого enterprise з сотнями розробників та десятками кластерів — Rancher дає більше можливостей управління та GitOps-інтеграції. Але навіть у цьому випадку Portainer може бути корисним як додатковий інструмент для швидкого доступу.

Що входить у роботу

Замовте налаштування Portainer під ключ — отримайте єдине вікно управління за 1-2 дні. У послугу входить:

  • Встановлення та конфігурація Portainer Server (Kubernetes або Docker)
  • Розгортання Portainer Agent у всіх кластерах та Docker-хостах
  • Налаштування TLS, LDAP/OIDC, RBAC
  • Створення команд та прав доступу для розробників
  • Інтеграція з Git-репозиторіями через App Templates
  • Резервне копіювання бази даних Portainer
  • Передача документації та навчання команди

Ми гарантуємо стабільну роботу під навантаженням. Якщо у вас складна інфраструктура — пишіть, ми проведемо аудит та запропонуємо оптимальну архітектуру. Зв'яжіться з нами, щоб обговорити ваш проект.

Строки та вартість

Строк налаштування: від 1 до 3 днів залежно від кількості кластерів та вимог до безпеки. Вартість розраховується індивідуально — залиште заявку, ми оцінимо проект і запропонуємо фіксовану ціну.

Portainer — opensource-інструмент, що використовується в промисловій експлуатації.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142