为什么要移除一个节点,有很多种情况
- 节点所在物理机要销毁。
- 节点实例需要升级、重启
es官方本身支持这个操作,官方文档
实施
step1:
修改cluster.routing.allocation.exclude.{attribute}这个参数{attribute}可以使ip,cluster name,host。这个参数可以使分片避开配置里的所有节点。同时exclude节点里的所有分片(所有index都会涉及)会自动分配到其他节点。
PUT _cluster/settings { "transient": { "cluster.routing.allocation.exclude._ip": "10.10.0.1" } }
step2:
清空内容,防止该节点再次加入集群无法自动平衡分片。
PUT _cluster/settings { "transient": { "cluster.routing.allocation.exclude._ip": "null" } }