一、背景
集群联邦(Federation)的目的是实现单一集群统一管理多个Kubernetes集群的机制,这些集群可能是跨地区(Region),也可能是在不同公有云供应商上,或者是公司内部自行建立的集群。
一但集群进行联邦后,就可以利用 Federation API资源来统一管理多个集群的Kubernetes API资源,如定义Deployment如何部署到不同集群上,其集群所需的副本数等。
通过集群联邦,我们可以:
-
简化管理多个集群的Kubernetes 组件,如Deployment, Service 等
-
在多个集群之间分散工作负载,以提升应用的可靠性
-
跨集群的资源编排,依据编排策略在多个集群进行应用部署
-
在不同集群中,能更快速更容易地迁移应用
-
跨集群的服务发现,服务可以实现地理位置感知,以降低延迟(不一定必须用kubefed实现)
-
实践多云(Multi-cloud)或混合云(Hybird Cloud)的部署
使用场景
-
跨集群同步资源:正如您所料,同步资源是那些部署联合或分布式Kubernetes集群的人面临的核心挑战。Kubernetes中的机制可以自动同步运行在本地或远程系统,云而非云上的多个集群上的部署。
-
跨集群服务发现:这解决了自动配置DNS服务器和负载均衡器的功能。
这篇文章主要记录跨集群资源同步的内容,跨集群服务发现的开新的文章记录。
二、安装
Federation v2 的安装分两个部分,一是 Controller Plan 和 kubefedctl。其中 Controller Plan是基于 helm 安装的,所以我们先安装helm。
helm 安装
可自行查找文档安装。
Controller Plan
Controller Plan 可以使用 Helm 部署(目前 Helm 还是使用 v2 版本),参考官方安装文档:https://github.c