Компоненты Nova Container Platform

1. Общее описание

Nova Container Platform состоит из множества компонентов, набор и размещение которых различается в зависимости от метода установки платформы. Компоненты Nova Container Platform могут быть внешними и внутренними.

При развертывании платформы из сети Интернет используются публичные ресурсы nova-platform.io. При этом, возможна установка платформы как с доступом к сети Интернет напрямую, так и через HTTP-прокси.

При развертывании платформы в закрытом сетевом контуре без доступа к сети Интернет (офлайн-установка) используется отдельная служебная виртуальная машина Nova Universe, в которой размещаются все необходимые сервисы для установки и дальнейшей эксплуатации кластеров Nova Container Platform.

2. Внешние компоненты

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

В таблице ниже представлен перечень используемых внешних компонентов Nova Container Platform.

Компонент Описание Размещение

Хранилище образов

Централизованное хранилище, где размещаются образы, необходимые для установки и обновления платформы.

При установке платформы из сети Интернет используется централизованное публичное хранилище hub.nova-platform.io.
При установке в закрытом сетевом контуре используется централизованное хранилище Nova Universe.

Сервис проверки лицензии

Сервис, необходимый для проверки лицензионной информации и получения аутентификационных данных для доступа к публичному хранилищу образов и сервису доставки ПО.

При установке платформы из сети Интернет используется централизованный сервис access.nova-platform.io.
При установке в закрытом сетевом контуре данный сервис не требуется, а доступ к ресурсам Nova Universe осуществляется с помощью токенов авторизации.

Сервис доставки ПО

Централизованные Git-репозитории, которые содержат сценарии развертывания ПО платформы.

При установке платформы из сети Интернет используется публичное хранилище code.nova-platform.io.
При установке в закрытом сетевом контуре используется хранилище в Nova Universe.

Сервис настройки ПО Nova Configuration Manager

Сервис, который подготавливает необходимые сценарии автоматизации установки и передает их узлам платформы. Каждый узел содержит хостовой агент Nova Host Agent, который взаимодействует с Configuration Manager и применяет полученные сценарии в ОС.

При установке платформы из сети Интернет используется централизованный сервис sun.nova-platform.io.
При установке в закрытом сетевом контуре используется Configuration Manager в Nova Universe.

Сервер управления Nova Universe

Отдельный сервер, поставляемый в виде образа ВМ. Предназначен для установки платформы в закрытом сетевом контуре.
Предоставляет сервисы:
- хранилище образов
- сервис доставки ПО
- сервис настройки ПО

В инфраструктуре в виде отдельной ВМ.

Схема ниже содержит основные внешние компоненты Nova Container Platform и способы доступа к ним.

Основные внешние компоненты Nova Container Platform
Рисунок 1. Внешние компоненты Nova Container Platform

Набор внешних компонентов Nova Container Platform (публичные сервисы, а также сервер Nova Universe) могут быть использованы для развертывания и управления множествами кластеров.

3. Внутренние компоненты и модули

Внутренние компоненты Nova Container Platform размещаются в ОС и окружении Kubernetes. В зависимости от среды и метода развертывания платформы, набор внутренних компонентов может меняться.

На схеме ниже представлены основные внутренние компоненты Nova Container Platform.

Основные внутренние компоненты Nova Container Platform
Рисунок 2. Основные компоненты 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

Основной балансировщик нагрузки и сервис-прокси, устанавливаемый в платформу на узлы с ролью infra и ingress. В Nova Container Platform балансировщики NGINX Ingress имеют два отдельных DaemonSet, разделяя нагрузку на служебные и пользовательские сервисы. Тем самым повышается независимость и доступность публикуемых служебных и пользовательских сервисов.

Scheduler

Стандартный компонент Kubernetes, задача которого состоит в определении подходящих узлов для вновь создаваемых Pod .

Controller Manager

Стандартный компонент, обеспечивающий основные циклы управления Kubernetes. Controller Manager отслеживает конфигурации в Etcd в кластере и вносит необходимые изменения для достижения указанного состояния какого-либо компонента.

API Server

Стандартный компонент, который предоставляет интерфейс взаимодействия (API) компонентам кластера и пользователям, проверяет и обслуживает их REST-запросы.

Descheduler

