【发布时间】:2020-01-16 22:36:57
【问题描述】:
我们需要设置一个地理冗余集群。我正在考虑共享一个外部 etcd 集群来运行两个 kubernetes 集群。一开始可能听起来很荒谬,但要求已经归结为它。我正在寻找一些方向来确定是否有可能,如果没有,挑战是什么。
【问题讨论】:
-
您在寻找 Kubernetes 集群联合github.com/kubernetes-sigs/kubefed
标签: kubernetes etcd
我们需要设置一个地理冗余集群。我正在考虑共享一个外部 etcd 集群来运行两个 kubernetes 集群。一开始可能听起来很荒谬,但要求已经归结为它。我正在寻找一些方向来确定是否有可能,如果没有,挑战是什么。
【问题讨论】:
标签: kubernetes etcd
是的,这是可能的,你可以有一个 etcd 集群和多个连接到它的 k8s 集群。实现它的关键是使用来自 kubernetes apiserver 的-etcd-prefix string flag。这样每个集群将使用不同的根路径来存储其资源,并避免与 etcd 中的第二个集群可能发生冲突。除此之外,您还应该为每个 k8s 集群设置适当的 rbac 规则和证书。您可以在以下文章中找到有关它的更多详细信息:Multi-tenant external etcd for Kubernetes clusters。
编辑:哦,等等,刚刚注意到您想让这两个集群充当主从。在这种情况下,您可以通过为从属集群分配 etcd 中的只读角色并在必须成为主集群时将其更改为读写来实现它。理论上它应该可以工作,但我从未尝试过,我认为最好的选择是使用内置的 k8s 机制来实现领导者选举等高可用性。
【讨论】: