4. 多集群架构概览:联邦集群、Hub-Spoke 架构、etcd 多集群部署模式、数据同步挑战

在生产环境中,单一 Kubernetes 集群存在规模上限、故障域集中、环境隔离不足等局限。多集群架构通过将工作负载分散到多个集群,实现更高的可用性、资源隔离与运维灵活性。本章从架构模式、etcd 部署形态及数据同步三个维度,梳理多集群管理的核心概念,为后续压测沙盘中的 PVC 一致性复核奠定架构认知基础。

4.1 联邦集群架构(Federation)

联邦集群(KubeFed / Federation v2)是最早的多集群管理方案之一,其核心思想是“通过一个控制面统一管理多个成员集群”。联邦控制面负责将资源模板(如 Deployment、Service)同步到所有成员集群,并支持跨集群的 DNS 与服务发现。

关键特征:
  • 资源模板化:定义 FederatedDeployment、FederatedService 等 CRD,控制面自动分发到成员集群。
  • 跨集群调度:支持基于标签的集群选择器,实现灰度发布或地域亲和。
  • 状态回写:成员集群的资源状态会聚合回联邦控制面,形成全局视图。
适用场景:多区域部署、跨云灾备、统一策略管理。但联邦架构在 etcd 层面仍为每个集群独立存储,联邦控制面本身也需要 etcd 集群,增加了运维复杂度。
联邦集群架构示意 联邦控制面 KubeFed API + etcd 成员集群 A etcd 实例 A 成员集群 B etcd 实例 B 成员集群 C etcd 实例 C 联邦控制面通过 API 将资源模板同步到各成员集群,每个集群保留独立 etcd 存储 PVC 一致性复核需跨 etcd 实例比对 PV/PVC 绑定关系

4.2 Hub-Spoke 架构

Hub-Spoke 是目前最主流的多集群管理模型。一个中心集群(Hub)作为管理入口,多个工作集群(Spoke)通过 Agent 与 Hub 通信。Hub 不直接运行用户工作负载,而是负责策略下发、资源分发与状态聚合。

角色 职责 etcd 部署
Hub 集群 管理面:存储全局资源、策略、成员集群元数据 独立 etcd 集群,存储 CRD 与状态聚合数据
Spoke 集群 数据面:运行实际工作负载(Pod、PVC、Service) 每个 Spoke 拥有独立 etcd,存储本集群资源
Agent(如 Open Cluster Management) 注册、心跳、资源同步、状态上报 不直接操作 etcd,通过 kube-apiserver 通信
PVC 一致性风险:在 Hub-Spoke 架构中,PVC 的创建与绑定发生在 Spoke 集群的 etcd 中,而 Hub 集群仅存储资源模板或策略。当 Spoke 集群发生 etcd 故障或数据不一致时,Hub 无法直接感知底层 PV/PVC 绑定状态,必须通过 Agent 上报或主动巡检来复核。
Hub-Spoke 多集群架构 Hub 集群 管理面 etcd Spoke 集群 A etcd A PVC/PV 绑定 Spoke 集群 B etcd B PVC/PV 绑定 Spoke 集群 C etcd C PVC/PV 绑定 Agent A Agent B Agent C Hub 通过 Agent 管理 Spoke 集群,Spoke 集群各自拥有独立 etcd 存储 PVC/PV 绑定状态 压测沙盘需模拟 Agent 上报延迟或丢失场景,验证 PVC 一致性复核机制

4.3 etcd 多集群部署模式

在多集群环境中,etcd 的部署模式直接影响数据一致性与运维复杂度。以下是三种常见模式:

  • 独立 etcd 集群(每个集群一套):最常用模式,每个 Kubernetes 集群拥有独立的 etcd 成员。隔离性好,故障域最小,但跨集群数据无法直接查询,PVC 复核需逐个访问 etcd 端点。
  • 共享 etcd 集群(多集群共用):多个 Kubernetes 集群共享同一套 etcd 集群,通过不同前缀(如 /registry/cluster1/、/registry/cluster2/)隔离。节省资源,但存在单点故障风险,且 etcd 写入压力集中。
  • 跨地域 etcd 集群(Geo-Distributed):etcd 成员分布在多个数据中心,通过 Raft 协议保持强一致。适用于全球部署场景,但网络延迟会影响写入性能,且跨地域 etcd 运维复杂度极高。
部署模式 隔离性 一致性 运维复杂度 PVC 复核影响
独立 etcd 集群 高 强(单集群内) 中 需逐个连接 etcd 端点
共享 etcd 集群 中(前缀隔离) 强(全局) 低 单点查询,但需注意 key 冲突
跨地域 etcd 集群 中 强(Raft 跨地域) 高 网络分区可能导致数据不一致

4.4 数据同步挑战

多集群架构的核心矛盾在于“数据一致性”与“网络分区容忍性”之间的权衡。在 PVC 一致性复核场景中,以下挑战尤为突出:

四大同步挑战:
  1. 跨集群 etcd 数据不一致:由于网络延迟、Agent 故障或 etcd 快照差异,同一 PVC 在不同集群的 etcd 中可能呈现不同的绑定状态(如 PV 已绑定 vs PV 未绑定)。
  2. 资源版本冲突:多集群同时修改同一 PVC 的注解或标签时,可能导致 etcd 中的 resourceVersion 冲突,引发更新失败或数据覆盖。
  3. 存储后端状态漂移:PV 对应的存储后端(如 Ceph RBD、NFS)可能因运维操作导致实际状态与 etcd 记录不符,多集群环境下这种漂移更难追踪。
  4. 级联删除与孤儿资源:当 Spoke 集群被删除或重建时,其 etcd 中的 PVC/PV 记录可能未正确清理,导致 Hub 集群中的资源模板与实际存储后端产生孤儿资源。
压测沙盘设计启示:在后续章节中,我们将通过模拟 etcd 节点故障、网络分区、Agent 心跳超时等场景,构造上述数据同步挑战,并验证 PVC 一致性复核脚本能否准确检测出不一致状态。沙盘中的每个 Spoke 集群都将运行独立的 etcd 实例,以便精确控制故障注入范围。