两个kubernetes集群可以共享同一个外部etcd并且像master-slave一样工作吗

问题描述 投票:0回答:1

我们需要设置一个地理冗余集群。我正在考虑共享外部 etcd 集群来运行两个 kubernetes 集群。乍一听起来可能很荒谬,但要求已经归结为这一点..我正在寻求一些方向来确定这是否可能,如果不可能,挑战是什么。

kubernetes etcd
1个回答
4
投票

是的,这是可能的,您可以拥有一个 etcd 集群并附加多个 k8s 集群。实现它的关键是使用 kubernetes apiserver 中的

-etcd-prefix string
flag。这样,每个集群将使用不同的根路径来存储其资源,并避免与 etcd 中的第二个集群可能发生冲突。除此之外,您还应该为每个 k8s 集群设置适当的 rbac 规则和证书。您可以在以下文章中找到更多详细信息:Kubernetes 集群的多租户外部 etcd

编辑:哦等等,刚刚注意到您想让这两个集群充当主从集群。在这种情况下,您可以通过在 etcd 中为从属集群分配只读角色来实现此目的,并在必须成为主集群时将其更改为读写。理论上它应该可以工作,但我从未尝试过,我认为最好的选择是使用内置的 k8s 机制来实现高可用性,例如领导者选举。

© www.soinside.com 2019 - 2024. All rights reserved.