Управление пространствами

Система включает в себя решение для управления кластерами продукта, а также оркестрации запускающихся на них компонентов и организации взаимодействия между ними.

Кластеры и пространства

Развертывание компонентов продукта в одном Kubernetes-кластере не всегда удовлетворяет бизнес-требованиям по работе с удаленным ресурсами, особенно если ресурсы расположены в DMZ-зоне. В таких случаях возникает необходимость развертывать компоненты в отдельных кластерах, которые могут быть размещены в разных сегментах сети. Система позволяет использовать такую топологию и управлять сервисами, которые запущены в этих кластерах.

Кластер Kubernetes, в котором разворачиваются все системные компоненты продукта, называется основным кластером. Часть компонентов продукта может быть развернута на дополнительных удаленных кластерах — сателлитах. В отличие от основного кластера, сателлит не обладает полным спектром функциональности продукта и может работать только с теми компонентами, которые на нем запущены.

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

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

В системе доступны следующие типы сервисов:

  • Коллектор — сервис, который осуществляет сбор событий из источников, их обработку и дальнейшую отправку на хранение или во внешние системы.

  • Шлюз — сервис, позволяющий управлять потоками данных между агентами на конечных устройствах и центральным кластером.

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

Работа с пространствами и сервисами осуществляется в разделе Настройки → Пространства и сервисы веб-интерфейса системы.

Конфигурация сервиса

  • Инфраструктурная конфигурация (Infra) — содержит сведения о компонентах, которые должны быть развернуты в кластере. Infra-конфигурация не хранит в себе конфигурацию самих приложений, а только описывает необходимую для их запуска инфраструктуру: например, список контейнеров и переменные окружения.

  • Конфигурация приложений (Runtime) — содержит сведения о поведении запускаемых приложений. Runtime-конфигурация описывает параметры, специфические для конкретного типа сервиса. Такие конфигурации создаются и предоставляются менеджерами конкретного типа сервисов. Runtime-конфигурация не является обязательной для работы сервиса и может отсутствовать.

Компоненты модуля управления пространствами

Модуль управления пространствами состоит из следующих компонентов:

  1. Менеджер пространств — предназначен для создания пространств, подключения к ним и управления ими как объектами системы.

  2. Контроллер пространства — разворачивается в каждом пространстве и предназначен для контроля за ресурсами пространства и за состоянием его сервисов:

    • Контроль за ресурсами: при попытке запуска сервиса контроллер определяет, достаточно ли в пространстве системных ресурсов для его развертывания. При достаточном объеме ресурсов контроллер запустит сервис.

    • Контроль за сервисами: контроллер регулярно отслеживает состояние сервисов, собирает логи об их изменении и следит, чтобы все запущенные сервисы работали. Так, например, если какой-нибудь сателлит будет перезапущен, контроллер заново развернет все необходимые сервисы на этом сателлите.

  3. Менеджер сервисов — представляет собой конкретную реализацию менеджера определенного типа сервисов. Отвечает за формирование Runtime-конфигурации нужного типа сервиса и взаимодействие этого сервиса с системой.

  4. Шина — предназначена для взаимодействия компонентов системы между собой посредством обмена командами и их результатами.