Архитектура решения#

kuber-schema

gs-ctk разворачивается в отдельном пространстве имен Kubernetes при помощи утилиты nscli c jump-хоста и состоит из пяти компонентов:

  1. Контроллера пространства имен nsctl

  2. Подов с серверами приложений: эксклюзивного (global-server-excl) для задач обслуживания и реплицируемых (global-server-share) для масштабирования и отказоустойчивости

  3. Балансировщика нагрузки HAProxy

  4. Стек мониторинга с доступом через систему визуализации данных Grafana

  5. Вспомогательных опциональных служб, таких как RabbitMQ

Данные хранятся в базе данных и на файловом хранилище. Конфигурация gs-ctk хранится в виде ресурсов Kubernetes.

Дистрибутив#

Дистрибутив gs-ctk представляет собой:

  • набор образов контейнеров:

    • контроллер пространства имен gs/nsctl

    • контейнер-болванки со средой для сервера приложений, планировщика задач и GossipRouter gs/globalserver

    • вспомогательный (sidecar) контейнера для сбора телеметрии с контейнера-болванки gs/systemagent

    • балансировщик нагрузки gs/haproxy

    • вспомогательный (sidecar) контейнера для сбора телеметрии с балансировщика нагрузки gs/haproxyagent

    • стек внутреннего мониторинга gs/grafana

    • встроенный брокер сообщений gs/rabbitmq

  • консольную утилиту для работы с кластером с jump-хоста - nscli

Контейнеры и утилиту можно скачать с наших репозиториев, однако доступ к ним ограничен. Узнайте подробнее у контактного лица.

База данных#

gs-ctk не разворачивает систему управления баз данных. Вам необходимо самостоятельно развернуть СУБД PostgreSQL с соответствующими требованиями к отказоусточивости. Если вы ищете инструмент автоматического развертывания, посмотрите Patroni.

Рекомендуется использовать систему синхронного или асинхронного реплицирования с автоматическим переключением главной ноды.

Примечание

Синхронная репликация требуется в случае необходимости гарантировать отсутствие потерь выполненных транзакций при сбоях

Хранение файлов#

gs-ctk требует для своей работы несколько файловых хранилищ:

  • системное, для хранения комплектов приложений и комплектов групп. Указывается для всего gs-ctk при установке.

  • прикладное, для хранения прикрепленных файлов. Указывается для группы ресурсов.

Примечание

Помимо указанных томов, можно примонтировать и другие (пока только NFS). Команды для управления точками монтирования смотрите в справке по nsctl/resgroup.

На данный момент поддерживаются только NFS-хранилища.

Алгоритм развертывания#

  1. Установить nscli

  2. Развернуть пространство имен с nsctl

  3. Сформировать комплект приложений

  4. Создать необходимый перечень групп и книг ресурсов и сконфигурировать его.

  5. Включить конфигурацию

Совет

Подробнее о развертывании читайте в Руководстве системного администратора.