Развёртывание Камунда.РФ 7 в Kubernetes с Helm
Требования к внешним сервисам и инфраструктуре
Заголовок раздела «Требования к внешним сервисам и инфраструктуре»В этом разделе перечислено всё, что должно быть предварительно настроено в вашем окружении перед началом установки Камунда.РФ 7.
Инфраструктура
Заголовок раздела «Инфраструктура»-
Доступы, адреса, учетные записи (предоставляются после приобретения Камунда.РФ)
-
Docker Registry, в котором лежит образ Камунда.РФ 7
-
Helm Registry, где лежит helm chart для Камунда.РФ 7
-
-
Kubernetes 1.23+
-
Helm 3.x
-
Доступ к кластеру Kubernetes (или кластер minikube)
-
Postgresql 15+
Программное обеспечение для установки
Заголовок раздела «Программное обеспечение для установки»Для выполнения инструкций по установке должны быть установлены следующие утилиты:
-
kubectl - https://kubernetes.io/ru/docs/tasks/tools/install-kubectl/
-
idn - https://www.gnu.org/software/libidn/manual/html_node/Invoking-idn.html
Компоненты
Заголовок раздела «Компоненты»В этом разделе описываются основные компоненты приложения, которые будут развернуты в Kubernetes.
| Компонент | Тип |
| Камунда.РФ 7 | Deployment |
Репозиторий и подготовка
Заголовок раздела «Репозиторий и подготовка»На этом этапе подготовим окружение Kubernetes для установки Камунда.РФ 7: добавим репозиторий, настроим базу данных и создадим необходимые секреты.
Переменные окружения
Заголовок раздела «Переменные окружения»Подготовьте переменные среды окружения:
Установите kubectl для работы с пространством имен, в котором будет производиться работа.
-
Если пространство не создано в кластере, создайте его командой:
Авторизация в Helm-registry
Заголовок раздела «Авторизация в Helm-registry»В этом разделе проверяем подключение к реестру с Helm-чартами.
Параметры команды:
-
$REPO_NAME- название репозитория в вашей системе -
$HELM_REGISTRY— адрес реестра с Helm-чартом Камунда.РФ 7 -
$REGISTRY_USERNAME— имя пользователя для авторизации в реестре Helm-чартов -
$REGISTRY_PASSWORD— пароль или токен для авторизации в реестре Helm-чартов
Настройка базы данных ( postgresql )
Заголовок раздела «Настройка базы данных ( postgresql )»Если у вас нет развернутой БД в кластере Кубернетес, вы можете быстро развернуть ее, используя следующую команду:
Если у вас уже есть БД, то подключитесь к ней и создайте отдельного пользователя и базу данных для Камунда.РФ 7.
Создайте секрет для подключения к БД
Где
-
$DB_USER- имя пользователя для подключения к базе данных -
$DB_PASSWORD- пароль от пользователя для подключения к базе данных
Создание секрета доступа к Docker Registry Камунда.РФ
Заголовок раздела «Создание секрета доступа к Docker Registry Камунда.РФ»Чтобы Kubernetes мог скачать образ Камунда.РФ 7 из приватного реестра (docker registry), необходимо создать секрет с данными для аутентификации.
Где
-
$REGISTRY_USERNAME- имя пользователя для доступа к реестру Камунда.РФ -
$REGISTRY_PASSWORD- пароль от пользователя для доступа к реестру Камунда.РФ
Подготовка values.yaml
Заголовок раздела «Подготовка values.yaml»Создайте файл kamundarf7.yaml с описанием параметров установки Камунда.РФ 7.
Установка чарта
Заголовок раздела «Установка чарта»Используем Helm для установки Камунда.РФ 7 в наш кластер Kubernetes, используя подготовленный файл values.yaml.
Подключение модуля истории
Заголовок раздела «Подключение модуля истории»Модуль истории позволяет сохранять историю процессов в Kafka-совместимый брокер сообщений. Существует два сценария подключения:
Сценарий 1: Встроенный брокер сообщений
Заголовок раздела «Сценарий 1: Встроенный брокер сообщений»В этом сценарии брокер сообщений разворачивается вместе с Камунда.РФ 7 в кластере Kubernetes.
Для включения встроенной Kafka внесите следующие изменения в файл kamundarf7.yaml созданный на предыдущем шаге:
После внесения изменений выполните команду:
Сценарий 2: Внешнний брокер сообщений
Заголовок раздела «Сценарий 2: Внешнний брокер сообщений»В этом сценарии используется существующий брокер сообщений развернутый в кластере Kubernetes.
Для подключения внешнего брокера внесите следующие изменения в файл kamundarf7.yaml:
После внесения изменений выполните команду:
Ознакомьтесь с документацией по настройке модуля Истории.
Доступ к приложению
Заголовок раздела «Доступ к приложению»После установки необходимо проверить, что приложение запустилось корректно, и настроить к нему доступ извне кластера.
После установки проверьте сервис:
Пример вывода (требуется, чтобы в ready было 1/1)
Камунда.РФ 7 будет доступна на порту 8080 внутри кластера. Для внешнего доступа можно включить ingress.
kamundarf7.yaml
Либо можно прокинуть порт
После этой команды можно будет зайти на http://localhost:8080
Настройки Камунда.РФ 7
Заголовок раздела «Настройки Камунда.РФ 7»В этом разделе подробно описаны ключевые настройки, которые позволяют гибко настроить поведение Камунда.РФ 7. Настройки можно задавать как через переменные окружения, так и через файл values.yaml.
| Переменная | Назначение |
|---|---|
CATALINA_HOME |
Указывает путь к корневому каталогу Apache Tomcat внутри контейнера. В данном случае: server/apache-tomcat-10.1.42/. |
DB_DRIVER |
Класс JDBC-драйвера базы данных. Например: org.postgresql.Driver или com.mysql.cj.jdbc.Driver. |
DB_URL |
JDBC-URL подключения к БД. Пример: jdbc:postgresql://db-host:5432/kamundarf7. |
DB_CONN_MAXACTIVE |
Максимальное количество активных соединений в пуле. Оптимальное значение зависит от размера БД и нагрузки. По умолчанию — 20. |
DB_CONN_MINIDLE |
Минимальное количество “ленивых” соединений — те, что доступны но неактивны. Снижает overhead на создание новых соединений. |
DB_CONN_MAXIDLE |
Максимальное количество неиспользуемых соединений, которые могут оставаться в пуле. Балансирует скорость против потребления ресурсов. |
DB_VALIDATE_ON_BORROW |
Если true, соединение будет валидироваться при взятии из пула (например, через SELECT 1). |
DB_VALIDATION_QUERY |
Запрос для проверки активности соединения. Обычно SELECT 1 — универсальный для любой БД. |
SKIP_DB_CONFIG |
Если не пусто, пропускает конфигурацию БД во время старта. |
WAIT_FOR |
Список зависимостей (например, адреса БД, Kafka и т.д.), которые Камунда.РФ 7 должна дождаться перед стартом. Указывается через запятые. |
WAIT_FOR_TIMEOUT |
Максимальное время (в секундах) ожидания всех зависимостей из WAIT_FOR. После превышения таймера контейнер завершится с ошибкой. |
TZ |
Часовой пояс внутри контейнера. UTC — стандарт для продакшн, чтобы избежать рассинхронизации логов. |
DEBUG |
Включение отладочного режима. При true будут активированы расширенные логи. |
JAVA_OPTS |
Аргументы JVM. Например: -Xms512m -Xmx1024m -XX:+UseG1GC. Позволяет тонко настроить GC, heap, профилирование и безопасность. |
Настройка через values.yaml
Заголовок раздела «Настройка через values.yaml»Кроме переменных окружения, настройки можно задавать через файл values.yaml. Ниже приведены основные параметры, которые можно настроить:
| Параметр | Назначение |
|---|---|
replicaCount |
Количество реплик приложения. По умолчанию: 1. |
image.repository |
Репозиторий образа Камунда.РФ 7. По умолчанию: камунда.рф/kamundarf/kamundarf-tomcat. |
image.tag |
Тег образа Камунда.РФ 7. По умолчанию: 1.0.0. |
image.pullPolicy |
Политика загрузки образа. По умолчанию: IfNotPresent. |
serviceAccount.create |
Создавать ли ServiceAccount. По умолчанию: false. |
service.type |
Тип сервиса. По умолчанию: ClusterIP. |
service.port |
Порт сервиса. По умолчанию: 8080. |
ingress.enabled |
Включить ли Ingress. По умолчанию: false. |
db.secretName |
Имя секрета с данными для подключения к БД. По умолчанию: database-secret. |
db.driver |
Драйвер БД. По умолчанию: org.postgresql.Driver. |
db.url |
URL подключения к БД. По умолчанию: jdbc:postgresql://{{ .Release.Name }}-postgresql:5432/kamundarf7. |
plugins.history.enabled |
Включен ли модуль истории. По умолчанию: false. |
plugins.history.topic |
Топик Kafka для модуля истории. По умолчанию: data. |
postgresql.enabled |
Включить ли встроенную PostgreSQL. По умолчанию: false. |
kafka.enabled |
Включить ли встроенную Kafka. По умолчанию: false. |
Параметры плагина истории
Заголовок раздела «Параметры плагина истории»| Параметр | Назначение |
|---|---|
plugins.history.image |
Образ плагина истории. По умолчанию: камунда.рф/kamundarf/other/ginger-ext-c7-history:1.0.2. |
plugins.history.enabled |
Включен ли модуль истории. По умолчанию: false. |
plugins.history.mode |
Режим работы плагина. По умолчанию: ALL. |
plugins.history.source |
Источник данных. По умолчанию: пусто. |
plugins.history.sourceAddress |
Адрес источника данных. По умолчанию: пусто. |
plugins.history.bootStrapServers |
Список серверов Kafka. По умолчанию: пустой список. |
plugins.history.topic |
Топик Kafka для модуля истории. По умолчанию: data. |
plugins.history.rawTopic |
Топик Kafka для сырых данных. По умолчанию: raw-data. |
plugins.history.contentType |
Тип контента. По умолчанию: JSON. |
plugins.history.keySerializer |
Сериализатор ключей. По умолчанию: org.apache.kafka.common.serialization.StringSerializer. |
plugins.history.acks |
Уровень подтверждения сообщений. По умолчанию: all. |
plugins.history.retries |
Количество попыток повторной отправки. По умолчанию: 3. |
plugins.history.lingerMs |
Время задержки перед отправкой сообщений. По умолчанию: 1. |
plugins.history.libs |
Путь к библиотекам. По умолчанию: /libs. |
plugins.history.useEmbedded |
Использовать ли встроенную Kafka. По умолчанию: false. |