В кластере Kubernetes можно использовать различные дополнения (аддоны) для расширения его функциональности. Они помогают управлять трафиком, мониторить сервисы, работать с хранилищем и обеспечивать безопасность.
Некоторые дополнения, такие как Nginx Ingress, Kubernetes Dashboard и CSI S3, можно установить как на этапе создания кластера, так и позже. Управлять установкой и удалением аддонов можно во вкладке «Дополнения» в панели управления кластером.
Дополнения, которые не представлены в панели управления, можно устанавливать вручную при помощи Helm.
Nginx Ingress
Nginx Ingress — это контроллер Ingress, который управляет доступом внешнего трафика к сервисам внутри кластера Kubernetes через HTTP и HTTPS. Он маршрутизирует трафик на основе правил, определенных в ресурсах Ingress.
Принцип работы
Ingress-контроллер отслеживает объекты Ingress в Kubernetes и конфигурирует обратный прокси Nginx, чтобы направлять трафик на нужные сервисы. Это позволяет организовать доступ к различным микросервисам через единый IP-адрес, а также настроить балансировку нагрузки и маршрутизацию на основе доменных имен.
Основные функции
-
Маршрутизация HTTP/HTTPS запросов.
-
Поддержка SSL/TLS.
-
Балансировка нагрузки.
-
Управление внешним доступом к сервисам в кластере.
Подробная инструкция по работе с Nginx Ingress.
Kubernetes Dashboard
Kubernetes Dashboard — это веб-интерфейс для управления и мониторинга Kubernetes-кластера.
Для работы плагина необходим Nginx Ingress. Поэтому после включения этого плагина автоматически выберется и Nginx Ingress.
Принцип работы
Dashboard предоставляет пользователям графический интерфейс для взаимодействия с кластером. Он позволяет просматривать информацию о статусе подов, узлов, сервисов и других ресурсов Kubernetes. Также через интерфейс можно создавать, изменять и удалять ресурсы.
Основные функции
- Просмотр состояния кластера (поды, узлы, сервисы, конфигурации).
- Управление ресурсами кластера.
- Мгновенный доступ к логам подов и информации о запущенных приложениях.
- Управление секретами и конфигурациями.
Вход в Kubernetes Dashboard
Если вы включили опцию Kubernetes Dashboard для кластера, вы сможете перейти в Dashboard из панели управления. Для входа вам потребуется токен, который можно скопировать на вкладке «Дашборд».
CSI S3
CSI S3 — это плагин для Container Storage Interface (CSI), который позволяет использовать хранилища данных S3 совместно с Kubernetes.
Принцип работы
CSI S3 предоставляет возможность динамически подключать объектные хранилища, совместимые с S3 (например, Ceph, MinIO, AWS S3), как стандартные персистентные тома для использования в Kubernetes. Это особенно полезно для хранения больших объемов данных в контейнерных приложениях.
Основные функции
-
Подключение S3-хранилищ как постоянных томов (Persistent Volumes).
-
Поддержка динамического создания и удаления томов.
-
Гибкость в использовании различных S3-совместимых систем хранения данных.
Подробная инструкция по работе с CSI S3.
Capsule
Capsule — это дополнение, которое реализует концепцию мультиарендности в Kubernetes, обеспечивая изоляцию и контроль потребления ресурсов между различными группами пользователей.
Принцип работы
Capsule позволяет создавать логические тенанты на основе пространств имен с аннотациями и политиками, предоставляя пользователям возможность управлять своими ресурсами без воздействия на ресурсы других пользователей.
Основные функции
-
Изоляция ресурсов между пользователями.
-
Управление квотами и ограничениями.
-
Настройка политики безопасности для различных пользователей.
cert-manager
cert-manager — это дополнение для Kubernetes, которое автоматизирует выпуск, обновление и управление TLS-сертификатами.
Принцип работы
cert-manager автоматически запрашивает и обновляет сертификаты, управляя их жизненным циклом с помощью CRD-объектов (CertificateRequest
, Issuer
, ClusterIssuer
). Он поддерживает интеграцию с различными поставщиками сертификатов, такими как Let's Encrypt, HashiCorp Vault и внутренние центры сертификации.
Основные функции
-
Автоматический выпуск сертификатов
-
Обновление сертификатов по истечении срока действия
-
Поддержка множества поставщиков (ACME, Vault, self-signed)
Подробная инструкция по работе с cert-manager.
Fluent Operator
Fluent Operator — это Kubernetes-оператор для управления Fluentd и Fluent Bit, который автоматизирует сбор, маршрутизацию и обработку логов в кластере.
Принцип работы
Fluent Operator использует CRD для управления конфигурацией Fluentd и Fluent Bit, позволяя направлять контейнерные и системные логи в различные хранилища, такие как Elasticsearch, Loki, Kafka и другие.
Основные функции
-
Централизованный сбор и управление логами
-
Гибкая маршрутизация логов в различные системы хранения
-
Настройка фильтрации, агрегации и обработки логов
Подробная инструкция по работе с Fluent Operator.
Istio
Istio — это Service Mesh, которая обеспечивает управление трафиком, безопасность и мониторинг для сервисов в Kubernetes.
Принцип работы
Istio внедряет sidecar-прокси (Envoy) в каждый под, обеспечивая маршрутизацию, аутентификацию и мониторинг запросов внутри сервисной сети.
Основные функции
-
Маршрутизация трафика.
-
Гибкое управление политиками безопасности.
-
Мониторинг и трассировка запросов.
Istio Ingress
Istio Ingress — это компонент Istio, который управляет внешним трафиком в сервисную сетку.
Принцип работы
Istio Ingress работает как точка входа в Service Mesh, обрабатывая внешние HTTP, HTTPS и TCP-запросы и направляя их к внутренним сервисам через Istio.
Основные функции
-
Управление внешним трафиком.
-
Маршрутизация запросов.
-
Поддержка TLS и mTLS.
Jaeger
Jaeger — это инструмент трассировки распределенных систем, используемый для мониторинга взаимодействий между микросервисами и анализа их производительности.
Принцип работы
Jaeger собирает данные о запросах между сервисами, регистрируя временные метки и зависимости вызовов. Это позволяет отслеживать цепочку запросов, анализировать задержки и выявлять узкие места в системе.
Основные функции
-
Трассировка распределенных запросов.
-
Анализ времени отклика сервисов.
-
Поиск узких мест в архитектуре.
Kiali
Kiali — это инструмент для управления и визуализации Service Mesh Istio в Kubernetes.
Принцип работы
Kiali предоставляет графическое представление сетевых взаимодействий между сервисами, отображая их зависимости, метрики и потенциальные проблемы. Он может интегрироваться с Prometheus, собирая данные о трафике, ошибках и производительности, а также упрощает управление конфигурацией Istio.
Основные функции
-
Визуализация сервисной сети.
-
Мониторинг трафика и ошибок.
-
Управление конфигурацией Istio.
Kube Prometheus Stack
Kube Prometheus Stack — это набор инструментов для мониторинга Kubernetes, включающий Prometheus для сбора метрик, Alertmanager для управления оповещениями и Grafana для визуализации данных.
Принцип работы
Система автоматически собирает метрики из компонентов Kubernetes, подов и узлов, а также из сервисов, поддерживающих экспорт Prometheus-метрик. Данные хранятся в Prometheus, отображаются в Grafana, а Alertmanager отправляет уведомления при превышении заданных порогов.
Основные функции
-
Сбор и хранение метрик.
-
Визуализация данных в Grafana.
-
Настройка оповещений.
Traefik
Traefik — это Ingress-контроллер и балансировщик нагрузки для Kubernetes, обеспечивающий динамическую маршрутизацию трафика и автоматическое управление SSL-сертификатами.
Принцип работы
Автоматически обнаруживает сервисы в кластере и конфигурирует маршрутизацию HTTP/HTTPS трафика.
Основные функции
-
Маршрутизация трафика.
-
Интеграция с Let’s Encrypt.
Подробная инструкция по работе с Traefik.
Velero
Velero — это инструмент для резервного копирования, восстановления и миграции данных в Kubernetes.
Принцип работы
Позволяет делать бэкапы и восстанавливать данные на уровне namespace, ресурсов и PersistentVolume.
Основные функции
-
Бэкап и восстановление ресурсов Kubernetes.
-
Миграция данных и приложений между кластерами.
-
Поддержка локальных и облачных хранилищ для резервных копий.
Подробная инструкция по работе с Velero.
ExternalDNS
ExternalDNS — это инструмент для автоматического управления DNS-записями на основе ресурсов Kubernetes. Он создаёт и обновляет записи в DNS-провайдере в соответствии с аннотациями, указанными в манифестах сервисов и Ingress-ресурсов.
Принцип работы
ExternalDNS отслеживает изменения в объектах Kubernetes и создает или обновляет DNS-записи, в соответствии с внешними IP-адресами сервисов. Это позволяет автоматически привязывать доменные имена к сервисам в кластере без необходимости ручного управления DNS.
Основные функции
- Автоматическое создание и обновление DNS-записей.
- Упрощённое управление доменными именами в Kubernetes.
Подробная инструкция по работе ExternalDNS.