1 为什么需要多集群 Kubernetes
虽然 Kubernetes 成为容器编排领域的事实标准,解决了大多数容器编排领域的问题,但 Kubernetes 原生的管理能力仍然停留在但单集群级别。每一个集群可以稳定地自治运行,但是却缺乏横贯多个集群的统筹管理能力。企业内部出现多集群 Kubernetes 主要有以下几个原因。
1.1 Kubernetes 单个集群规模问题
单个 Kubernetes 集群存在规模性限制,并且在扩容的过程中,etcd、API Server、调度器以及控制器都有可能出现性能瓶颈。以 v1.23 版本 Kubernetes 为例,官方社区给出的单集群规模数据如下:
-
单个集群节点数不超过 5000;
-
每个节点的 Pod 数量不超过 110;
-
Pod 总数不超过 150000;
-
容器总数不超过 300000。
社区中也有一些开发者试图突破该规模上限,例如在节点上增加缓存降低 API Server 的负载。但其缺乏官方社区支持,暂时没有被业界广泛接受。
1.2 高可用架构
为了提高业务应用的可用性,避免单个集群或单个数据中心故障导致业务应用暂时不可用,影响用户正常使用,大型企业通