ALD Pro. Балансировка нагрузки на узлы со службой salt-master
Надёжность часто обеспечивается через избыточность, но не всегда легко и просто можно добавить сервер или продублировать службу. В статье рассматривается создание отказоусточивости для службы salt-master.
Окружение
* ALD Pro 1.4.0 — ALD Pro 2.1.0
Вопрос
Как обеспечить балансировку нагрузки между несколькими узлами, на которых запущена служба salt-master?
Ответ
Если развертывание службы salt-master выполняется средствами ALD Pro, то по умолчанию служба salt-minion будет работать только с тем узлом, ключ которого был получен первым. Для более сложных вариантов развертывания требуется соблюдение дополнительных условий:
- На всех контроллерах домена службой salt-master должна использоваться одна и та же пара ключей.
- Клиентам домена должно быть разрешено подключаться к любому контроллеру домена через порты 4505 и 4506. Настройка параметров сети в статье не рассматривается.
Далее для краткости узлы со службой salt-master (контроллеры домена и их реплики) будут называться мастерами, а узлы со службой salt-minion (клиенты домена) — миньонами.
Для корректной настройки описанной выше конфигурации необходимо выполнить следующие действия:
-
На всех узлах:
- Остановить службу salt-minion:
sudo systemctl stop salt-minion
- Удалить содержимое каталога /etc/salt/pki/minion/:
sudo rm -rf /etc/salt/pki/minion/*
-
На мастерах:
- Остановить службу salt-minion:
sudo systemctl stop salt-minion
- Удалить существующие ключи Salt:
sudo salt-key -D -y
- Остановить службу salt-master:
sudo systemctl stop salt-master
- Удалить содержимое каталога /etc/salt/pki/minion/:
sudo rm -rf /etc/salt/pki/minion/*
-
Скопировать ключи службы salt-master с основного контроллера домена на остальные мастеры.
Файлы ключей службы salt-master хранятся в следующих местах:
- закрытый ключ — /etc/salt/pki/master/master.pem
- открытый ключ — /etc/salt/pki/master/master.pub
- На всех мастерах запустить службу salt-master:
sudo systemctl start salt-master
- На всех узлах домена запустить службу salt-minion:
sudo systemctl start salt-minion
-
На миньонах:
- Проверить содержимое файла /etc/salt/minion.d/masters.conf — он должен содержать адреса всех мастеров, например:
master:
- dc.ald.pro
- dc-rep-1.ald.pro
- dc-rep-2.ald.pro
retry_dns: 0
retry_dns_count: 5
- Чтобы в случае недоступности текущего мастера миньон автоматически подключался к другому мастеру, добавить в конфигурационный файл /etc/salt/minion.d/masters.conf строки:
master_type: failover
master_alive_interval: 60
random_master: True
где:
- master_type — тип используемого мастера. Значение failover включает автоматическое переключение на другой мастер, если текущий вышел из строя.
- master_alive_interval — время в секундах, задающее интервал проверки доступности текущего мастера. Рекомендуемое значение — от 60 до 120.
- random_master — логический параметр, управляющий выбором нового мастера на замену вышедшему из строя:
- True — новый мастер будет случайным образом выбран из списка, указанного в конфигурационном файле /etc/salt/miniton.d/masters.conf
- False — перебор мастеров для подключения будет выполняться в том порядке, в котором они перечислены в конфигурационном файле /etc/salt/minion.d/masters.conf
- Перезапустить службу salt-minion:
sudo systemctl restart salt-minion
Будет также полезно ознакомится в статье Не получено подтверждение создания задания Salt Stack какие процессы какие открывают TCP порты, которые должны быть доступны для работоспособности в целом домена ALD Pro.
Дополнительные материалы:
ALD Pro - Astra Domain
Как получить информацию о проблемах в работе ALD Pro?
Дата последней правки: 2024-01-22 13:38:43