在 Kubernetes 集群中添加第二个 master 的最佳方法是什么?

use*_*590 2 kubernetes

我在 kubernetes 集群中有一个 5 个工作节点和一个主节点。我想在该集群中添加一个新的主节点,以便该集群具有高可用性。在集群中添加新主节点的最佳方法是什么?

VAS*_*VAS 6

这篇文章对我理解 HA 集群在现实生活中的样子有很大帮助,所以我建议先查看一下。

以下是Kubernetes 文档中描述创建 HA 集群的引用:

启动一个 HA 兼容集群要创建一个新的 HA 兼容集群,你必须在你的 kube-up 脚本中设置以下标志:

  • MULTIZONE=true - 防止从不同于服务器默认区域的区域中删除主副本 kubelet。如果您想在不同的可用区中运行主副本,则需要,建议这样做。

  • ENABLE_ETCD_QUORUM_READS=true - 确保从所有 API 服务器读取将返回最新数据。如果为 true,读取将被定向到领导 etcd 副本。将此值设置为 true 是可选的:读取会更可靠,但也会更慢。

或者,您可以指定要在其中创建第一个主副本的 GCE 区域。设置以下标志:

  • KUBE_GCE_ZONE=zone - 第一个主副本将运行的区域。以下示例命令在 GCE 区域 europe-west1-b 中设置了一个与 HA 兼容的集群:

    $ MULTIZONE=true KUBE_GCE_ZONE=europe-west1-b ENABLE_ETCD_QUORUM_READS=true ./cluster/kube-up.sh

请注意,上面的命令创建了一个带有一个 master 的集群;但是,您可以使用后续命令向集群添加新的主副本。

添加新的主副本 在创建了一个 HA 兼容集群后,您可以向其添加主副本。您通过以下方式添加主副本

使用带有以下标志的 kube-up 脚本:

  • KUBE_REPLICATE_EXISTING_MASTER=true - 创建现有 master 的副本。

  • KUBE_GCE_ZONE=zone - 主副本将运行的区域。必须与其他副本的区域位于同一区域。

您不需要设置 MULTIZONE 或 ENABLE_ETCD_QUORUM_READS 标志,因为这些标志是从您启动 HA 兼容集群时继承的。

以下示例命令在现有的 HA 兼容集群上复制主节点:

$ KUBE_GCE_ZONE=europe-west1-c KUBE_REPLICATE_EXISTING_MASTER=true ./cluster/kube-up.sh

您还可以找到这些有用的资源: