VK Cloud logo

Аддоны

Для кластеров Kubernetes, которые вы создаете в сервисе Managed Containers, доступны различные аддоны (дополнительные сервисы). Их можно выбрать в любой комбинации и установить либо при создании кластера с помощью Terraform, либо позднее в уже существующий кластер. Процесс установки автоматизирован и требует минимального вмешательства.

Особенности установки аддонов

  • Аддоны устанавливаются на worker-узлы кластера и потребляют их вычислительные ресурсы.

    Ниже приведены системные требования аддонов, исходящие из стандартных значений requests и limits для ресурсов Kubernetes в коде настройки аддона. При использовании нестандартных значений системные требования аддонов изменятся.

  • Аддоны могут быть установлены на выделенную группу worker-узлов или на выбранные планировщиком Kubernetes worker-узлы. Использование первого подхода позволяет исключить влияние аддонов на работу production-сервисов, развернутых в кластере.

    Вычислительных ресурсов выделенной группы worker-узлов должно быть достаточно для всех аддонов, даже если каждый аддон потребляет максимум ресурсов, указанных в системных требованиях. Рекомендуется настроить автоматическое масштабирование для такой группы узлов.

  • Установка аддонов возможна в трех вариантах:

    • Стандартная установка на выбранные планировщиком Kubernetes worker-узлы с изменением кода настройки аддона.
    • Установка на выделенные worker-узлы с изменением кода настройки аддона.
    • Быстрая установка на выбранные планировщиком Kubernetes worker-узлы без изменения кода настройки аддона (с настройками по умолчанию).

    Не все аддоны поддерживают все три варианта установки.

    Процесс установки описан в разделе Установка и настройка аддонов.

Доступные аддоны

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

Argo CD

Argo CD — это инструмент непрерывной доставки (continuous delivery, CD) для Kubernetes, который использует подход GitOps. Он автоматически развертывает и обновляет приложения в кластере, отслеживая их конфигурацию в Git-репозитории. Преимущества Argo CD:

  • Ускоряются и упрощаются процессы GitOps: сокращается время на запуск, масштабирование и доставку изменений, а также снижается сложность их внедрения.
  • Повышается надежность и управляемость кластеров: минимизируются ручные действия и ошибки при изменении конфигурации. Argo CD автоматически замечает такие расхождения и возвращает кластер к состоянию, описанному в его Git-репозитории.
  • Действия в кластере становятся более прозрачными, и повышается его безопасность за счет контроля над всеми изменениями с возможностью отслеживания и аудита через Git.

Для корректной работы Argo CD требуется стабильный доступ к Git-репозиториям, в которых содержится конфигурация кластеров. Также аддон должен иметь права на создание приложений в кластере, настроенные в Kubernetes через модель разграничения доступа (Role Based Access Control, RBAC), иначе возможны ошибки синхронизации состояния кластера.

cert-manager

С помощью инструмента cert-manager можно управлять сертификатами в кластерах Kubernetes:

  • Выпускать сертификаты, в том числе самоподписанные (self-signed). Для этого cert-manager отправляет запросы к источникам, выступающим в роли центра сертификации (certificate authority, CA).

    Примеры источников:

    • провайдеры решений по кибербезопасности, такие как Venafi;
    • провайдеры сертификатов, такие как Let’s Encrypt;
    • хранилища секретов, такие как HashiCorp Vault;
    • локальные контейнеры, содержащие внутри себя публичную часть сертификата и приватный ключ.
  • Автоматически перевыпускать сертификаты с истекающим сроком действия.

Выпущенный с помощью cert-manager сертификат будет доступен другим ресурсам Kubernetes. Например, его можно использовать для Ingress.

Container Storage Interface (CSI) для S3

Container Storage Interface для S3 (S3-CSI) — драйвер Container Storage Interface для Kubernetes, который позволяет монтировать S3-совместимые объектные хранилища (VK Object Storage, AWS S3, MinIO и другие) как постоянные тома (Persistent Volumes, PV).

S3-CSI основан на высокопроизводительной файловой системе GeeseFS, которая работает на базе FUSE. Аддон имеет почти полную POSIX-совместимость и поддерживает следующие действия с объектами:

  • чтение и запись;
  • блокировка;
  • переименование и удаление.

S3-CSI работает на уровне бакетов объектного хранилища и может функционировать в двух режимах:

  • Динамическое создание бакетов (dynamic provisioning). При создании PVC (Persistent Volume Claim) с указанным классом хранения (Storage Class) аддон автоматически создает новый бакет в целевом S3-совместимом хранилище. После создания PVC этот бакет сразу готов к использованию как PV.
  • Использование существующих бакетов (static provisioning). Вы можете использовать заранее созданный бакет в любом S3-совместимом хранилище. Для этого аддон создает PV с указанием имени существующего бакета, и затем PVC связывается с этим PV.

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

Docker Registry

Реестр Docker предназначен для размещения и хранения образов Docker. Работает в отказоустойчивой конфигурации (high availability, HA). Образы из реестра можно использовать при развертывании сервисов в кластере.

Подробнее в разделе Подключение к реестру Docker.

External Secrets Operator

External Secrets Operator позволяет безопасно управлять секретами Kubernetes, которые хранятся вне кластера в облачных хранилищах (например, в менеджере секретов VK Cloud, AWS Secrets Manager, Azure Key Vault и так далее).

Подробнее о том, как использовать аддон с менеджером секретов VK Cloud, в разделе Использование External Secrets Operator.

Fluent Bit для Cloud Logging (logaas-integration)

Fluent Bit в комбинации со специальными фильтрами, написанными на языке Lua, позволяет организовать доставку логов из кластера Kubernetes в сервисе Managed Containers в сервис Cloud Logging для их дальнейшего анализа.

