Elasticsearch 集群中增加专用master节点

Elasticsearch 集群中增加专用master节点

ES版本 7.5.0

  当前ES集群中有7个data+master节点,配置都比较高,集群的压力相对也比较大,所以计划加入3个专用的master节点,防止集群万一压力比较大的时候崩溃导致整个ES服务不可用。

操作过程

  1. 增加master节点
  2. 排除原来的节点的选举权
  3. data节点重启操作
  4. 删除exclusions

1.增加master节点

  1. 加入3个(2core+6G)的master节点。因为master节点只承担集群的元数据的管理和存储,所以对资源要求不高。

2.排除原来的节点的选举权

  1. kibana console端将其他的data+master节点排除为可选举节点,参考

    1. POST /_cluster/voting_config_exclusions/data2?timeout=1m
      POST /_cluster/voting_config_exclusions/data3?timeout=1m
      POST /_cluster/voting_config_exclusions/data4?timeout=1m
      
      
  2. 在这样操作完成后,新加入的节点中第一个就会成为真正的master

    1. 查看当前集群中有选举能力的节点和被剥夺选举能力的节点

    2. GET /_cluster/state?filter_path=metadata.cluster_coordination
      
      GET _nodes/master:true
      

3.data节点重启操作

  1. 关闭集群的rebalance,并根据集群压力调整rebalance和allocation的并发度(后面恢复的时候使用)

    1. PUT _cluster/settings
      {
        "transient" : {
          "cluster.routing.rebalance.enable" : "none",
          "cluster.routing.allocation.node_concurrent_recoveries":"1",
          "cluster.routing.allocation.cluster_concurrent_rebalance":"1"
        }
      }
      
      
  2. 执行Exclude 操作,将节点的数据去除(有时候节点数据过大有可能影响节点的重启),如果是数据分片是高可用的话,也可以直接关掉节点

    1. PUT _cluster/settings
      {
        "transient" : {
          "cluster.routing.allocation.exclude._name" : "data2"
        }
      }
      
      
  3. 修改elasticsearch.yml配置文件,设置为master专用

    1. node.master: false
      node.data: true
      
      
    2. 重启节点

4.删除exclusions

  1. 在全部的data节点重启完成后删掉原来的exclusions

    1. DELETE _cluster/voting_config_exclusions?wait_for_removal=false