首页 > 解决方案 > etcd 可以检测问题并为其他集群选举领导者吗?

问题描述

据我所知,etcd使用 Raft 作为共识和领导者选择算法来维护一个领导者,该领导者负责使节点集合与集群etcd内的数据变化保持同步。etcd除其他外,这允许从运行etcd的集群中的节点故障中恢复etcd

但是如何etcd管理其他集群,即除了etcd运行的集群之外的集群?

例如,假设我们有一个etcd集群和一个由主(读写)节点和(只读)副本组成的数据库(例如 MySQL 或 Redis)集群可以etcd管理此其他集群的节点角色吗?

进一步来说:


如果有帮助,这里是 Zookeper 的一个类似问题。

标签: kubernetesdistributed-computingetcdraft

解决方案


etcd 的 master 选举严格来说是为了选举 etcd 本身的领导者。

然而,其他集群可以使用分布式强一致性键值存储(例如 etcd)来实现自己的故障检测、领导者选举并允许该集群的客户端做出响应。

Etcd 不管理自己的集群以外的集群。这不是神奇的酱汁。

如果你想使用 etcd 来管理一个 mysql 集群,你需要一个组件来管理 mysql 节点并将集群状态存储在 etcd 中。客户端可以观察该集群状态的变化并进行调整。


推荐阅读