3、多集群架构概述:Hub-Spoke、Federation、Cluster API 等主流多集群管理模式对比

在云原生环境下,单一 Kubernetes 集群无法满足跨区域部署、环境隔离、故障域分散及合规管控等需求。多集群管理已成为企业级 Operator 发布与 OPA 策略治理的基础设施前提。本章聚焦三种主流多集群架构模式:Hub-Spoke(中心辐射)、Federation(联邦) 与 Cluster API(声明式集群生命周期管理),从控制模型、策略分发效率、运维复杂度及 OPA 集成适配性四个维度进行对比。

3.1 三种架构的核心概念与适用场景

架构模式 核心思想 控制流方向 典型工具/项目 适用场景
Hub-Spoke 中心 Hub 集群统一管控多个 Spoke 工作集群;策略/配置从 Hub 推送到 Spoke 单向(Hub → Spoke) Open Cluster Management (OCM)、Karmada、Rancher 大规模生产集群统一运维、合规策略集中下发、跨集群资源分发
Federation 通过 Federation 控制平面将资源同步到多个成员集群,保持最终一致 双向同步(控制平面 ↔ 成员集群) KubeFed (Kubernetes Federation v2) 跨集群应用迁移、多区域服务发现、需要强一致资源模板的场景
Cluster API 以声明式 API 管理集群的创建、升级、扩缩容与销毁;基础设施即代码 声明式(用户 → Management Cluster → Workload Cluster) Cluster API (CAPI) + 各种 Infrastructure Providers 动态集群生命周期管理、混合云/多云集群自服务、GitOps 驱动的基础设施
OPA 集成视角: Hub-Spoke 架构天然适合将 OPA Gatekeeper 或 OPA-Envoy 部署在 Hub 侧,通过 ManifestWork 或 Work API 将约束模板(ConstraintTemplate)与策略(Constraint)推送到所有 Spoke 集群,实现“一次定义,全局生效”。Federation 需要额外处理策略同步冲突,Cluster API 则可在集群 Bootstrap 阶段注入 OPA 策略作为集群初始配置的一部分。

3.2 Hub-Spoke 架构详解

Hub-Spoke 是目前生产环境最广泛采用的多集群管理模式。其核心设计是:一个中心集群(Hub) 负责策略定义、资源分发与状态聚合;多个工作集群(Spoke) 仅运行业务负载,不直接暴露控制面给用户。Hub 通过 Work API 或 ManifestWork 将资源对象推送到 Spoke,并通过 Status API 回捞状态。

关键优势:
  • 策略管控面与业务面完全分离,Hub 故障不影响 Spoke 已有负载运行。
  • 天然适配 OPA 策略的“推模式”:Hub 侧 OPA 审计结果可统一写入 Spoke 的合规报告。
  • Spoke 集群无需安装额外 Operator,降低运维面。
Hub-Spoke 多集群架构(策略集中下发) Hub 集群 OPA Gatekeeper / 策略引擎 Spoke 集群 A Operator 工作负载 Spoke 集群 B Operator 工作负载 Spoke 集群 C Operator 工作负载 ManifestWork / Work API ConstraintTemplate + Constraint Status API 回捞合规状态 ▶ 策略分发路径 1. Hub 侧 OPA 定义 ConstraintTemplate → 2. 通过 ManifestWork 推送到所有 Spoke 3. Spoke 侧 OPA Gatekeeper 本地执行 → 4. 审计结果通过 Status API 回传 Hub

3.3 Federation 架构详解

Kubernetes Federation v2(KubeFed)通过 Federation 控制平面 将资源模板(Template)、放置策略(Placement)与覆盖策略(Overrides)同步到多个成员集群。与 Hub-Spoke 的“推送”不同,Federation 采用 最终一致性同步模型:控制平面将资源写入成员集群的 API Server,成员集群的控制器再将其 reconcile 到实际状态。

OPA 集成挑战: Federation 的同步模型可能导致策略在成员集群间短暂不一致。若 OPA 约束在某个成员集群上因同步延迟而缺失,Operator 可能在该窗口期内绕过合规检查。建议在 Federation 控制平面侧额外部署 OPA 准入 Webhook,对所有同步出去的资源做预检。
Federation 多集群架构(双向同步) Federation 控制平面 Template / Placement / Overrides 成员集群 1 OPA Gatekeeper 成员集群 2 OPA Gatekeeper 成员集群 3 OPA Gatekeeper 同步资源 + 策略 同步资源 + 策略 ▶ 同步流程 1. 用户在 Federation 控制平面定义 FederatedResource(含 OPA Constraint) 2. 控制平面根据 Placement 策略将资源分发到目标成员集群 3. 成员集群本地 OPA 执行准入校验;状态通过 Federation 回写控制平面

3.4 Cluster API 架构详解

Cluster API(CAPI)将 Kubernetes 集群本身视为声明式资源。用户通过 Management Cluster 定义 Cluster、MachineDeployment、Machine 等 CRD,由对应的 Infrastructure Provider(如 AWS、vSphere、Azure)与 Bootstrap Provider(如 Kubeadm)驱动集群的实际创建与销毁。

OPA 集成最佳实践: 在 Cluster API 的 Bootstrap 阶段,通过 ClusterResourceSet 或 ConfigMap 注入 OPA Gatekeeper 的安装 Manifest 与初始约束模板。这样每个新创建的 Workload Cluster 在启动时即具备合规策略,无需事后手动部署。

3.5 三种架构的 OPA 策略适配性对比

对比维度 Hub-Spoke Federation Cluster API
策略分发模型 Hub 主动推送(Push) 控制平面同步(Sync) Bootstrap 注入 + 事后 GitOps
策略一致性保障 高(Hub 控制所有 Spoke) 中(最终一致性,有延迟窗口) 高(集群创建时即固化)
OPA 部署位置 Hub 侧集中管控 + Spoke 侧本地执行 每个成员集群独立部署 Management Cluster 可选 + Workload Cluster 必装
策略更新效率 实时推送,秒级生效 依赖同步周期(通常 30s-5min) 需更新 ClusterResourceSet 或重新 Bootstrap
合规审计聚合 Hub 统一聚合 Status API 需额外开发聚合层 需结合外部工具(如 Velero + OPA)
运维复杂度 低(Hub 单点管控) 中(控制平面高可用要求高) 高(需管理 Infrastructure Provider)

3.6 选型建议

  • 优先选择 Hub-Spoke:如果你的核心诉求是 OPA 策略集中管控 + 多集群 Operator 合规发布,且已有稳定的大规模集群环境。本课程后续章节将基于 Hub-Spoke 架构(以 OCM 为例)展开 OPA 集成实践。
  • 考虑 Federation:当需要跨集群应用迁移、多区域服务发现且对策略实时性要求不高时,Federation 的最终一致性模型可以接受。
  • 考虑 Cluster API:当基础设施需要动态创建/销毁集群(如 CI/CD 环境、开发测试集群池),且希望将 OPA 策略作为集群“出厂设置”的一部分时,CAPI 是最佳选择。
课程路线提示: 第 4 章将深入 Hub-Spoke 架构的代表性实现——Open Cluster Management(OCM),并演示如何在其上部署 OPA Gatekeeper 实现跨集群 Operator 合规校验。