Kubernetes etcd能否发现问题并为其他集群选出领导者?

Kubernetes etcd能否发现问题并为其他集群选出领导者?,kubernetes,distributed-computing,etcd,raft,Kubernetes,Distributed Computing,Etcd,Raft,据我所知,etcd使用Raft作为共识和领导者选择算法来维护领导者,该领导者负责使etcd节点群与etcd集群内的数据更改保持同步。除其他外,这允许etcd从运行etcd的集群中的节点故障中恢复 但是etcd如何管理其他集群,即运行etcd的集群以外的集群 例如,假设我们有一个etcd集群和一个集群,一个由主(读写)节点和(只读)副本组成的DB(例如MySQL或Redis)集群。etcd能否管理此其他群集的节点角色 更具体地说: etcd是否可以为运行etcd的集群选择一个领导者,并将该信息提

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

但是
etcd
如何管理其他集群,即运行
etcd
的集群以外的集群

例如,假设我们有一个
etcd
集群和一个集群,一个由主(读写)节点和(只读)副本组成的DB(例如MySQL或Redis)集群。
etcd
能否管理此其他群集的节点角色

更具体地说:

  • etcd
    是否可以为运行
    etcd
    的集群选择一个领导者,并将该信息提供给其他集群和节点

  • 为了使这更具体,使用上面的示例,假设上面示例中提到的MySQL DB集群中的主节点出现故障。再次注意,MySQL DB的主服务器和副本运行在与运行和托管
    etcd
    数据的节点不同的集群上

    • etcd
      是否提供自动检测集群上此类节点故障的功能,而不是
      etcd
      ?如果是,在实践中是如何做到的?(例如,MySQL DB或节点可以承担不同角色的任何其他集群)

    • 在检测到此类故障后,能否
      etcd
      重新安排此单独集群中的节点角色(即指定新的主节点和副本),以及是否会为此使用Raft leader选择算法

    • 一旦完成此操作,
      etcd
      是否也可以通知依赖此数据库和相应配置的客户端(应用程序)节点

    • 最后,上述任何一项是否需要Kubernetes?或者
      etcd
      是否可以自行管理外部集群



如果有帮助的话,Zookeper也面临类似的问题。

etcd的主要选举严格来说就是为etcd本身选举领导人

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

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


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

谢谢@Levi-当涉及到在
etcd
中管理集群状态的组件时,您知道
etcd
生态系统中存在什么类型的支持吗?例如,我看到ZooKeeper是一组显然具有本机支持的项目,也就是说,如果配置正确,它们可以自动检测并设置ZooKeeper中的键。您是否知道这些项目中有类似类型的支持?(例如MySQL、Hadoop、Flink、Spark等)或者这在
etcd
生态系统中缺失了吗?例如,MySQL将如何工作?