Назад | Перейти на главную страницу

Как выполнить плавное завершение работы (без реплик)?

Я использую кластер из трех узлов (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