集群退役单节点
基于kibana完成集群缩容,步骤如下:
1.查看集群节点情况,确认要剔除的节点。
GET /_cat/nodes?v
2.通过GET /_cat/nodes?v,查看被剔除节点占用内存情况,和保留节点的可用内存情况,保证剔除节点后,内存充足。
3.执行剔除节点,这将导致Elasticsearch将该节点上的分片分配给其余节点,重点是操作期间,保证ES集群正常可用。重新分配所有分片后,可以关闭被剔除节点。
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude.name": "node-2"
}
}
确保集群服务正常GET /_cluster/health?pretty
通过GET _nodes/node-1/stats/indices查看确认节点分片数为空后停止该节点的elastic服务
4.关闭节点服务
置空剔除节点列表
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude.name": null
}
}
至此,ElasticSearch集群缩容完成。
集群缩减为单机
停止节点,将分片分配到单节点上
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude.name": "node-2"
}
}
将节点添加到投票配置排除列表,等待自动重新配置,最长一分钟
POST /_cluster/voting_config_exclusions?node_names=<node_names>&timeout=1m
当前的排除列表存储在集群状态,可以通过以下方式查看:
GET _cluster/state?filter_path=metadata.cluster_coordination.voting_config_exclusions
注:立即删除所有投票配置排除项,允许任何节点在将来返回投票配置
curl -X DELETE "http://localhost:9201/_cluster/voting_config_exclusions?wait_for_removal=false"
停止elastic的节点服务
等待所有具有投票配置排除项的节点从集群中删除,然后删除所有排除项,允许任何节点将来返回投票配置
DELETE _cluster/voting_config_exclusions
查看节点状态:GET /_cluster/health?pretty , GET /_cat/nodes?v
关闭节点服务 , 置空剔除节点列表
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude.name": null
}
}
完成后修改存活节点的配置
cluster.name: my-application-test
network.host: 0.0.0.0
http.port: 9201
node.name: node-1
transport.port: 9401
#cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
cluster.initial_master_nodes: ["node-1"]
#discovery.seed_hosts: ["bltzukpuclz:9401", "bltzukpuclz:9402","bltzukpuclz:9403"]
discovery.seed_hosts: ["bltzukpuclz:9401"]