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

Avanpost IDM Base представляет собой комплексное решение, состоящее из нескольких компонентов, которые взаимодействуют между собой для распределения задач и выполнения команд. Взаимодействие компонентов осуществляется внутри кластера, основанного на акторной модели Akka.NET.

Для настройки кластера используются отдельные файлы конфигурации, расположение которых определяется переменной окружения "CLUSTER_CFG", или секции "cluster" внутри основного файла конфигурации.

Если запуск происходит на одном сервере , требуется чтобы порты между системами не пересекались. Для работы кластера требуется как минимум две ноды с компонентами DAG и DAG Collector
Для корректной работы однонодовой конфигурации так же необходим кластер, объединяющий сервисы DAG и DAG Collector для взаимодействия между ними.

Навигатор по разделу:




1. Примеры конфигурационных файлов для сервисов

1.1. Пример файла конфигурации кластера для сервиса DAG:

dag-cluster.config
{
  "cluster": {
    "host": "127.0.0.1",
    "PublicHost": "Some.host.local",
    "Port": "1778",
    "TransportLogging": "false",
    "SslEnabled": "false",
    "ssl": {
      "SuppressValidation": "true",
      "CertificatePath": "somepath",
      "CertificatePassword": "somepwd",
      "CertificateFlags": [
        "default-flag-set"
      ]
    },
    "ClusterRoles": [
      "reports",
      "scheduler",
    ],
    "MemberNodes": [
      {
        "Host": "127.0.0.1",
        "Port": "1778"
      },
      {
        "Host": "127.0.0.1",
        "Port": "1779"
      }
    ],
    "StableAfter": 180,
    "DownAfter": 600,
    "MonitorCriticalRoles" : true
  }
}

1.2. Пример файла конфигурации кластера для сервиса DAG Collector:

dagcollector-cluster.config
{
  "cluster": {
    "host": "127.0.0.1",
    "PublicHost": "Some.host.local",
    "Port": "1779",
    "TransportLogging": "false",
    "SslEnabled": "false",
    "ssl": {
      "SuppressValidation": "true",
      "CertificatePath": "somepath",
      "CertificatePassword": "somepwd",
      "CertificateFlags": [
        "default-flag-set"
      ]
    },
    "FailureDetector":{
      "HeartbeatInterval":"",
      "Threshold":"",
      "AcceptableHeartbeatPause":"",
      "ExpectedResponseAfter":"" 
    },
    "ClusterRoles": [
      "dataStorages",
      "security_events",
      "scheduler",
    ],
    "MemberNodes": [
      {
        "Host": "127.0.0.1",
        "Port": "1778"
      },
      {
        "Host": "127.0.0.1",
        "Port": "1779"
      }
    ],
    "StableAfter": 180,
    "DownAfter": 600,
    "MonitorCriticalRoles" : true
  }
}


2. Описание параметров конфигурационных файлов

2.1. Корневые элементы конфигурации

ПараметрПримеры значенийПояснение
host

127.0.0.1

Обозначение сетевого интерфейса

10.10.120.5

PublicHost

10.10.120.5

Обозначение идентификатора, по которому к машине можно обратиться снаружи (если машина не может распознать сама себя по адресу в параметре "host"). Может быть задана через переменную окружения "IGA_CLUSTER_PUBLIC_HOST"

some.dns.name

Port"1777"Сетевой порт, на котором будет работать система
TransportLogging

falseВключение логгирования сетевого протокола akka
true
SslEnabled

falseВключение ssl
true
sslсм. Настройка sslНастройка ssl-параметров при включенном параметре "SslEnabled"
StableAfter180Задержка после запуска в течение которой ожидаются ноды кластера
DownAfter600Задержка перед остановкой службы при выходе из кластера нод с критичными ролями (зависит от параметра MonitorCriticalRoles)

MonitorCriticalRoles

trueПроверка наличия в кластере обязательных ролей
ClusterRoles[ "dag", "dag_scheduler" ]Подробнее cм. Распределение систем и ролей в кластере
MemberNodes см. MemberNodesНабор всех нод для заданной системы

2.2. Настройка ssl

ПараметрПримеры значенийПояснение

SuppressValidation


true

Валидация сертификата

false

CertificatePath

/some/path/to/cert

Путь до сертификата

CertificatePassword

pwd

Пароль сертификата

CertificateFlags

["default-key-set"]

Хранилище ключей. Доступные значения:

  • default-key-set
  • exportable
  • machine-key-set
  • persist-key-set
  • user-key-set
  • user-protected

2.3. Распределение систем и ролей в кластере

dag_scheduler

DAG

Запуск заданий планировщиков

reports

DAG

Генерация отчетов

dag

DAG

Фронтенд

dagcollector_scheduler

DAG Collector

Запуск заданий планировщиков

dataStorages

DAG Collector

Работа с хранилищами (коннекторы)

security_events

DAG Collector

Обработка некоторых видов событий

Для любого компонента так же доступен алиас "all" - если одна нода будет делать всю работу то вместе перечисления точечных ролей им можно задать сразу все.

2.4. MemberNodes 

Набор всех нод для заданной системы.

[
  {
    "Host": "127.0.0.1",
    "Port": "1777"
  },
  {
     "Host": "127.0.0.1",
     "Port": "1779"
  }


3. Схема-пример однонодового развертывания

Обсуждение