Skip to content

Установка⚓︎

Flowmaster устанавливается в Kubernetes. Перед тем как выполнять следующие шаги, убедитесь, что в конфигурации kubectl загружен контекст кластера: например, выполните kubectl get nodes и проверьте, что выведены машины нужного кластера.

Предварительно создайте namespace для FlowMaster. Например, kubectl create ns flowmaster создаст namespace с именем flowmaster.

Опционально создайте отдельный namespace для модулей, запускаемых FlowMaster. Например, kubectl create ns flowmaster-modules.

Настройка параметров установки⚓︎

В файле scripts/settings.env установите переменные в значения, соответствующие вашему стенду:

  • FM_NAMESPACE - имя Kubernetes-namespace, в котором будут запускаться компоненты ядра FlowMaster.
  • MODULES_NAMESPACE - имя Kubernetes-namespace, в котором будут запускаться модули FlowMaster. Может совпадать с FM_NAMESPACE.
  • FM_URL - базовый URL, по которому будут доступны фронтенд и API FlowMaster. Например, flowmaster.myservice.local.
  • REGISTRY_PREFIX - префикс имён Docker-образов, с которыми они будут загружены в репозиторий, в формате my.registry.local/myfolder.
  • PG_* - параметры подключения к базе данных PostgreSQL: хост, порт, имя пользователя и его пароль, имя базы данных.
  • RMQ_* - параметры подключения к RabbitMQ: хост, порт, имя пользователя и пароль. Необязательно, если указаны параметры подключения к Pulsar.
  • PULSAR_* - параметры подключения к Pulsar: хост и порт. Необязательно, если указаны параметры подключения к RabbitMQ.

Запустите скрипт scripts/load_images.sh. Он загрузит образы FlowMaster из директории images/ в указанный репозиторий и запишет в конфигурацию версии образов.

После этого запустите скрипт scripts/configure.sh. Он проставит значения из settings.env в Kubernetes-манифесты Flowmaster. Проверить полученную конфигурацию и внести изменения можно, обратившись к файлам .env и kustomization.yaml директории manifests/.

Полный список параметров оператора приведён ниже.

Установка FlowMaster в Kubernetes⚓︎

Для установки перейдите в директорию manifests/ и выполните команду:

kubectl apply -k .

Изменение конфигурации FlowMaster⚓︎

Для изменения конфигурации можно повторить шаги выше: изменить settings.env, запустить configure.sh (или вручную изменить нужные манифесты и переменные) и выполнить kubectl apply -k . в директории manifests/. Это изменит конфигурацию уже установленного FlowMaster.

Параметры конфигурации Менеджера Процессов⚓︎

Параметр Переменная окружения Описание
Уровень логирования LOG_LEVEL Уровень логирования регулирует информативность и частоту записи событий журнала
Хост постгреса postgres_host Хост РСУБД Постгрес
Порт постгреса postgres_port Порт РСУБД Постгрес
Юзернейм постгреса postgres_username Юзернейм РСУБД Постгрес
Пароль постгреса postgres_password Пароль РСУБД Постгрес
База данных постгреса postgres_database База данных РСУБД Постгрес
Схема постгреса postgres_schema Схема РСУБД Постгрес
Схема таблиц авторизации постгреса postgres_auth_schema Схема таблиц авторизации РСУБД Постгрес
Включение уровня защищённых сокетов для Постгрес postgres_ssl_mode Включение уровня защищённых сокетов для Постгрес
Пространство имён Kubernetes-кластера k_namespace Пространство имён Kubernetes-кластера
Хост системы записи трассировок времени выполнения JAEGER_HOST Хост системы записи трассировок времени выполнения
Порт системы записи трассировок времени выполнения JAEGER_PORT Порт системы записи трассировок времени выполнения
Адрес кейклок keycloak_url Адрес кейклок
Идентификатор клиента OIDC client_id Идентификатор клиента OIDC
Секрет клиента OIDC client_secret Секрет клиента OIDC
Хост себя самого process_manager_host Хост себя самого
Название куки OIDC process_manager_host Название куки OIDC
Использовать авторизацию process_manager_host Использовать авторизацию
Путь к конфигу брокеров сообщений brokers_config_file Путь к файлу с конфигурацией брокеров сообщений. По умолчанию - broker_configuration

