Группы и книги ресурсов#

Ключевое понятие 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)