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

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

Данное руководство поможет развернуть платформу Нимбиус в среде Kubernetes.

Варианты развертывания

Нимбиус можно развернуть двумя способами:

  1. Полная контейнеризация – все сервисы, включая базу данных PostgreSQL, работают в Kubernetes.
  2. Контейнеризация с внешней БД – все сервисы работают в Kubernetes, но база данных размещается на внешнем сервере.

Требования к среде контейнеризации

Перед установкой убедитесь, что Ваша инфраструктура соответствует следующим требованиям:

Требования к Kubernetes:

  • Версия 1.28.3 или выше
  • Минимум 3 ноды в кластере

Требования к ресурсам:

  • Платформа Нимбиус: 4 ГБ RAM, 5 ГБ дискового пространства
  • PostgreSQL в Kubernetes: 6 ГБ RAM, 15 ГБ дискового пространства (Persistent Volume)

Инструменты для работы:

  • kubectl (консольная утилита управления Kubernetes)
  • Helm (инструмент управления пакетами для Kubernetes)
  • Docker-клиент (если нужно подтягивать образы из приватного репозитория)

Содержимое дистрибутива

Дистрибутив Нимбиус поставляется в виде Helm-чартов.
Helm-чарты – это пакеты для Kubernetes, содержащие манифесты развертывания и настройки приложения.

Директория с чартами имеет следующую структуру:

/nimbius-charts/
│── charts/                 # Директория с вложенными сервисными чартами
│   ├── nimbius-billing     # Чарт биллингового модуля
│   ├── nimbius-httpd       # Чарт веб-сервера
│   ├── nimbius-memcached   # Чарт кеширования Memcached
│   ├── nimbius-postgresql  # Чарт базы данных PostgreSQL (если используется внутренняя БД)
│
│── templates/              # Шаблоны манифестов Kubernetes
│
│── Chart.yaml              # Основной файл описания чарта (название, версия, зависимости)
│── values.yaml             # Файл конфигурации (настройки, которые можно изменить перед установкой)

Подготовка к установке

Установка необходимых инструментов

🔹 Если у вас еще не установлен Helm, установите его:

curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

🔹 Проверьте, что kubectl установлен и подключен к вашему кластеру:

kubectl version --client

Клонирование репозитория с чартами

Скачайте файлы конфигурации платформы Нимбиус:

git clone https://github.com/nimbius/charts.git
cd charts

Настройка конфигурации

Перед установкой необходимо отредактировать файл values.yaml, в зависимости от того, какую базу данных вы будете использовать.

  • Если вы используете встроенную PostgreSQL (по умолчанию), оставьте в values.yaml параметры:

    # Необходимо изменить параметры в разделе orchestrator:
    encryptionKey - ключ шифрования, с помощью которого происходит «общение» между подами приложения;
    applicationDomain - доменное имя, по которому будет предоставлен доступ к Нимбиус.
    
  • Если у вас внешняя база данных, укажите настройки подключения к внешней БД в values.yaml:

    postgresql:
    enabled: false (будет использоваться внешняя СУБД)
    enabled - true (будет создан экземпляр СУБД в Kubernetes)
    dbName: vmdb_production
    hostName: your-db-host
    port: 5432
    username: your-db-user
    password: your-db-password
    

Настройка сертификатов

При использовании собственных сертификатов необходимо удалить файл секрета charts/templates/nimbius-tls-secret.yaml и создать аналогичный с собственным сертификатом.

kubectl delete secret nimbius-tls-secret -n nimbius-example
kubectl create secret tls nimbius-tls-secret --cert=your-cert.crt --key=your-key.key -n nimbius-example

Важно

При отсутствии корпоративного или внешнего СA значения параметров tls в секрете tls-secret генерируются автоматически.

Установка платформы

Создание namespace

Прежде чем развернуть Нимбиус, создайте отдельное пространство имен (namespace), оно изолирует ресурсы внутри кластера:

kubectl create namespace nimbius-example

Настройка секретов

🔹 Создание OIDC-секрета (если требуется интеграция с Keycloak/Blitz):

kubectl create secret generic oidc-secret \
--namespace nimbius-example \
--from-literal=oidcClientSecret=secret \
--from-literal=oidcClientId=12345

🔹 Создание секрета для доступа к Docker-репозиторию:

kubectl create secret generic regcred \
--namespace nimbius-example \
--from-file=.dockerconfigjson=./dockerconfig.json \
--type=kubernetes.io/dockerconfigjson

🔹 Создание секрета для manageiq cluster CA:

kubectl create secret generic manageiq-cluster-ca-cert \
--namespace nimbius-example \
--from-literal=ca.crt="Som3th1nGgheR_e41"

Деплой с помощью Helm

Запустите установку Нимбиус:

helm upgrade --install nimbius-example . \
--namespace nimbius-example \
 --atomic \
 --values values.yaml

Флаг --atomic гарантирует, что в случае ошибки установка будет автоматически отменена.

Этот процесс займет некоторое время. Если установка прошла успешно, появится сообщение "Release "nimbius-example" has been upgraded/installed successfully".

Проверка работы платформы Нимбиус

Проверьте, что все поды успешно запущены:

kubectl get pods -n nimbius-example

Вы должны увидеть список запущенных сервисов с STATUS = Running.

Если есть проблемы, проверьте логи проблемного пода:

kubectl logs <имя-пода> -n nimbius-example

Процедура остановки платформы

Процедура остановки не предусмотрена. Для удаления релиза используется команда:

    helm uninstall <release_name>

Обновление продукта

При изменении парамеров в чартах или обновлении дистрибутива необходимо отредактировать values.yaml и выполнить команду:

helm upgrade <release_name<path_to_chart>
--values <path_to_values.yaml>
--kubeconfig <path_to_kubeconfig>
--namespace <namespace>*