Установка в среде Kubernetes
Требования к проектировке¶
Развертывание Нимбиус среде Kubernetes возможно в двух разных вариантах:
-
Полная контейниризация (Все службы приложений и база данных PostgreSQL запускаются как поды внутри Kubernetes);
-
Контейниризация с внешней СУБД (Приложение использует внешний сервер базы данных PostgreSQL, в то время как все остальные сервисы запускаются как поды в Kubernetes).
Требования к среде контейнеризации¶
Для запуска Нимбиус в среде Kubernetes необходимо учитывать следующие требования:
- Kubernetes версии 1.28.3 и выше;
- Не менее 4 ГБ RAM для работы платформы;
- Не менее 5 ГБ дискового пространства для работы платформы;
- Не менее 6 ГБ RAM для работы СУБД внутри Kubernetes;
- Не менее 15 ГБ дискового пространства (PV) для хранения данных СУБД;
- Не менее 3 нод в кластере Kubernetes;
- Одну из консольных утилит для управления кластером (kubectl, k9s, k8slens);
- Инструмент управления Helm чартами для кластера.
Чарты - это распространяемые пакеты, которые содержат шаблоны, файлы и метаданные приложений.
Содержимое дистрибутива¶
Конечные манифесты для развертывания формируются из Helm чартов.
Директория с чартами имеет следующую структуру:
- charts - директория со вложенными чартами (nimbius-httpd, nimbius-memcached, nimbius-postgresql);
- templates - директория с шаблонами манифестов;
- Chart.yaml - файл с информацией о чарте;
- values.yaml - файл со значениями по умолчанию для шаблонов.
Настройка сертификатов¶
При использовании собственных сертификатов необходимо удалить файл секрета charts/templates/nimbius-tls-secret.yaml и создать аналогичный с собственным сертификатом.
Важно
При отсутствии корпоративного или внешнего СA значения параметров tls в секрете tls-secret генерируются автоматически.
Процедура установки и запуска платформы в среде Kubernetes¶
Перед первым запуском необходимо:
-
Склонировать репозиторий с файлами чартов;
-
Отредактировать файл «values.yaml»;
Важно
При отсутствии собственной БД необходимо изменить параметры в разделе orchestrator:
- encryptionKey - ключ шифрования, с помощью которого происходит «общение» между подами приложения;
- applicationDomain - доменное имя, по которому будет предоставлен доступ к Нимбиус.
При использовании внешней БД необходимо изменить параметры в разделе postrgresql:
- enabled - false (будет использоваться внешняя СУБД);
- enabled - true (будет создан экземпляр СУБД в Kubernetes);
- dbName - имя БД (по умолчанию «vmdb_production»);
- hostName - имя хоста (по умолчанию «postgresql»);
- password - пароль (по умолчанию «nimbius»);
- port - порт (по умолчанию «5432»);
- username - имя пользователя (по умолчанию «nimbius»)
-
Создать новое пространство имен:
kubectl create ns nimbius --kubeconfig \<path_to_kubeconfig\>
-
Создать секреты, если registry закрытый;
Примечание
Для изменения портов сервисов на собственные необходимо изменить значения PUBLIC_ADMIN_PORT, KC_SERVER_PORT в файле .env.
-
Запустить инсталляцию:
helm install <release_name<path_to_chart> --values <path_to_values.yaml> --kubeconfig <path_to_kubeconfig> --namespace <namespace>
Процедура обновления продукта¶
При изменении парамеров в чартах или обновления дистрибутива необходимо выполнить команду:
helm upgrade <release_name<path_to_chart>
--values <path_to_values.yaml>
--kubeconfig <path_to_kubeconfig>
--namespace <namespace>*
Процедура остановки¶
Процедура остановки не предусмотрена. Для удаления релиза используется команда:
helm uninstall <release_name>