Я использую кластер из трех узлов (elasticsearch) в настоящее время с index.number_of_replicas: 0
. Я хочу вывести один из узлов на обслуживание. Есть ли у меня варианты сделать это без увеличения number_of_replicas
?
Похоже, что Shutdown API не балансирует шарды перед выключением узла. Итак, похоже, мне нужно использовать API перенаправления кластера, чтобы вручную переместить шарды на другой узел. Это приведет к повторной балансировке других шардов обратно на мой узел, поэтому я предполагаю, что мне нужно как-то повторно сбалансировать кластер. Есть ли лучший вариант?
Вы можете списать узел, указав кластеру исключить его из распределения. (Из документации Вот)
curl -XPUT localhost:9200/_cluster/settings -d '{ "transient" :{ "cluster.routing.allocation.exclude._ip" : "10.0.0.1" } }';echo
Это заставит Elasticsearch выделить шарды на этом узле для оставшихся узлов, при этом состояние кластера не изменится на желтый или красный (даже если у вас есть репликация 0).
После того, как все шарды будут перераспределены, вы можете выключить узел и сделать там все, что вам нужно. Как только вы закончите, включите узел для распределения, и Elasticsearch снова перебалансирует шарды.
Ответ скопирован из https://stackoverflow.com/a/23905040/260805