Группы и книги ресурсов
Contents
Группы и книги ресурсов#
Ключевое понятие gs-ctk - группа ресурсов. Группа ресурсов - это единый логический кластер серверов приложений с едиными БД, прикладным решением и вспомогательными службами.
Группа ресурсов в свою очередь делятся на книги ресурсов. Книга ресурсов представляет собой набор ресурсов Kubernetes, формируемых по одному шаблону, и реализующих, обычно, одну службу (функциональность).
Мы можем провести параллель между группами ресурсов в gs-ctk и пространствами имен в Kubernetes.
Информация о группах и книгах ресурсов хранится в Kubernetes в ресурсах типа ConfigMap.
Управление книгами ресурсов осуществляется через команды nsctl ./resgroup.sh
и ./resbook.sh
.
Классы книг ресурсов#
Каждая книга ресурсов принадлежит к одному из классов книг ресурсов, определяющий ее шаблон и возможные параметры. Например, класс книг ресурсов RabbitMQ. Подробнее о классах книг ресурсов читайте в отдельном разделе.
Классы книг ресурсов лежат в директории resbook
в nscli (для неуправляемого режима) и nsctl.
Класс книги ресурсов состоит из:
Jinja-шаблона
deploy.yaml
скрипта
ctl.py
, содержащего скрипт конфигурирования книги ресурсов
Состояния группы и книги ресурсов#
Каждая группа и книга ресурсов может быть включена (enabled) и выключена (disabled). По умолчанию, только что созданные группы и книги выключены.
Книга ресурсов может быть в трех состояниях:
created
, не развернутаdeployed
, развернутаfailed
, развертывание закончилось не удачно
Книга ресурсов автоматически разворачивается (переходит в состояние deployed
или failed
), если она и ее группа включены (enabled
), и автоматически сворачивается, если выключены.
Развертывание заключается в заполнении Jinja-шаблона deploy.yaml
параметрами из группы и книги ресурсов, хранящимися в ConfigMap, и в последующем применении получившегося манифеста в Kubernetes.
Если книга находится в состоянии failed
, то взаимодействовать с ней при помощи встроенных средств невозможно, требуется ручное управление Kubernetes. Ошибки в развертывании свидетельствует о наличии бага, сообщите об этом команде разработчиков gs-ctk для поддержки.
Конфигурационные значения (values) группы ресурсов#
Группа ресурсов имеет общие для всех книг ресурсов конфигурационные значения:
название контура (project_name, по умолчанию равно названию пространства имен, используется лишь для пометки в телеметрии)
настройки базы данных Postgres:
URL базы (database_url)
alias базы данных (database_alias, таким будет системное имя БД в сервере приложения)
имя секрета Kubernetes с парой логин/пароль от БД (db_user_secret_name)
основное прикладное хранилище и дополнительные точки монтирования
версия Java (java_version, должна быть равна 8 или 21)
настройки GossipRouter (gossip_routers_setting)
настройки RabbitMQ (rabbitmq_settings)