1. 多集群与Fleet治理全景

当业务从“一个能跑的 Kubernetes 集群”走向“多套环境、多个地域、多个团队共享的基础设施”时,单集群的边界会迅速暴露。单集群并不是技术缺陷,而是设计目标不同:它假设节点规模、故障域、租户数量和发布节奏都在可控范围内。一旦这些假设被打破,问题就不再是“集群能不能扩容”,而是“控制面爆炸半径、升级窗口、网络策略、配额与权限如何被治理”。多集群与 Fleet 治理,本质上是把“集群”从一台大机器,变成一组可被编排、观测、升级和审计的资源池。

为什么单集群不够

单集群最先遇到的不是性能瓶颈,而是故障域耦合。etcd 的 quorum、API Server 的负载、CNI 的地址空间、Ingress 的入口、CRD 的版本,全部共享同一套控制面。一次集群级升级、一次误删 CRD、一次网络插件滚动,都可能同时影响所有业务。其次是发布节奏冲突:支付团队需要每周两次灰度,风控团队要求变更冻结,基础设施团队要升级节点镜像,这些诉求在同一个集群里只能互相妥协。第三是合规与隔离:不同地域的数据驻留、不同租户的网络与 RBAC 边界,很难靠命名空间彻底解决。最后是规模上限:单集群的节点数、Pod 数、Service 数都有经验阈值,超过后调度延迟、etcd 写入放大、控制器队列积压会显著上升。

多集群的典型驱动力

生产中选择多集群,通常由以下驱动力触发,而不是为了“架构好看”:

  • 故障隔离与爆炸半径控制:按业务域或地域拆分,单集群故障不扩散。
  • 环境与发布隔离:dev/staging/prod 分集群,避免测试流量与生产互相干扰。
  • 地域与数据驻留:用户就近接入,数据留在指定区域。
  • 多租户与合规:不同团队、不同客户拥有独立控制面边界。
  • 版本与升级节奏:先在小集群验证新版本,再逐步推广。
  • 容量与成本:按业务峰谷在不同集群间调度,避免单集群长期超配。

这些驱动力往往同时存在,因此多集群不是“多建几个集群”那么简单,而是需要一套Fleet 层来统一治理。

Fleet 的概念边界

Fleet 可以理解为“集群的集群”:它不直接运行工作负载,而是管理一组 Kubernetes 集群的注册、标签、策略分发、应用部署与状态汇总。Fleet 的边界需要明确:

  • Fleet 管集群,不管 Pod:它关注集群是否在线、版本是否合规、标签是否匹配、策略是否下发成功。
  • Fleet 管分发,不管调度:它把应用或策略推到目标集群,具体调度仍由各集群的 kube-scheduler 完成。
  • Fleet 管期望状态,不管运行时细节:它通过 GitOps 或声明式 API 表达“哪些集群应该有什么”,运行时差异由各集群控制器收敛。
  • Fleet 需要可观测性闭环:没有集群状态、部署状态、策略合规状态的汇总,Fleet 就只是“批量 kubectl”。

常见的 Fleet 实现包括 Karmada、Cluster API、Argo CD ApplicationSet、Flux 多集群、Rancher Fleet 等。它们的能力侧重点不同,但治理目标一致:让集群成为可声明、可观测、可审计、可回滚的资源。

生产治理目标

多集群 Fleet 的生产治理,可以归纳为五个目标:

  1. 一致性:所有集群的基线配置(CNI、CSI、RBAC、策略)可声明、可校验。
  2. 可观测性:集群健康、应用部署、策略合规、资源水位集中可见。
  3. 可回滚:任何分发变更都能定位到具体集群、具体版本、具体时间。
  4. 安全边界:Fleet 控制面自身高可用,凭证最小权限,跨集群通信加密。
  5. 成本与容量:按标签和策略分配工作负载,避免资源碎片与长期超配。

这些目标不是一次性达成的,而是随着集群数量增长逐步补齐。下面这张图给出多集群与 Fleet 治理的全景关系:左侧是驱动力,中间是 Fleet 控制面,右侧是治理目标与反馈闭环。

多集群与 Fleet 治理全景 驱动力 → Fleet 控制面 → 目标集群 → 治理目标与反馈 多集群驱动力 故障隔离 爆炸半径控制 环境隔离 dev / staging / prod 地域与合规 数据驻留 / 就近接入 多租户 独立控制面边界 升级节奏 灰度验证后推广 容量与成本 峰谷调度 / 避免超配 Fleet 控制面 集群注册与标签 region / env / tier / owner 策略与配置分发 RBAC / NetworkPolicy / CRD 应用部署编排 GitOps / ApplicationSet / Override 状态汇总与审计 集群健康 / 部署状态 / 合规 凭证与安全边界 最小权限 / 加密通道 / 高可用 目标集群 Cluster A prod / cn-north / tier=core Cluster B prod / cn-south / tier=core Cluster C staging / cn-north / tier=edge Cluster D dev / cn-east / tier=edge kube-scheduler 本地调度 治理目标:一致性 · 可观测性 · 可回滚 · 安全边界 · 成本与容量 反馈闭环:状态汇总 → 偏差检测 → 策略修正 → 重新分发 反馈

课程实战地图

本课程围绕“多集群与 Fleet 生产实践与可靠性治理”展开,后续章节会沿着这条主线逐步深入:先建立 Fleet 的架构与集群注册模型,再进入策略分发、应用编排、状态汇总与故障排查,最后落到可靠性治理与成本优化。每一章都会给出可复现的示例参数、配置片段与判断依据,帮助你把“多集群”从概念变成可运行、可观测、可回滚的生产系统。