Настройка кластера с помощью Pacemaker

06 октября 2026

ID 307477

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

Чтобы развернуть и настроить отказоустойчивый кластер с помощью Pacemaker:

  1. Подключитесь к основному узлу.
  2. Установите утилиту Pacemaker и программы для работы с кластером, выполнив следующую команду:
    • Для Astra Linux:

      sudo apt install pacemaker pcs pacemaker-cli-utils astra-resource-agents docker.io -y

    • Для Ubuntu:

      sudo apt install pacemaker pacemaker-cli-utils resource-agents-extra docker.io -y

  3. Задайте пароль для пользователя hacluster:
    1. Перейдите в режим изменения пароля пользователя, выполнив следующую команду:

      sudo passwd hacluster

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

    2. Введите пароль, который вы хотите задать для пользователя hacluster, и подтвердите его.
  4. Удалите файлы конфигурации кластера, выполнив следующую команду:

    sudo pcs cluster destroy

  5. Переключитесь на резервный узел и выполните все шаги, описанные выше.
  6. Переключитесь на основной узел для развертывания кластера.
  7. Создайте кластер с двумя узлами, выполнив следующие команды:

    sudo pcs host auth ha-node-1 addr=<IP-адрес основного узла> ha-node-2 addr=<IP-адрес резервного узла> -u hacluster

    sudo pcs cluster setup uawscluster ha-node-1 ha-node-2 --force

  8. Запустите созданный кластер и настройте его параметры, выполнив следующие команды:

    sudo pcs cluster start --all

    sudo pcs property set stonith-enabled=false

  9. Создайте кластерный ресурс ClusterIP с IP-адресом отказоустойчивого кластера, выполнив следующую команду:

    sudo pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=<IP-адрес службы идентификации пользователей> cidr_netmask=23 op monitor interval=5s

  10. Создайте кластерный ресурс HA-PGSQL для работы с базами данных PostgreSQL из кластера, выполнив следующие команды:

    sudo pcs resource create HA-PGSQL ocf:heartbeat:pgsql \

    pgctl="/usr/lib/postgresql/15/bin/pg_ctl" \

    psql="/usr/lib/postgresql/15/bin/psql" \

    pgdata="/var/lib/postgresql/15/main" \

    config="/etc/postgresql/15/main/postgresql.conf" \

    rep_mode="sync" node_list="ha-node-1 ha-node-2" \

    master_ip="<IP-адрес службы идентификации пользователей>" check_wal_receiver="true"

    sudo pcs resource promotable HA-PGSQL promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true

  11. Создайте группу main-group и добавьте в нее созданные ресурсы ClusterIP и HA-PGSQL, чтобы они всегда запускались вместе на одном узле, выполнив следующие команды:

    sudo pcs resource group add main-group ClusterIP

    sudo pcs constraint colocation add main-group with Promoted HA-PGSQL-clone

    sudo pcs constraint order promote HA-PGSQL-clone then start main-group symmetrical=false kind=Mandatory

    sudo pcs constraint order demote HA-PGSQL-clone then stop main-group symmetrical=false kind=Optional

  12. Перезапустите ресурсы кластера:

    sudo pcs resource cleanup

  13. Создайте ресурсы для компонентов службы идентификации пользователей и добавьте их в группу main-group:
    • Для компонента Collector создайте ресурс uaws-collector, выполнив следующие команды:

      sudo pcs resource create uaws-collector \

      ocf:heartbeat:docker \

      image="uaws-collector"

      name="uaws-collector" \

      run_opts="--hostname collector --sysctl net.ipv6.conf.all.disable_ipv6=1 --dns <DNS-сервер> -p 8888-8901:8888-8901 -v /var/lib/uaws/collector:/uaws/ -e AGENT_CONFIG=/uaws/ collector_config.yml -e AGENT_KEY_STORE=/uaws/ssl/uaws.p12 -e AGENT_KEY_STORE_PASS=123456 -e AGENT_TRUST_STORE=/uaws/ssl/ca.p12 -e AGENT_TRUST_STORE_PASS=<пароль>"

      sudo pcs constraint colocation add main-group with Promoted uaws-collector

    • Для компонента MapApp создайте ресурс uaws-mapapp, выполнив следующие команды:

      sudo pcs resource create uaws-mapapp \

      ocf:heartbeat:docker \

      image="uaws-mapapp" \

      name="uaws-mapapp" \

      run_opts="--hostname mapapp --sysctl net.ipv6.conf.all.disable_ipv6=1 -v /var/lib/uaws/mapapp:/uaws/ -p 8443:8443 -e USERMAP_CONFIG=/uaws/mapapp_config.yml -e USERMAP_KEY_STORE=/uaws/ssl/uaws.p12 -e USERMAP_KEY_STORE_PASS=123456 -e USERMAP_TRUST_STORE=/uaws/ssl/ca.p12 -e USERMAP_TRUST_STORE_PASS=<пароль>"

      sudo pcs constraint colocation add main-group with Promoted uaws-mapapp

    • Для компонента GroupApp создайте ресурс uaws-groupapp, выполнив следующие команды:

      sudo pcs resource create uaws-groupapp ocf:heartbeat:docker \

      image="uaws-groupsapp" \

      name="uaws-groupapp" \

      run_opts="--hostname groupapp --sysctl net.ipv6.conf.all.disable_ipv6=1 -v /var/lib/uaws/groupapp:/uaws/ -p 8444:8443 -e GROUPAPP_CONFIG=/uaws/groupapp_config.yml -e GROUPAPP_KEY_STORE=/uaws/ssl/uaws.p12 -e GROUPAPP_KEY_STORE_PASS=123456 -e GROUPAPP_TRUST_STORE=/uaws/ssl/ca.p12 -e GROUPAPP_TRUST_STORE_PASS=<пароль>"

      sudo pcs constraint colocation add primary-group with Promoted uaws-groupapp

  14. Перезапустите ресурсы кластера:

    sudo pcs resource cleanup

Отказоустойчивый кластер развернут, и для него настроены компоненты службы идентификации пользователей.

Чтобы проверить переключение на резервный узел:

  1. Выключите основной узел.
  2. Переключитесь на резервный узел.
  3. В командой строке проверьте, что кластер PostgreSQL на резервном узле запущен в онлайн-режиме, выполнив следующую команду:

    pg_lsclusters

    Отобразится следующая информация, в столбце Status будет указано online:

    Ver Cluster Port Status Owner Data directory Log file

    15 main 5432 online postgres /var/lib/postgresql/15/main pg_log/postgresql-%a.log

    Контейнеры компонентов также будут запущены.

Развертывание службы идентификации пользователей в отказоустойчивом кластере успешно завершено. Вы можете использовать семейство команд user-awareness для работы с функционалом службы идентификации пользователей в Kaspersky NGFW. Описание семейств команд для настройки работы Kaspersky NGFW вы можете найти в документе Управление Kaspersky NGFW с помощью командной строки.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!