本页面阐明了为何以及如何使用联邦创建Kubernetes集群。

为何使用联邦

联邦可以使多个集群的管理简单化。它提供了两个主要构件模块:

联邦技术的其他应用场景:

只有在多个集群的场景下联邦服务才是有帮助的。这里列出了一些你会使用多个集群的原因:

注意事项

虽然联邦有很多吸引人的场景,但这里还是有一些需要关注的事项:

混合云的能力

Kubernetes集群里的联邦包括运行在不同云供应商上的集群(例如,谷歌云、亚马逊),和本地部署的集群(例如,OpenStack)。只需在适当的云供应商和/或位置创建所需的所有集群,并将每个集群的API endpoint和凭据注册到您的联邦API服务中(详情参考联邦管理指南)。

在此之后,您的API资源就可以跨越不同的集群和云供应商。

建立联邦

若要能联合多个集群,首先需要建立一个联邦控制面。参照安装指南 建立联邦控制面。

API资源

控制面建立完成后,就可以开始创建联邦API资源了。 以下指南详细介绍了一些资源:

API参考文档列举了联邦API服务支持的所有资源。

级联删除

Kubernetes1.6版本支持联邦资源级联删除。使用级联删除,即当删除联邦控制面的一个资源时,也删除了所有底层集群中的相应资源。

当使用REST API时,级联删除功能不是默认开启的。若使用REST API从联邦控制面删除一个资源时,要开启级联删除功能,即需配置选项 DeleteOptions.orphanDependents=false。使用kubectl delete使级联删除功能默认开启。使用kubectl delete --cascade=false禁用级联删除功能。

注意:Kubernetes1.5版本开始支持联邦资源子集的级联删除。

单个集群的范围

对于IaaS供应商如谷歌计算引擎或亚马逊网络服务,一个虚拟机存在于一个可用域中。 我们建议一个Kubernetes集群里的所有虚机应该在相同的可用域里,因为:

每个可用区域里包含多个集群当然是可以的,但是总的来说我们认为集群数越少越好。 偏爱较少集群数的原因是:

多集群的原因包括:

选择合适的集群数

Kubernetes集群数量选择也许是一个相对静止的选择,因为对其重新审核的情况很少。相比之下,一个集群中的节点数和一个服务中的pods数可能会根据负载和增长频繁变化。

选择集群的数量,首先,需要决定哪些区域对于将要运行在Kubernetes上的服务,可以有足够的时间到达所有的终端用户(如果使用内容分发网络,则不需要考虑CDN-hosted内容的延迟需求)。法律问题也可能影响这一点。例如,拥有全球客户群的公司可能会对于在美国、欧盟、亚太和南非地区拥有集群起到决定权。使用R代表区域的数量。

其次,决定有多少集群在同一时间不可用,而一些仍然可用。使用U代表不可用的数量。如果不确定,最好选择1。

如果允许负载均衡在集群故障发生时将通信引导到任何区域,那么至少需要较大的RU + 1集群。若非如此(例如,若要在集群故障发生时确保所有用户的低延迟),则需要R * (U + 1)集群(在每一个R区域里都有U + 1)。在任何情况下,尝试将每个集群放在不同的区域中。

最后,如果你的集群需求超过一个Kubernetes集群推荐的最大节点数,那么你可能需要更多的集群。Kubernetes1.3版本支持多达1000个节点的集群规模。

What’s next