Kubernetes 高可用性大师

Kubernetes High-Availability Masters

我在 Azure 中有 2 个集群 运行,用于 2 个不同的可用区,我想在 https://kubernetes.io/docs/admin/high-availability/#replicated-api-servers 之后集群 etcd 主机。

我为 3 位大师创建了发现令牌。当我尝试初始化 etcd 容器时它失败了:

2017-10-27 20:28:17.554393 I | etcdmain: etcd Version: 3.0.17
2017-10-27 20:28:17.554435 I | etcdmain: Git SHA: cc198e2
2017-10-27 20:28:17.554441 I | etcdmain: Go Version: go1.6.4
2017-10-27 20:28:17.554444 I | etcdmain: Go OS/Arch: linux/amd64
2017-10-27 20:28:17.554448 I | etcdmain: setting maximum number of CPUs to 2, total number of available CPUs is 2
2017-10-27 20:28:17.554511 N | etcdmain: the server is already initialized as member before, starting as etcd member...
2017-10-27 20:28:17.554570 I | etcdmain: listening for peers on http://127.0.0.1:2380
2017-10-27 20:28:17.554594 I | etcdmain: listening for client requests on 127.0.0.1:4001
2017-10-27 20:28:17.868368 I | etcdmain: stopping listening for client requests on 127.0.0.1:4001
2017-10-27 20:28:17.868395 I | etcdmain: stopping listening for peers on http://127.0.0.1:2380
2017-10-27 20:28:17.868403 E | etcdmain: member "node-1" has previously registered with discovery service token (https://discovery.etcd.io/457f96956adb17ca0cc372e77b4e1420).
2017-10-27 20:28:17.868408 E | etcdmain: But etcd could not find valid cluster configuration in the given data dir (/var/etcd/data).
2017-10-27 20:28:17.868411 I | etcdmain: Please check the given data dir path if the previous bootstrap succeeded
2017-10-27 20:28:17.868462 I | etcdmain: or use a new discovery token if the previous bootstrap failed.

两个集群都是由acs-engine在不同的可用区创建的。这是与拥有 2 个不同集群有关的问题吗?如果是这样,我该如何在这种情况下进行高可用性?我正在尝试这样做,因为联邦尚未准备好投入生产。

我完全锁定了。

非常感谢您对此提供帮助。

谢谢。

Kubernetes 主节点的高可用性设置假设您在同一个集群中有 运行 多个(通常是 3 个,这样您就可以拥有投票法定人数)主节点。您当前的设置包含 2 个独立的 1-master 集群。

当你有多个集群时,你会想看看 Cluster Federation 虽然我敢打赌这不是你想要的,因为你通常有联合集群,每个集群也有 3 个主设置.

如果您负担不起销毁现有集群并在 HA 模式下启动它们,我建议这种出色的 guide for migrating from single to multiple master setups as well as considering using kops 用于此类操作。