Источниками логов выступают службы kubelet и поды (pods), расположенные на узлах кластера. Подробнее о том, как работает аддон, в разделе про его установку.

GPU Operator

GPU Operator позволяет управлять GPU на узлах кластера для выполнения машинного обучения или обработки больших данных.

Доступны следующие варианты использования GPU в кластере:

  • Один под использует один или несколько GPU.
  • Аддон распределяет один GPU между несколькими подами по стратегии MIG.
  • Аддон распределяет один GPU между несколькими подами по стратегии MPS.

Состав аддона:

  • NVIDIA GPU Operator для управления GPU.

  • Служебные валидаторы для проверки CUDA (Compute Unified Device Architecture) после изменения конфигурации.

  • Средства самостоятельной диагностики оператора.

  • NVIDIA device plugin для автоматизации привязки и выделения ресурсов GPU.

  • Node Feature Discovery для определения и регистрации функций, доступных на узлах кластера. Компонент содержит следующие службы:

    • NFD-Master отвечает за подключение к серверу API Kubernetes и обновление объектов узлов.
    • NFD-Worker подключается к службе NFD-Master для объявления аппаратных функций.
    • NFD Garbage-Collector гарантирует, что все объекты Node Feature Discovery имеют соответствующие узлы, и удаляет устаревшие объекты для несуществующих узлов.

Подробнее об аддоне и его компонентах: NVIDIA GPU Operator, NVIDIA device plugin, Node Feature Discovery.

Ingress Controller (NGINX)

Ingress-контроллер на базе NGINX работает в качестве обратного прокси (reverse proxy) и позволяет организовать единую точку входа для сервисов в кластере, которые работают по HTTP или HTTPS.

При наличии контроллера достаточно создать ресурс Ingress, чтобы такие сервисы стали доступны извне кластера Kubernetes.

Ingress-контроллер тесно интегрируется с платформой VK Cloud. Подробнее в разделе Сеть в кластере.

Istio

Istio позволяет централизованно наблюдать за сетевым взаимодействием между сервисами и управлять им без изменения кода приложений. Istio реализует подход сервисной сетки (service mesh): трафик между сервисами проходит через управляемый слой прокси. В аддоне поддерживается как классическая модель с sidecar-прокси на уровне подов, так и режим Ambient Mesh без sidecar-контейнеров (прокси на уровне узлов). С помощью Istio можно:

  • задавать политики безопасности и управления трафиком между сервисами;
  • использовать TLS для коммуникации между сервисами;
  • расширить мониторинг межсервисного трафика (сбор метрик, логирование, распределенная трассировка);
  • настраивать сложную маршрутизацию и балансировку трафика между сервисами;
  • настраивать повторы запросов, тайм-ауты и другие механизмы контроля отказоустойчивости;
  • использовать Canary Deployment и Blue-Green Deployment для постепенного развертывания.

Jaeger

В распределенных системах, основанных на микросервисах, постоянно идет обмен запросами (requests). Платформа Jaeger создана для распределенной трассировки запросов. Jaeger отслеживает путь потока запросов через микросервисы и позволяет:

  • собирать информацию о взаимосвязях компонентов системы с точки зрения потока запросов;
  • обнаруживать проблемы с запросами или узкие места в архитектуре системы, связанные с обработкой потока запросов.

Такой инструмент необходим, потому что факторы, связанные с запросами, могут значительно влиять на поведение и производительность этих систем в целом. Недостаточно обеспечить наблюдение только за отдельными микросервисами.

Jaeger выполняет трассировку запросов на основе данных, которые получает от микросервисов. Поэтому в микросервисы необходимо интегрировать инструментальный стек OpenTelemetry для отправки данных о запросах. Познакомиться с интеграцией OpenTelemetry в микросервисное приложение можно на примере HotROD в разделе Использование Jaeger.

Kgateway

Kgateway — инструмент для маршрутизации и управления трафиком в Kubernetes с использованием Gateway API. Его преимущества:

  • Обеспечивает публикацию сервисов Kubernetes и проксирование запросов к внешним сервисам.
  • Автоматически масштабируется под нагрузку.
  • Сокращает время запуска приложений и сервисов.
  • Позволяет централизованно задавать точки входа, TLS, маршруты и политики доступа.

Подробнее о работе с аддоном в разделе Использование Kgateway.

Kube Prometheus Stack

Kube Prometheus Stack — система мониторинга состояния кластера и развернутых в нем сервисов, реализованная на базе Prometheus и инструмента визуализации Grafana. Подробнее в разделе Подключение к Grafana для просмотра метрик кластера.

VK Cloud предоставляет две версии аддона Kube Prometheus Stack: базовую и с доработками от компании VK Tech (версия с суффиксом vk в номере). Аддон с доработками содержит дополнительные встроенные функции, в частности, прогнозирование потребления ресурсов кластера.

Velero

Velero — инструмент с открытым исходным кодом для резервного копирования и аварийного восстановления кластеров Kubernetes.

С помощью аддона Velero вы можете легко настраивать и автоматизировать резервное копирование рабочих нагрузок, пространств имен и ресурсов Kubernetes, производить миграцию кластеров, а также выполнять восстановление после сбоев, ошибок конфигурации, некорректных релизов и инцидентов с данными. Резервные копии, которые создаются при работе с аддоном, хранятся в бакетах с классом хранения Hotbox в сервисе VK Object Storage.

Аддон Velero не поддерживает резервное копирование постоянных томов (Persistent Volumes, PV).

Подробнее о работе с аддоном в разделе Использование Velero.

Была ли статья полезна?