Kubernetes高可用性大师

时间:2017-11-03 16:54:33

标签: azure kubernetes azure-container-service

我在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.

两个集群都是由不同AZ的acs-engine创建的。这是一个与2个不同的集群有关的问题吗?如果是这样,我在这种情况下如何做HA?我正在努力,因为联邦还没有为生产做好准备。

我完全被锁定了。

我真的很感激你的帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

Kubernetes主服务器的高可用性设置假设您在同一群集中运行多个(通常为3,因此您可以拥有一个投票法定数量)主服务器。您当前的设置包含2个独立的1主集群。

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

如果您无法销毁现有群集并已在HA模式下启动它们,我建议您使用guide for migrating from single to multiple master setups以及考虑使用kops进行此类操作。