Перейти к основному содержимому
Версия: 5.0

Исключение узла с ролью master

Обратите внимание!

Исключать узел с ролью master можно только в том случае, если их общее количество четное. Другими словами, кластер должен состоять из нечетного числа узлов с ролью master для избежания возможных конфликтов между узлами.

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

Определение название узла

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

GET _cat/nodes?v&full_id&h=name,id,ip

Определение названия узла

Отключение узла из процесса голосования

Просто отключить роль master нельзя, требуется сначала отключить удаляемый узел из процесса голосования. Используя название node, необходимо выполнить команду:

POST _cluster/voting_config_exclusions?node_names=<node_name>

где <node_name> - это название узла, который необходимо исключить.

Отключение узла из процесса голосования

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

GET _cat/cluster_manager

Отключение узла из процесса голосования

Изменение конфигураций OpenSearch

Перед выключением master узла, необходимо изменить конфигурацию OpenSearch на каждом узле. Но перед этим необходимо выключить аллокацию кластера, чтобы не повредить и не потерять данные, для этого нужно выполнить команду:

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}

Изменение конфигураций OpenSearch

ОБРАТИТЕ ВНИМАНИЕ!

Следующие шаги необходимо выполнить на всех узлах кластера.

  • Нужно отредактировать параметр discovery.seed_hosts в файле /app/opensearch/config/opensearch.yml, необходимо оставить только IP-адреса тех узлов, которые имеют роль master.
  • Перезагрузите службу OpenSearch:
    systemctl restart opensearch

И дождитесь когда узел подключится к кластеру:

GET _cat/nodes

Изменение конфигураций OpenSearch

Остановка службы и бэкап конфига удаленного узла

После выключении аллокации кластера, можно остановить процесс OpenSearch удаленного узла:

systemctl stop opensearch

И для безопасности, необходимо сделать бэкап директории с конфигурациями OpenSearch:

sudo cp -r /app/opensearch/config /app/os_conf_backup

Включение аллокации кластера

Необходимо обратно включить аллокацию кластера:

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "all"
}
}

Включение аллокации кластера

И после дождаться, когда кластер примет статус green:

GET _cluster/health

Включение аллокации кластера

Очистка исключений

Поскольку ранее мы добавили узел в исключения, теперь надо его оттуда удалить. Для начала, проверьте есть ли в списке удаленный узел:

GET _cluster/state?filter_path=metadata.cluster_coordination.voting_config_exclusions

Очистка исключений

Если в поле voting_config_exclusions присутствует узел, который был исключен, то необходимо выполнить команду:

DELETE _cluster/voting_config_exclusions?wait_for_removal=false

Очистка исключений

Теперь снова проверьте что в поле voting_config_exclusions отсутствует удаленный узел и состояние кластера green:

GET _cluster/state?filter_path=metadata.cluster_coordination.voting_config_exclusions
GET _cluster/health

Очистка исключений

Очистка исключений