Компоненты Nova Container Platform
1. Общее описание
Nova Container Platform состоит из множества компонентов, набор и размещение которых различается в зависимости от метода установки платформы. Компоненты Nova Container Platform могут быть внешними и внутренними.
При развертывании платформы из сети Интернет используются публичные ресурсы nova-platform.io
. При этом, возможна установка платформы как с доступом к сети Интернет напрямую, так и через HTTP-прокси.
При развертывании платформы в закрытом сетевом контуре без доступа к сети Интернет (офлайн-установка) используется отдельная служебная виртуальная машина Nova Universe, в которой размещаются все необходимые сервисы для установки и дальнейшей эксплуатации кластеров Nova Container Platform.
2. Внешние компоненты
Внешние компоненты платформы обеспечивают доступность ресурсов (хранилищ образов, репозиториев, сервисов настройки и доставки ПО и т.п.), необходимых для установки платформы в инфраструктуре, ее обслуживания и масштабирования.
В таблице ниже представлен перечень используемых внешних компонентов Nova Container Platform.
Компонент | Описание | Размещение |
---|---|---|
Хранилище образов |
Централизованное хранилище, где размещаются образы, необходимые для установки и обновления платформы. |
При установке платформы из сети Интернет используется централизованное публичное хранилище |
Сервис проверки лицензии |
Сервис, необходимый для проверки лицензионной информации и получения аутентификационных данных для доступа к публичному хранилищу образов и сервису доставки ПО. |
При установке платформы из сети Интернет используется централизованный сервис |
Сервис доставки ПО |
Централизованные Git-репозитории, которые содержат сценарии развертывания ПО платформы. |
При установке платформы из сети Интернет используется публичное хранилище |
Сервис настройки ПО Nova Configuration Manager |
Сервис, который подготавливает необходимые сценарии автоматизации установки и передает их узлам платформы. Каждый узел содержит хостовой агент Nova Host Agent, который взаимодействует с Configuration Manager и применяет полученные сценарии в ОС. |
При установке платформы из сети Интернет используется централизованный сервис |
Сервер управления Nova Universe |
Отдельный сервер, поставляемый в виде образа ВМ. Предназначен для установки платформы в закрытом сетевом контуре. |
В инфраструктуре в виде отдельной ВМ. |
Схема ниже содержит основные внешние компоненты Nova Container Platform и способы доступа к ним.
Набор внешних компонентов Nova Container Platform (публичные сервисы, а также сервер Nova Universe) могут быть использованы для развертывания и управления множествами кластеров.
3. Внутренние компоненты и модули
Внутренние компоненты Nova Container Platform размещаются в ОС и окружении Kubernetes. В зависимости от среды и метода развертывания платформы, набор внутренних компонентов может меняться.
На схеме ниже представлены основные внутренние компоненты Nova Container Platform.
Внутренние компоненты разделены на модули. Модулем называется ПО (или группа ПО), которое может быть установлено в Nova Container Platform после этапа установки самой платформы. При этом, по-прежнему, в зависимости от среды и метода развертывания платформы, набор компонентов внутри модуля может меняться.
Модули в Nova Container Platform имеют две категории:
-
Базовый модуль: Устанавливается всегда в любой вариант платформы и содержит ПО для обеспечения ключевого функционала платформы (например, система мониторинга, веб-консоль Nova и т.п.).
-
Дополнительный модуль: Устанавливается при необходимости только после этапа установки платформы. В дополнительном модуле, как правило, находится ПО, установка которого требует выполнения подготовительных действий (например, планирования ресурсов кластера, архитектуры решения и т.п.).
Распределение компонентов по модулям в Nova Container Platform представлено далее в таблице.
Группа | Назначение | Компонент | Базовый модуль | Модуль безопасности Neuvector | Модуль Opensearch для сбора и хранения логов | Модуль Data Protection для резервного копирования и восстановления |
---|---|---|---|---|---|---|
Провайдеры инфраструктуры |
Автоматизация развертывания платформы |
Провайдеры VMware vSphere, zVirt, oVirt |
✅ |
|||
Компоненты Kubernetes |
Интерфейс CRI |
Containerd |
✅ |
|||
Компоненты Kubernetes |
Сетевой плагин |
На выбор Cilium CNI или Calico CNI[1] |
✅ |
|||
Компоненты Kubernetes |
Балансировщик нагрузки |
Контроллер Ingress Nginx |
✅ |
|||
Компоненты Kubernetes |
Инструменты обеспечения безопасности |
Secrets Manager, PKI, SSO |
✅ |
|||
Компоненты Kubernetes |
Инструменты работы с хранилищами |
Local Path CSI, Secrets Store CSI, vSphere CSI[2], oVirt CSI[3] |
✅ |
|||
Компоненты Kubernetes |
Планирование нагрузки |
Descheduler |
✅ |
|||
Компоненты Kubernetes |
Масштабирование нагрузки |
HPA, VPA |
✅ |
|||
Сервисы платформы |
Система мониторинга |
Prometheus |
✅ |
|||
Сервисы платформы |
Система мониторинга |
Grafana |
✅ |
|||
Сервисы платформы |
Система мониторинга |
Alertmanager |
✅ |
|||
Сервисы платформы |
Система мониторинга |
Thanos Query[4] |
✅ |
|||
Сервисы платформы |
Система логирования |
Logging Operator |
✅ |
|||
Сервисы платформы |
Система логирования |
Fluentd |
✅ |
|||
Сервисы платформы |
Система логирования |
Opensearch |
✅ |
|||
Сервисы платформы |
Инструменты обеспечения безопасности |
Neuvector |
✅ |
|||
Сервисы платформы |
Инструменты обеспечения безопасности |
Secrets Webhook |
✅ |
|||
Сервисы платформы |
Инструменты обеспечения безопасности |
CertManager |
✅ |
|||
Сервисы платформы |
Инструменты управления конфигурациями |
Gitea[5] |
✅ |
|||
Сервисы платформы |
Инструменты управления конфигурациями |
FluxCD |
✅ |
|||
Сервисы платформы |
Инструменты управления конфигурациями |
Automation Tools[6] |
✅ |
|||
Сервисы платформы |
Разрешение имен |
Nova DNS |
✅ |
|||
Сервисы платформы |
Веб-интерфейс управления |
Nova Console |
✅ |
Дистрибутивы всех модулей Nova Container Platform включены в сервер управления Nova Universe, а также доступны при установке платформы через сеть Интернет. Пользователь платформы может в любой момент времени установить или удалить любой дополнительный модуль. |
4. Обзор компонентов
4.1. Кластер Kubernetes
В таблице ниже представлено описание ключевых компонентов кластера Kubernetes в Nova Container Platform:
Компонент | Описание |
---|---|
Containerd |
Среда исполнения контейнеров, используемая в Nova Container Platform, совместимая с Kubernetes, предоставляющая интерфейс (CRI) взаимодействия с Kubelet. |
Calico CNI |
Один из плагинов для сетевых интерфейсов контейнеров (CNI), доступный для установки в Nova Container Platform. |
Cilium CNI |
Один из плагинов для сетевых интерфейсов контейнеров (CNI), доступный для установки в Nova Container Platform. К данному плагину дополнительно устанавливается ПО Cilium Hubble для отслеживания сетевого взаимодействия контейнеров в реальном времени. |
NGINX Ingress |
Основной балансировщик нагрузки и сервис-прокси, устанавливаемый в платформу на узлы с ролью |
Scheduler |
Стандартный компонент Kubernetes, задача которого состоит в определении подходящих узлов для вновь создаваемых |
Controller Manager |
Стандартный компонент, обеспечивающий основные циклы управления Kubernetes. Controller Manager отслеживает конфигурации в Etcd в кластере и вносит необходимые изменения для достижения указанного состояния какого-либо компонента. |
API Server |
Стандартный компонент, который предоставляет интерфейс взаимодействия (API) компонентам кластера и пользователям, проверяет и обслуживает их REST-запросы. |
Descheduler |
Компонент кластера Kubernetes в Nova Container Platform, задача которого поддерживать баланс размещения |
etcd |
Основное хранилище данных Kubernetes в формате “ключ-значение”. |
Local Path CSI |
Компонент кластера Kubernetes в Nova Container Platform, который позволяет утилизировать локальное хранилище на инфраструктурных узлах кластера. Локальное хранилище используется для временного хранения метрик системы мониторинга и данных платформы безопасности Neuvector. |
Secrets Manager |
Компонент Nova Container Platform для реализации глобального внешнего хранилища секретов, внешней инфраструктуры PKI и OAuth-провайдера аутентификации. |
Secrets Manager CSI |
Компонент кластера, который позволяет использовать хранилище секретов Secrets Manager в качестве провайдера секретов |
Secrets Manager PKI |
Инфраструктура PKI, организованная в рамках хранилища секретов Secrets Manager. В Nova Container Platform управление центрами сертификации, а также управление конечными сертификатами Kubernetes интегрировано с Secrets Manager. На узлах кластера не хранятся приватные ключи центров сертификации. Узлы кластера взаимодействуют с Secrets Manager через API для получения или обновления своих сертификатов. |
Secrets Manager OAuth |
Реализация доступа к ресурсам Nova Container Platform и в частности к Kubernetes API по протоколу OAuth с помощью Secrets Manager OIDC Provider. Secrets Manager позволяет использовать внешних поставщиков аутентификации (например, Active Directory, LDAP, OIDC, Github, Octa), а также имеет собственный каталог пользователей. В Nova Container Platform интеграция с Secrets Manager OAuth также поддерживается и для утилиты |
Secrets Store CSI |
Компонент Nova Container Platform, который позволяет с помощью провайдера секретов переносить ключи, секреты или сертификаты в кластер Kubernetes, сохранять их в объектах |
Metrics Server |
Компонент Nova Container Platform, отвечающий за предоставление метрик контейнеров. Metrics Server не хранит метрики локально, используется для быстрой оценки использования ресурсов |
Prometheus Adapter |
Адаптер Prometheus для Kubernetes Metrics API, позволяющий использовать пользовательские метрики в сценариях автоматического масштабирования. |
HPA |
Служба автоматического горизонтального масштабирования |
VPA |
Служба автоматического вертикального масштабирования |
4.2. Сервисы платформы
В таблице ниже представлено описание базовых сервисов платформы, предустанавливаемых в кластер Kubernetes в Nova Container Platform:
Компонент | Описание |
---|---|
Prometheus |
Система мониторинга и оповещения в Nova Container Platform. |
Grafana |
Система визуализации данных мониторинга в Nova Container Platform. |
Alertmanager |
Компонент системы мониторинга в Nova Container Platform, задача которого обрабатывать поступающие предупреждения, дедуплицировать их, группировать и маршрутизировать получателям согласно установленной конфигурации. |
Thanos Query |
Масштабируемый компонент системы мониторинга, предназначенный для осуществления запросов в несколько экземпляров Prometheus. Thanos Query устанавливается в кластер, когда количество инфраструктурных узлов три и более. |
Logging Operator |
Оператор Kubernetes для автоматического развертывания и конфигурации сбора логов с помощью агентов Fluentd или Fluentbit. После установки Nova Container Platform пользователь может сразу настроить сбор логов в кластере и их экспорт во внешнюю систему хранения. Кроме этого, поддерживается интеграция с модулем Opensearch, если пользователь планирует размещать систему хранения логов в кластере Kubernetes. |
Opensearch |
Масштабируемая платформа с открытым исходным кодом для реализации задач поиска информации, аналитики и визуализации данных. Opensearch является ответвлением коммерческого продукта Elasticsearch. В Nova Container Platform Opensearch может быть установлен опционально для хранения логов компонентов платформы. Поставляется вместе с компонентом Opensearch Dashboards (аналог Elasticsearch Kibana) для визуализации данных. |
Fluentd |
Аналогичный Fluenbit производительный обработчик логов, предназначенный для сбора данных и их передачи в различные системы. Имеет преимущество перед Fluenbit в количестве доступных плагинов для сбора информации. В Nova Container Platform Fluentd может быть настроен с помощью Logging Operator, а передача данных - в платформу Opensearch. |
Neuvector |
Комплексная платформа для управления безопасностью в Nova Container Platform. Осуществляет постоянный мониторинг платформы, процессов, файловых систем, поведенческий анализ работы контейнеров. С помощью Neuvector пользователь может выполнять сканирование образов контейнеров в различных хранилищах, проводить аудит безопасности узлов и контейнеров, а также оценивать риски информационной безопасности в различных аспектах. |
Secrets Webhook |
Webhook для Kubernetes, который широко используется в Nova Container Platform для передачи секретов “на лету” из хранилища Secrets Manager в запускаемое приложение. Перед запуском приложения, Webhook изменяет его манифест и добавляет специальный init-контейнер, который получает из Secrets Manager необходимую информацию (например, данные какой-либо учетной записи) и сохраняет ее в память, доступную для чтения только данному процессу. Таким образом, конфиденциальная информация не хранится ни на узлах кластера, ни в хранилище etcd. Приложения получают доступ только к своим секретам в Secrets Manager на основе Kubernetes RBAC и механизмов безопасности Secrets Manager. |
CertManager |
Компонент в кластере для управления X.509 сертификатами. В Nova Container Platform CertManager полностью интегрирован с Secrets Manager PKI, и может автоматически выпускать и обновлять сертификаты для конечных приложений. |
Gitea |
Компонент Nova Container Platform для хостинга и управления Git-репозиториями. Gitea используется для зеркалирования релизного репозитория с конфигурациями сервисов платформы. Gitea является единым источником конфигураций всех сервисов платформы и используется службой непрерывной доставки FluxCD. |
FluxCD |
Служба непрерывной доставки в Nova Container Platform. Используется для установки и поддержания консистентности конфигураций всех сервисов платформы и дополнительных модулей, размещаемых в Kubernetes. Подробную информацию об архитектуре данной службы можно получить в разделе Непрерывное развертывание и доставка. |
Automation Tools (Reflector) |
Компонент Nova Container Platform, который выполняет задачи копирования объектов |
Automation Tools (Reloader) |
Компонент Nova Container Platform, который может выполнять процесс перезапуска ( |
Nova DNS |
Компонент Nova Container Platform на основе CoreDNS, который отвечает за обслуживание DNS-зоны по умолчанию для Ingress-ресурсов. Пользователь также может осуществлять перенаправление запросов с собственных DNS-серверов на инфраструктурные узлы с Nova DNS в случаях, когда не планирует обслуживание DNS-зоны самостоятельно. |
Nova Console |
Графический веб-интерфейс управления Nova Container Platform, который позволяет выполнять большинство задач по администрированию платформы. Также веб-интерфейс предоставляет отдельный режим для работы пользователей, с помощью которого можно оперативно развертывать приложения и получать данные мониторинга. |