3. 多集群架构基础:Hub-Spoke、Federation、Cluster API 等常见多集群管理架构对比

在构建企业级云原生平台时,单一 Kubernetes 集群往往无法满足隔离性、地域分布、合规要求或规模扩展的需求。多集群管理架构应运而生,但不同架构在控制面复杂度、运维开销、故障隔离和发布一致性上差异显著。本章聚焦三种主流多集群管理架构——Hub-Spoke、Federation 和 Cluster API,从设计理念、控制流、适用场景和 Operator 发布适配性四个维度进行系统对比。

3.1 Hub-Spoke 架构:中心管控,边缘执行

Hub-Spoke(中心-辐射)是目前生产环境中最广泛采用的多集群管理模型。其核心思想是:一个中心集群(Hub)作为控制面,负责策略下发、资源分发和状态聚合;多个工作集群(Spoke)仅运行工作负载,不直接暴露控制面给用户。

关键特征: Hub 集群不运行业务 Pod,只运行管理组件(如 OCM、Karmada 的调度器、ArgoCD 的 ApplicationSet Controller);Spoke 集群通过 Agent 或 Pull 模式与 Hub 通信,避免 Hub 故障影响 Spoke 已有工作负载。
Hub-Spoke 多集群架构 Hub 集群 策略引擎 · 调度器 · 聚合 API Spoke 集群 1 Agent / Pull 模式 Spoke 集群 2 Agent / Pull 模式 Spoke 集群 3 Agent / Pull 模式 说明 Hub 故障不影响 Spoke 已有 Pod 运行;新策略下发暂停,存量业务不中断。

3.1.1 典型实现与 Operator 发布适配

  • Open Cluster Management (OCM): 通过 ManifestWork 将资源分发到 Spoke,支持 Work 级别的回滚和状态反馈。
  • Karmada: 提供 ResourceTemplate 和 PropagationPolicy,支持跨集群差异化配置和灰度发布。
  • ArgoCD + ApplicationSet: 利用 Pull 模式在每个 Spoke 部署 ArgoCD Agent,Hub 端 ApplicationSet 根据集群列表生成 Application。
Operator 发布建议: 在 Hub-Spoke 架构中,Operator 本身应部署在 Hub 集群,通过 OLM 的 MultiNamespace 模式或手动配置,将 Operator 的 CRD 和 Controller 分发到 Spoke。回滚时只需在 Hub 端调整 PropagationPolicy 或 Work 的版本字段,Spoke 端自动同步。

3.2 Federation 架构:联邦控制面,全局一致

Federation(联邦)架构通过一个逻辑上的联邦控制面,将多个集群抽象为一个统一的资源池。Kubernetes Federation v2(KubeFed)是此模型的代表。与 Hub-Spoke 不同,Federation 强调跨集群资源模板化和调度策略的声明式管理。

注意: KubeFed 项目已进入维护模式,社区推荐迁移至 Karmada 或 OCM。但 Federation 的设计思想(Template + Placement + Override)仍被广泛借鉴。
Federation 多集群架构 Federation 控制面 (KubeFed) FederatedDeployment · FederatedConfigMap Template + Placement + Override 成员集群 A 联邦资源同步 成员集群 B 联邦资源同步 成员集群 C 联邦资源同步 说明 Federation 控制面与成员集群之间是双向同步关系;控制面故障会导致所有成员集群的联邦资源无法更新。

3.2.1 Federation 的 Operator 发布局限

  • CRD 同步问题: Federation 不会自动同步 CRD,需要手动在每个成员集群安装相同版本的 CRD。
  • 状态反馈延迟: 联邦资源的状态聚合存在时间窗口,Operator 的回滚决策可能基于过时状态。
  • Override 复杂度: 当不同集群需要差异化配置时,Override 策略的维护成本随集群数量线性增长。

3.3 Cluster API:声明式集群生命周期管理

Cluster API(CAPI)是 Kubernetes SIG 推出的声明式集群管理项目,专注于集群的创建、升级、扩缩容和销毁。与前两种架构不同,CAPI 不直接管理跨集群的资源分发,而是将集群本身视为 Kubernetes 资源(Cluster 对象),通过 Provider 模式对接不同基础设施(AWS、vSphere、OpenStack 等)。

核心价值: 将集群的运维操作(如升级 Kubernetes 版本、替换 Worker 节点)标准化为声明式 API,非常适合需要频繁创建/销毁集群的 CI/CD 场景(如 Preview Environment、Ephemeral Cluster)。

3.3.1 Cluster API 架构组件

组件 职责 与 Operator 发布的关系
Management Cluster 运行 CAPI Controller,管理所有 Workload Cluster 的生命周期 Operator 的 CRD 和 Controller 需部署在此集群
Workload Cluster 运行实际业务负载,由 Management Cluster 通过 Bootstrap Provider 创建 Operator 通过 ClusterResourceSet 或手动安装到 Workload Cluster
Infrastructure Provider 对接云/虚拟化平台,管理虚拟机、网络、存储等资源 不直接参与 Operator 发布,但影响集群创建速度
Bootstrap Provider 生成集群初始化所需的 cloud-init 或 kubeadm 配置 可在初始化阶段注入 Operator 的 Helm Chart 或 Manifest

3.4 三种架构对比总结

维度 Hub-Spoke Federation Cluster API
控制面位置 Hub 集群 独立联邦控制面 Management 集群
资源分发方式 Push / Pull 策略下发 双向同步 不直接分发资源,只管理集群
故障隔离 高(Hub 故障不影响 Spoke 存量) 低(控制面故障导致全局不可更新) 中(Management 故障不影响已有 Workload 集群)
Operator 发布适配 优(通过 ManifestWork / ApplicationSet 分发) 中(需手动处理 CRD 同步和 Override) 良(通过 ClusterResourceSet 或 Bootstrap 注入)
回滚粒度 Work / Application 级别 FederatedResource 级别 Cluster 级别(回滚集群版本或重建)
典型场景 生产多集群策略管控、灰度发布 跨集群资源模板化(已逐步被替代) CI/CD 临时集群、集群升级、混合云集群生命周期

3.5 架构选型建议

  • 如果你需要长期稳定的多集群策略管控和 Operator 发布: 优先选择 Hub-Spoke 架构(OCM 或 Karmada),故障隔离好,回滚机制成熟。
  • 如果你的场景需要频繁创建/销毁集群(如 Preview Environment、E2E 测试集群): 选择 Cluster API,将集群生命周期与 CI/CD 流水线深度集成。
  • 避免直接使用 Federation v2: 除非已有存量系统,否则建议迁移至 Karmada 或 OCM,它们继承了 Federation 的模板化思想,同时解决了故障隔离和 CRD 同步问题。
本课程后续章节将基于 Hub-Spoke 架构(Karmada + OCM)展开 Operator 发布与回滚策略的自动化验证。 选择 Hub-Spoke 是因为它在生产环境中的成熟度最高,且回滚策略的验证逻辑最清晰——只需在 Hub 端调整分发策略,Spoke 端即可自动收敛到期望状态。