ELMA365 On-premises > ELMA365 Enterprise > Высокодоступный кластер ELMA365 / Установка ELMA365 on-premises

Установка ELMA365 on-premises

Исходные данные

Несколько серверов в кластере распределяют между собой нагрузку на приложение и позволяют дублировать и масштабировать внутренние сервисы. Таким образом достигается отказоустойчивое решение, способное выдержать падение одного сервера.

Прозрачное взаимодействие между серверами достигается применением готового решения https://microk8s.io.

начало внимание

Минимальное количество серверов для организации кластера 3.

конец внимание

В этом примере используется 3 узла со следующими hostname и IP-адресами:

  • elma365-1, 192.168.1.51
  • elma365-2, 192.168.1.52
  • elma365-3, 192.168.1.53

Шаг 1: Установка ELMA365

Для установки нужно использовать команду (обратите внимание на параметр -e enterprise):

sudo curl -fsSL -o elma365-installer.sh \
https://dl.elma365.com/onPremise/master/latest/download && \
chmod +x elma365-installer.sh && \
./elma365-installer.sh -e enterprise

Во время установки будет задан ряд вопросов. На шаге с вопросом Use custom connection stringel вы можете подключить распределенные базы данных. Выберите внешние сервисы: PostgreSQL, MongoDB, S3, Redis, RabbitMQ и укажите строки подключения к ним: hostname, port, username, password.

Шаг 2: Масштабирование узлов

Для соединения нескольких серверов в единый кластер требуется установить систему на один сервер, а затем добавить остальные сервера в общий кластер.

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

sudo elma365ctl add-node

Она выведет в ответ список команд в таком виде:

From the host you wish to join to this cluster, run the following:
curl -fsSL -o elma365-installer.sh https://dl.elma365.com/onPremise/master/latest/download
chmod +x elma365-installer.sh
./elma365-installer.sh --join-cluster 192.168.1.51:25000/be83f119a186ff6b117a1ad01533b8b2
 
If the host you are adding is not reachable through the defaultinterface please specify your IP address

Эти команды надо выполнить на другом сервере, который вы собираетесь добавлять в кластер.

Для каждого нового сервера нужно повторять вызов add-node, так как он генерирует уникальный одноразовый ключ для присоединения сервера.

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

Шаг 3: Масштабирование сервисов

Для масштабирования всех сервисов одновременно между 3 узлами воспользуйтесь командой:

sudo elma365ctl scale all 3

Можно масштабировать отдельные сервисы следующей командой:

sudo elma365ctl scale service_name replica_count 

где:

  • service_name — название сервиса;
  • replica_count — количество реплик, в которые должен масштабироваться указанный сервис.

Например, команда elma365ctl scale main 2 запустит сервис main в 2 реплики (копии).

Шаг 4: Конфигурация HAproxy (блок web)

Пример конфигурации для настройки балансировки нагрузки с помощью HAproxy:

listen elma365_web
    bind haproxy-server.your_domain:80
    mode http
    balance leastconn
    no option http-use-htx
    option forwardfor
    option httpclose
    option httpchk HEAD /
    server elma365-1 elma365-1.your_domain:80 check
    server elma365-2 elma365-2.your_domain:80 check
    server elma365-3 elma365-3.your_domain:80 check

Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас