如何在AWS OpenSearch Elasticsearch中减少节点数量?
无法更新集群设置时的节点缩容方案
如果没法通过更新集群设置来缩容,可按以下实操步骤手动减少节点:
迁移目标节点上的所有分片
先定位待移除节点上的全部分片,手动将它们分配到集群内其他可用节点。执行命令:curl -X POST "http://<集群地址>/_cluster/reroute?pretty" -H 'Content-Type: application/json' -d' { "commands": [ { "move": { "index": "<目标索引名>", "shard": <分片编号>, "from_node": "<待移除节点ID>", "to_node": "<接收节点ID>" } } ] }重复执行该命令,直到待移除节点上无任何分片(可通过
curl http://<集群地址>/_cat/shards?v查看分片分布)。标记节点禁止接收新分片
直接针对待移除节点配置,避免迁移过程中新增分片分配过来:curl -X PUT "http://<待移除节点地址>/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' { "persistent": { "cluster.routing.allocation.exclude._ip": "<待移除节点IP>" } }这个节点级配置推送大多能绕过集群全局设置无法更新的限制。
停止并移除节点
确认分片全部迁移完成后,直接停止待移除节点的服务。如果是容器化部署,销毁对应容器;如果是物理/虚拟机,关机后从集群节点清单中删除该节点信息。验证集群健康状态
执行curl http://<集群地址>/_cluster/health?pretty检查集群状态是否为green,确保所有分片都正常分配,无未分配分片残留。
注意:缩容后要保证集群法定节点数(quorum)满足要求,比如3节点集群缩至2节点没问题,但缩至1节点需提前确认容错配置,避免脑裂。
内容的提问来源于stack exchange,提问作者phil
相关产品推荐
相关产品推荐

