如何更改 etcd 集群中的领导者?

How to change a leader in etcd cluster?

我在 coreOS 上有一个 etcd 集群 运行。领导者设置为我开始的第一个成员(正如预期的那样),但我第一个开始错误,所以领导者不是应该的人。

如何将领导的角色更改为其他成员?

我误解了 etcd 集群领导者的作用。我正在设置一个 Kubernetes 集群,我认为主节点应该是 etcd 集群领导者。但是正如@heimbert 提到的那样,领导者选举的重点是您不必担心领导者是谁。

要更改 etcd 集群中的领导者,您需要 运行 命令:

etcdctl move-leader id-of-the-node-you-want-to-be-the-leader

要获得 id-of-the-node-you-want-to-be-the-leader 你需要 运行 命令:

etcdctl endpoint status -w table

包含证书和端点的完整示例 - 当然,您必须根据您的配置调整参数。首先得到 table:

etcdctl endpoint status -w table \
    --cacert="/ssl/client/ca-client.crt" \
    --cert="/ssl/client/prod-v1-etcd-node-1-client.crt" \
    --key="/ssl/client/prod-v1-etcd-node-1-client.key" \
    --endpoints=127.0.0.1:2379,prod-v1-etcd-node-2:2379,prod-v1-etcd-node-3:2379

...然后,更换领导者:

etcdctl move-leader 1f648bfb63561530 \
    --cacert="/ssl/client/ca-client.crt" \
    --cert="/ssl/client/prod-v1-etcd-node-1-client.crt" \
    --key="/ssl/client/prod-v1-etcd-node-1-client.key" \
    --endpoints=127.0.0.1:2379,prod-v1-etcd-node-2:2379,prod-v1-etcd-node-3:2379