Компонент кластера Kubernetes в Nova Container Platform, задача которого поддерживать баланс размещения Pod на узлах кластера. Поскольку стандартный Kubernetes Scheduler определяет подходящие узлы для размещения только новых Pod, то в динамичной инфраструктуре кластера может возникать разбалансировка ресурсов (например, когда добавляется или удаляется узел кластера, или узел кластера неутилизирован). Descheduler имеет несколько стратегий по оптимизации распределения нагрузки в кластере, а также возможность конфигурации дополнительных стратегий пользователем.

etcd

Основное хранилище данных Kubernetes в формате “ключ-значение”.

Local Path CSI

Компонент кластера Kubernetes в Nova Container Platform, который позволяет утилизировать локальное хранилище на инфраструктурных узлах кластера. Локальное хранилище используется для временного хранения метрик системы мониторинга и данных платформы безопасности Neuvector.

Secrets Manager

Компонент Nova Container Platform для реализации глобального внешнего хранилища секретов, внешней инфраструктуры PKI и OAuth-провайдера аутентификации.

Secrets Manager CSI

Компонент кластера, который позволяет использовать хранилище секретов Secrets Manager в качестве провайдера секретов SecretProviderClass для компонента Secrets Store CSI. Secrets Manager CSI позволяет синхронизировать Secrets в Kubernetes c хранилищем секретов Secrets Manager. В Nova Container Platform вся чувствительная информация (учетные данные, параметры подключения к OAuth, PKI) хранится в Secrets Manager. Информация, которая должна быть доступна в Kubernetes в виде ресурса Secret, передается в кластер c помощью Secrets Manager CSI и Secrets Store 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 также поддерживается и для утилиты kubectl.

Secrets Store CSI

Компонент Nova Container Platform, который позволяет с помощью провайдера секретов переносить ключи, секреты или сертификаты в кластер Kubernetes, сохранять их в объектах Secret или ConfigMap и монтировать в Pod в виде тома. В Nova Container Platform поставщиком секретов является хранилище Secrets Manager.

Metrics Server

Компонент Nova Container Platform, отвечающий за предоставление метрик контейнеров. Metrics Server не хранит метрики локально, используется для быстрой оценки использования ресурсов Pod и интегрируется через Metrics API со службами автоматического горизонтального масштабирования (Horizontal Pod Autoscaler) и автоматического вертикального масштабирования (Vertical Pod Autoscaler).

Prometheus Adapter

Адаптер Prometheus для Kubernetes Metrics API, позволяющий использовать пользовательские метрики в сценариях автоматического масштабирования.

HPA

Служба автоматического горизонтального масштабирования Pod (Horizontal Pod Autoscaler).

VPA

Служба автоматического вертикального масштабирования Pod (Vertical Pod Autoscaler).

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, который выполняет задачи копирования объектов Secret и ConfigMap между Namespace в случаях, когда это необходимо (например, при распространении цепочки доверенных сертификатов).

Automation Tools (Reloader)

Компонент Nova Container Platform, который может выполнять процесс перезапуска (rollout restart) объектов Deployment, DaemonSet, StatefulSet при изменении монтируемого ими файла конфигурации в ConfigMap или Secret.

Nova DNS

Компонент Nova Container Platform на основе CoreDNS, который отвечает за обслуживание DNS-зоны по умолчанию для Ingress-ресурсов. Пользователь также может осуществлять перенаправление запросов с собственных DNS-серверов на инфраструктурные узлы с Nova DNS в случаях, когда не планирует обслуживание DNS-зоны самостоятельно.

Nova Console

Графический веб-интерфейс управления Nova Container Platform, который позволяет выполнять большинство задач по администрированию платформы. Также веб-интерфейс предоставляет отдельный режим для работы пользователей, с помощью которого можно оперативно развертывать приложения и получать данные мониторинга.


1. Выбранный плагин Kubernetes CNI невозможно изменить после установки платформы.
2. Компонент доступен при развертывании платформы в среде виртуализации VMware vSphere методом IPI.
3. Компонент доступен при развертывании платформы в среде виртуализации zVirt методом IPI.
4. Компонент доступен при развертывании платформы с количеством инфраструктурных узлов более 3 шт.
5. Компонент недоступен для использования в собственных целях.
6. В компонент входит ПО для автоматического копирования объектов Secret и ConfigMap между пространствами имен в Kubernetes, а также ПО для автоматизированного перезапуска каких-либо нагрузок при изменении их конфигураций.