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