Управление пространствами
Система включает в себя решение для управления кластерами продукта, а также оркестрации запускающихся на них компонентов и организации взаимодействия между ними.
Кластеры и пространства
Развертывание компонентов продукта в одном Kubernetes-кластере не всегда удовлетворяет бизнес-требованиям по работе с удаленным ресурсами, особенно если ресурсы расположены в DMZ-зоне. В таких случаях возникает необходимость развертывать компоненты в отдельных кластерах, которые могут быть размещены в разных сегментах сети. Система позволяет использовать такую топологию и управлять сервисами, которые запущены в этих кластерах.
Кластер Kubernetes, в котором разворачиваются все системные компоненты продукта, называется основным кластером. Часть компонентов продукта может быть развернута на дополнительных удаленных кластерах — сателлитах. В отличие от основного кластера, сателлит не обладает полным спектром функциональности продукта и может работать только с теми компонентами, которые на нем запущены.
Для подключения к различным кластерам продукта, а также развертывания и запуска его компонентов в этих кластерах используется специальная логическая среда — пространство. По умолчанию в системе всегда имеется основное пространство, предназначенное для работы с компонентами в основном кластере.
Программные компоненты, разворачиваемые в пространствах, называются сервисами. Каждый сервис поставляется в виде Docker-образов при установке продукта и представляет собой набор контейнеров, приложений и их конфигураций.
В системе доступны следующие типы сервисов:
Таким образом, система предлагает функционал для управления пространствами в различных кластерах продукта и оркестрации его сервисов.
Работа с пространствами и сервисами осуществляется в разделе Настройки → Пространства и сервисы веб-интерфейса системы.
Конфигурация сервиса
-
Инфраструктурная конфигурация (Infra) — содержит сведения о компонентах, которые должны быть развернуты в кластере. Infra-конфигурация не хранит в себе конфигурацию самих приложений, а только описывает необходимую для их запуска инфраструктуру: например, список контейнеров и переменные окружения.
-
Конфигурация приложений (Runtime) — содержит сведения о поведении запускаемых приложений. Runtime-конфигурация описывает параметры, специфические для конкретного типа сервиса. Такие конфигурации создаются и предоставляются менеджерами конкретного типа сервисов. Runtime-конфигурация не является обязательной для работы сервиса и может отсутствовать.
Компоненты модуля управления пространствами
Модуль управления пространствами состоит из следующих компонентов:
-
Менеджер пространств — предназначен для создания пространств, подключения к ним и управления ими как объектами системы.
-
Контроллер пространства — разворачивается в каждом пространстве и предназначен для контроля за ресурсами пространства и за состоянием его сервисов:
-
Контроль за ресурсами: при попытке запуска сервиса контроллер определяет, достаточно ли в пространстве системных ресурсов для его развертывания. При достаточном объеме ресурсов контроллер запустит сервис.
-
Контроль за сервисами: контроллер регулярно отслеживает состояние сервисов, собирает логи об их изменении и следит, чтобы все запущенные сервисы работали. Так, например, если какой-нибудь сателлит будет перезапущен, контроллер заново развернет все необходимые сервисы на этом сателлите.
-
-
Менеджер сервисов — представляет собой конкретную реализацию менеджера определенного типа сервисов. Отвечает за формирование Runtime-конфигурации нужного типа сервиса и взаимодействие этого сервиса с системой.
-
Шина — предназначена для взаимодействия компонентов системы между собой посредством обмена командами и их результатами.