Перейти к содержанию

Установка в среде Kubernetes

Требования к проектировке

Развертывание Нимбиус среде Kubernetes возможно в двух разных вариантах:

  1. Полная контейниризация (Все службы приложений и база данных PostgreSQL запускаются как поды внутри Kubernetes);

  2. Контейниризация с внешней СУБД (Приложение использует внешний сервер базы данных 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

Перед первым запуском необходимо:

  1. Склонировать репозиторий с файлами чартов;

  2. Отредактировать файл «values.yaml»;

    Важно

    При отсутствии собственной БД необходимо изменить параметры в разделе orchestrator:

    • encryptionKey - ключ шифрования, с помощью которого происходит «общение» между подами приложения;
    • applicationDomain - доменное имя, по которому будет предоставлен доступ к Нимбиус.

    При использовании внешней БД необходимо изменить параметры в разделе postrgresql:

    • enabled - false (будет использоваться внешняя СУБД);
    • enabled - true (будет создан экземпляр СУБД в Kubernetes);
    • dbName - имя БД (по умолчанию «vmdb_production»);
    • hostName - имя хоста (по умолчанию «postgresql»);
    • password - пароль (по умолчанию «nimbius»);
    • port - порт (по умолчанию «5432»);
    • username - имя пользователя (по умолчанию «nimbius»)
  3. Создать новое пространство имен:

    kubectl create ns nimbius --kubeconfig \<path_to_kubeconfig\>
    
  4. Создать секреты, если registry закрытый;

    Примечание

    Для изменения портов сервисов на собственные необходимо изменить значения PUBLIC_ADMIN_PORT, KC_SERVER_PORT в файле .env.

  5. Запустить инсталляцию:

    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>