Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Управление системными конфигурациями

Для управления конфигурациями узлов в 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.

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

  2. В ответ сервер Configuration Manager направляет агенту сценарий настройки (каталог), который агент должен выполнить, чтобы привести состояние узла к желаемому. При этом агент пропускает те задачи, которые уже были выполнены ранее.

  3. После выполнения сценария настройки агент направляет серверу отчет, который содержит информацию о результатах выполнения операций и их статус. Данный отчет может использоваться для диагностики проблем, возникших в ходе операций с платформой.

    Отдельный веб-интерфейс для просмотра отчетов 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 ожидает успешное завершение установки модулей платформы и завершает работу.