Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
本页面阐明了为何以及如何使用联邦创建Kubernetes集群。
联邦可以使多个集群的管理简单化。它提供了两个主要构件模块:
联邦技术的其他应用场景:
只有在多个集群的场景下联邦服务才是有帮助的。这里列出了一些你会使用多个集群的原因:
虽然联邦有很多吸引人的场景,但这里还是有一些需要关注的事项:
Kubernetes集群里的联邦包括运行在不同云供应商上的集群(例如,谷歌云、亚马逊),和本地部署的集群(例如,OpenStack)。只需在适当的云供应商和/或位置创建所需的所有集群,并将每个集群的API endpoint和凭据注册到您的联邦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。
如果允许负载均衡在集群故障发生时将通信引导到任何区域,那么至少需要较大的R
或U + 1
集群。若非如此(例如,若要在集群故障发生时确保所有用户的低延迟),则需要R * (U + 1)
集群(在每一个R
区域里都有U + 1
)。在任何情况下,尝试将每个集群放在不同的区域中。
最后,如果你的集群需求超过一个Kubernetes集群推荐的最大节点数,那么你可能需要更多的集群。Kubernetes1.3版本支持多达1000个节点的集群规模。