Установка в среде Kubernetes
Данное руководство поможет развернуть платформу Нимбиус в среде Kubernetes.
Варианты развертывания¶
Нимбиус можно развернуть двумя способами:
- Полная контейнеризация – все сервисы, включая базу данных PostgreSQL, работают в Kubernetes.
- Контейнеризация с внешней БД – все сервисы работают в 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>*