Elasticsearch 集群中增加专用master节点
Elasticsearch 集群中增加专用master节点
ES版本 7.5.0
当前ES集群中有7个data+master节点,配置都比较高,集群的压力相对也比较大,所以计划加入3个专用的master节点,防止集群万一压力比较大的时候崩溃导致整个ES服务不可用。
操作过程
- 增加master节点
- 排除原来的节点的选举权
- data节点重启操作
- 删除exclusions
1.增加master节点
- 加入3个(2core+6G)的master节点。因为master节点只承担集群的元数据的管理和存储,所以对资源要求不高。
2.排除原来的节点的选举权
-
kibana console端将其他的data+master节点排除为可选举节点,参考
-
POST /_cluster/voting_config_exclusions/data2?timeout=1m POST /_cluster/voting_config_exclusions/data3?timeout=1m POST /_cluster/voting_config_exclusions/data4?timeout=1m
-
-
在这样操作完成后,新加入的节点中第一个就会成为真正的master
-
查看当前集群中有选举能力的节点和被剥夺选举能力的节点
-
GET /_cluster/state?filter_path=metadata.cluster_coordination GET _nodes/master:true
-
3.data节点重启操作
-
关闭集群的rebalance,并根据集群压力调整rebalance和allocation的并发度(后面恢复的时候使用)
-
PUT _cluster/settings { "transient" : { "cluster.routing.rebalance.enable" : "none", "cluster.routing.allocation.node_concurrent_recoveries":"1", "cluster.routing.allocation.cluster_concurrent_rebalance":"1" } }
-
-
执行Exclude 操作,将节点的数据去除(有时候节点数据过大有可能影响节点的重启),如果是数据分片是高可用的话,也可以直接关掉节点
-
PUT _cluster/settings { "transient" : { "cluster.routing.allocation.exclude._name" : "data2" } }
-
-
修改elasticsearch.yml配置文件,设置为master专用
-
node.master: false node.data: true
-
重启节点
-
4.删除exclusions
-
在全部的data节点重启完成后删掉原来的exclusions
-
DELETE _cluster/voting_config_exclusions?wait_for_removal=false
-