Конфигурация брокеров сообщений⚓︎

В файле конфигурации перечислены поддерживаемые брокеры сообщений, их настройки и используемый по умолчанию брокер.
Пример:

{
  "default_broker": "stdpsr",
  "brokers": [
    {
      "type": "ppgmq", "name": "stdppgmq", "label": "PPGMQ инстанс",
      "properties": { "endpoint": "tcp://ppgmq.streaming-platform" }
    },
    {
      "type": "pulsar", "name": "stdpsr", "label": "PULSAR инстанс",
      "properties": { "host": "192.168.135.27:6650" }
    },
    {
      "type": "rabbitmq", "name": "stdrmq_with_dlt", "label": "RABBIT MQ без requeue in failure",
      "properties": {
        "connectionString": "amqp://sp:tK6YFDFkPykPrQ@192.168.135.220:5672",
        "durable": true, "autoAck": false, "reconnectWait": 0,
        "concurrency": "parallel", "maxPriority": 10, "requeueInFailure": false
      }
    },
    {
      "type": "rabbitmq", "name": "stdrmq", "label": "RABBIT MQ (стандартный)",
      "properties": {
        "connectionString": "amqp://sp:tK6YFDFkPykPrQ@192.168.135.220:5672",
        "durable": true, "autoAck": false, "reconnectWait": 0,
        "concurrency": "parallel", "maxPriority": 10, "requeueInFailure": true
      }
    }
  ]
}

Параметры конфигурации оператора⚓︎

Параметр Флаг коммандой строки Переменная окружения Ключ в config.json
Период получения информации о количестве задач для модуля md-requeue-time md_requeue_time md_requeue_time
Класс ингресс-контроллера для гейтвеев (необязательная) ingress-class-name ingress_class_name ingress_class_name
Секреты для доступа к хранилищу образов image-pull-secrets image_pull_secrets image_pull_secrets
Имя образа сайдкара apr-image apr_image apr_image
Тэш образа сайдкара apr-image-tag apr_image_tag apr_image_tag
Уровень логирования сайдкара apr-log-level apr_log_level apr_log_level
Имя образа гейтвея gateway-image gateway_image gateway_image
Тег образа гейтвея gateway-image-tag gateway_image_tag gateway_image_tag
Включение профайлинга на гейтвеях gateway-need-profile gateway_need_profile gateway_need_profile
Имя образа сервера статики для гейтвеев statica-server-image statica_server_image statica_server_image
Тег образа сервера статики для гейтвеев statica-server-image-tag statica_server_image_tag statica_server_image_tag
Запросы по памяти для поднимаемых сайдкаров apr-req-mem apr_req_mem apr_req_mem
Лимиты по памяти для поднимаемых сайдкаров apr-lim-mem apr_lim_mem apr_lim_mem
Запросы по ЦПУ для поднимаемых сайдкаров apr-req-cpu apr_req_cpu apr_req_cpu
Лимиты по ЦПУ для поднимаемых сайдкаров apr-lim-cpu apr_lim_cpu apr_lim_cpu
URL-адрес используемого keycloak (при наличии) apr-keycloak-url apr_keycloak_url apr_keycloak_url
Realm используемого keycloak (при наличии) apr-keycloak-realm apr_keycloak_realm apr_keycloak_realm
ID клиента используемого keycloak (при наличии) apr-keycloak-client-id apr_keycloak_client_id apr_keycloak_client_id
Секрет клиента используемого keycloak (при наличии) apr-keycloak-client-secret apr_keycloak_client_secret apr_keycloak_client_secret