# Основные понятия ## Принципиальная схема ![kuber-schema](img/Concept-kuber.png) ### Администрирование - Администраторы kubernetes \ Задачи: - Создание и сопровождение кластера kubernetes - Организация доступа к kubernetes - Администраторы `Global ERP` Задачи: - Конфигурирование ресурсов для работы системы `Global ERP` ### Kubernetes Подробнее о режиме работы kubernetes в высокой доступности смотрите [документацию kubernetes](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/ha-topology/) ### Global ERP Namespace В данном пространстве имен работают ресурсы системы `Global ERP`. Смотрите [namespace](#namespace) Требования к [узлам кластера](https://kubernetes.io/docs/concepts/architecture/nodes/) в минимальной конфигурации отсутствуют. ### Database Подробнее о режиме работы базы данных в режиме высокой доступности смотрите в документации соответствующего решения. - [patroni](https://patroni.readthedocs.io/en/latest/) #### Требования к базе данных - Синхронная репликация или асинхронная ```{note} Синхронная репликация требуется в случае: - необходимости гарантировать отсутствие потерь выполненных транзакций при сбоях ``` - Авто выбор лидера - адрес доступа к мастеру - адрес доступа к реплике ```{note} Требуется в случае необходимости распределения нагрузки ``` ## Nscli [Nscli](appendix/nscli.md) - инструмент управления рабочим пространством. Данный инструмент содержит набор вспомогательных команд для управления рабочим пространством из внешнего окружения. Ключевые функции: - Формирование скрипта установки `namespace` (рабочего пространства) - Загрузка артефактов в рабочее пространство - Копирование изображений контейнеров ### Требования к ос - linux а именно - debian 11 и выше - astra linux 1.8 - python 3.9 ### Требование к железу для запуска nscli - 2 ядра - 200 мб оперативной памяти - 60гб свободного места ### Команды #### Image [Image](appendix/nscli/image.md) - инструмент работы с образами контейнера. Ключевые функции: - Копирование образов контейнера между регистрами образов \ Используется для массового переноса образов в изолированную среду. ## Namespace [Пространства имен](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) в `kubernetes` в рамках которого разворачивается система `Global ERP`. ```{note} Скрипт создания данного рабочего пространства может быть сформирован утилитой [nscli/namespace](appendix/nscli/namespace.md) ``` ### Nsctl [Nsctl](appendix/nsctl.md) - компонент отвечающий за управление ресурсами в пространстве имен. Данный компонент устанавливается в момент создания пространства имен для администрирования кластера `Global ERP`. Ключевые функции: - Создание конфигураций развертывания `Global ERP` - Формирование ресурсов `kubernetes` по заданной конфигурации. ### Appkit Комплект приложений определяет перечень артефактов, необходимых для разворачивания системы `Global ERP`: - Сервер приложений `Global ERP` - Образ прикладного решения - Набор конфигураций для сервисов кластера ### Sysvolume Системный [хранимый том](https://kubernetes.io/docs/concepts/storage/volumes/#nfs) определяет местоположение системных файлов для рабочего пространства. В данный том загружаются разные версии комплектов приложений для развертывания в кластере. Системный том конфигурируется при создании пространства имен. ### Appvolume Прикладной [хранимый том](https://kubernetes.io/docs/concepts/storage/volumes/#nfs) определяет местоположение хранимых файлов для работы компонентов `Global ERP`. ```{note} Помимо указанных томов, можно примонтировать и другие (пока только NFS). Команды для управления точками монтирования смотрите в справке по [nsctl/resgroup](appendix/nsctl/resgroup.md). ``` ### Resgroup Группа ресурсов задает общие настройки для ресурсов kubernetes в рамках одного комплекта приложений. Ключевые настройки: - Комплект приложений \ Задает путь для текущего `appkit`, а так же контрольные суммы для поддержки целостности. - Настройки прикладного тома \ Данные настройки применяются при создании [подов](https://kubernetes.io/docs/concepts/workloads/pods/) ### Resbook Книга ресурсов является ключевым элементом настройки правил разворачивания ресурсов kubernetes. На данном уровне задаются: - `Тип книги ресурсов` \ Определяет общий перечень ресурсов, который может быть развернут - `Значения` \ Определяют непереносимые при копировании настройки ресурсов. Таких как: реквизиты учетных данных, количество экземпляров. - `Характеристики` \ Определяют переносимые при копировании настройки ресурсов. Таких как требуемый объем диска, cpu. - `Образ контейнера` \ Позволяет переопределять образ контейнера при развертывании - `Шаблон развертывания` \ Позволяет переопределить шаблон формирования ресурсов kubernetes Подробнее смотрите [перечень книг ресурсов](appendix/resbooks.md). ## Алгоритм развертывания 1. Установить `Nscli` 2. Сформировать скрипт установки `namespace` 3. Сформировать комплект приложений 4. Выполнить в kubernetes манифест создания пространства имен 5. Создать необходимый перечень `Resbook` и сконфигурировать его. 6. Включить конфигурацию При этом произойдет развертывание ресурсов `kubernetes`, которые обеспечат работу комплекса `Global Erp` в необходимой конфигурации. ## Версии Комплект имеет [семантическую систему](https://semver.org/) версионирования. При этом на каждую минорную версию выпускается новый комплект образов.