# Архитектура решения ![kuber-schema](img/Global-k8s.png) **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](https://patroni.readthedocs.io/en/latest/). Рекомендуется использовать систему синхронного или асинхронного реплицирования с автоматическим переключением главной ноды. ```{note} Синхронная репликация требуется в случае необходимости гарантировать отсутствие потерь выполненных транзакций при сбоях ``` ## Хранение файлов gs-ctk требует для своей работы несколько файловых хранилищ: - *системное*, для хранения комплектов приложений и комплектов групп. Указывается для всего gs-ctk при установке. - *прикладное*, для хранения прикрепленных файлов. Указывается [для группы ресурсов](./040_resgroups.md#конфигурационные-значения-values-группы-ресурсов). ```{note} Помимо указанных томов, можно примонтировать и другие (пока только NFS). Команды для управления точками монтирования смотрите в справке по [nsctl/resgroup](appendix/nsctl/resgroup.md). ``` *На данный момент поддерживаются только NFS-хранилища.* ## Алгоритм развертывания 1. Установить `nscli` 2. Развернуть пространство имен с `nsctl` 3. Сформировать комплект приложений 4. Создать необходимый перечень групп и книг ресурсов и сконфигурировать его. 5. Включить конфигурацию ```{tip} Подробнее о развертывании читайте в [Руководстве системного администратора](https://help.global-system.ru/doc-gsf-sys-adm/html/040_global-k8s/020_install.html). ```