【问题标题】:How to failover in etcd cluster如何在 etcd 集群中进行故障转移
【发布时间】:2022-02-04 20:31:07
【问题描述】:

我有 3 个节点的 etcd 集群,即一个主节点和两个从节点。我需要关闭主节点以进行一些维护活动。因此,我尝试进行选举以选出新的 master,但没有成功。

下面是etcd集群的当前状态

etcdctl --write-out=table --endpoints=$ENDPOINTS endpoint status
+---------------------+------------------+---------+---------+-----------+-----------+------------+
|      ENDPOINT       |        ID        | VERSION | DB SIZE | IS LEADER | RAFT TERM | RAFT INDEX |
+---------------------+------------------+---------+---------+-----------+-----------+------------+
| X.X.X.5:2379 | ac354ac61b853b35 |  3.2.26 |   25 kB |      true |        12 |         13 |
| X.X.X.6:2379 |  7f34769979eb782 |  3.2.26 |   25 kB |     false |        12 |         13 |
| X.X.X.9:2379 | 9174c96c4669dfb5 |  3.2.26 |   25 kB |     false |        12 |         13 |
+---------------------+------------------+---------+---------+-----------+-----------+------------+

以下是我用来进行选举的命令。我从节点 3 即 X.X.X.9 运行以下命令,但它的命令永远得到了 struct。我是 etcd 新手,所以不确定我是否正确使用该命令

etcdctl --endpoints=$ENDPOINTS elect failover app03
failover/37827ec3fd292b03
app03

提前致谢

【问题讨论】:

    标签: etcd etcd3 etcdctl


    【解决方案1】:

    TL;DR;

    etcdctl --endpoints=$ENDPOINTS move-leader 9174c96c4669dfb5
    

    move-leader docs

    简而言之:

    我认为“master”和“slave”对 etcd 中发生的事情的描述是非常错误的。最好将他们视为 3 个成员,其中 1 个是领导者。任何时候你都可以删除少数节点(3 节点集群中的 1 个),etcd 就可以正常工作。留在集群中的成员之间将进行选举,并将选举新的lider。

    更多阅读:https://etcd.io/docs/v3.5/op-guide/runtime-configuration/

    【讨论】:

      猜你喜欢
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2020-06-16
      • 2021-02-15
      • 2017-08-31
      相关资源
      最近更新 更多