Управление системными конфигурациями
Для управления конфигурациями узлов в Nova Container Platform SE используется специальный сервис настройки ПО Nova Configuration Manager. В данном разделе представлена информация о назначении данного сервиса, задачах, которые он решает, а также о его архитектуре.
1. Configuration Manager
Nova Configuration Manager является одним из критически важных компонентов Nova Container Platform SE и реализует механизмы автоматизированной конфигурации узлов платформы, управления узлами, установки и настройки необходимого ПО. В основе Configuration Manager используются компоненты платформы управления конфигурациями Puppet, однако решения для классификации и управления узлами платформы уникальны для Nova Container Platform SE. В сервере управления Nova Universe используется упрощенная версия Configuration Manager, адаптированная для работы в закрытом сетевом окружении.
1.1. Описание архитектуры
1.1.1. Используемые практики и подходы
В Configuration Manager применяются подходы IaaC и GitOps для управления конфигурациями Nova Container Platform SE. Для подготовки конечных кластеров используется инфраструктурный код, который содержит различные сценарии развертывания и обновления платформы, установку необходимых пакетов, среды Kubernetes, а также различных платформенных сервисов. Инфраструктурный код декларативен, определяет конечное желаемое состояние всех компонентов, а процесс его выполнения идемпотентен, то есть может выполняться множество раз с одним и тем же результатом.
1.1.2. Компоненты и роли
Configuration Manager имеет клиент-серверную архитектуру, где выполняет роль сервера. В роли клиента выступает узел Nova Container Platform SE, на котором установлен хостовый агент Nova Host Agent. Сервер синхронизирует инфраструктурный код необходимой версии с внешним Git-репозиторием, подготавливает уникальные сценарии для узла платформы, а агент выполняет данные сценарии локально, транслируя инфраструктурный код в необходимые команды. Результаты выполнения сценария передаются агентом на сервер в виде отчета.
На диаграмме ниже представлена схема работы Configuration Manager.
-
При каждом запуске Nova Host Agent отправляет серверу Configuration Manager факты о себе (конфигурацию ОС, сетевые параметры, список доступных устройств и т.п.).
-
В ответ сервер Configuration Manager направляет агенту сценарий настройки (каталог), который агент должен выполнить, чтобы привести состояние узла к желаемому. При этом агент пропускает те задачи, которые уже были выполнены ранее.
-
После выполнения сценария настройки агент направляет серверу отчет, который содержит информацию о результатах выполнения операций и их статус. Данный отчет может использоваться для диагностики проблем, возникших в ходе операций с платформой.
Отдельный веб-интерфейс для просмотра отчетов Configuration Manager на текущий момент доступен только при установке платформы в закрытом сетевом контуре с помощью сервера Nova Universe.
Каждый узел Nova Container Platform SE получает свой уникальный сценарий настройки и выполняет его параллельно с другими узлами. За счет этого достигается высокая скорость установки Nova Container Platform SE, которая практически не зависит от количества узлов в кластере Kubernetes.
1.2. Особенности использования
Работа Configuration Manager в Nova Container Platform SE выполняется прозрачно для пользователя и не требует погружения в сценарии установки. Пользователь использует только утилиту nova-ctl, которая взаимодействует напрямую с Configuration Manager и узлами платформы.
Лог работы Configuration Manager и Host Agent доступны пользователю при установке Nova Container Platform SE и в других сервисных операциях, выполняемых с помощью nova-ctl.
Недоступность Configuration Manager для nova-ctl и узлов платформы приводит к невозможности выполнения сервисных операций. При этом, сами кластера Kubernetes и сервисы, развернутые в них, продолжают работать и поддерживают все операции.
|
Configuration Manager хранит важную для платформы информацию: состояния узлов, результаты сценариев, которые на них выполнялись, параметры взаимодействия узлов с Configuration Manager. Потеря данной информации может привести к невозможности выполнения операций с имеющимся кластером Nova Container Platform SE. |
1.3. Управляемые компоненты в Kubernetes
Кроме настройки узлов и кластера Kubernetes, Configuration Manager также устанавливает в Kubernetes определенный набор системных компонентов, необходимых для инициализации базового функционала платформы. Перечень основных компонентов представлен далее в таблице.
Компонент |
Порядок управления |
Владелец |
Secrets Webhook |
Первоначально устанавливается в кластер через Configuration Manager. В дальнейшем им контролируется и обслуживается. |
Configuration Manager |
Secrets Store CSI |
Первоначально устанавливается в кластер через Configuration Manager. В дальнейшем им контролируется и обслуживается. |
Configuration Manager |
FluxCD |
Первоначально устанавливается в кластер через Configuration Manager. В дальнейшем им контролируется и обслуживается. |
Configuration Manager |
Gitea |
Первоначально устанавливается в кластер через Configuration Manager. Далее передается под управление службе непрерывной доставки FluxCD. |
FluxCD |
1.4. Взаимодействие со службой непрерывной доставки FluxCD
Для запуска процесса непрерывной доставки модулей в кластер Kubernetes Configuration Manager настраивает и устанавливает следующие ресурсы FluxCD:
-
Ресурс GitRepository, описывающий параметры подключения к хранилищу Gitea, версию и набор устанавливаемых модулей.
-
Ресурсы Kustomization, описывающие такие параметры, как:
-
Путь к манифестам компонента в репозитории Gitea
-
Зависимости от других устанавливаемых компонентов
-
Параметры и переменные для генерации финального манифеста компонента
-
Имя служебного аккаунта (Service Account) для развертывания компонента
-
Перечень ресурсов для проверки доступности компонента
-
После установки данных ресурсов Configuration Manager ожидает успешное завершение установки модулей платформы и завершает работу.