2. 核心概念:控制平面、数据平面、故障域、隔离边界、爆炸半径的定义与关系

在构建高可用 Kubernetes 集群时,理解控制平面与数据平面的分离、故障域的划分以及爆炸半径的控制是架构设计的基石。本节将系统定义这五个核心概念,并阐明它们之间的逻辑关系。

2.1 控制平面 (Control Plane) 与数据平面 (Data Plane)

Kubernetes 遵循典型的“控制-数据”分离架构。控制平面负责全局决策与状态管理,数据平面负责承载实际工作负载。

维度 控制平面 (Control Plane) 数据平面 (Data Plane)
核心职责 调度、API 响应、控制器循环、集群状态存储 运行容器化应用、处理网络流量、存储数据
关键组件 kube-apiserver, etcd, kube-scheduler, kube-controller-manager kubelet, kube-proxy, 容器运行时 (containerd), CNI 插件
故障影响 集群不可管理,但已有 Pod 可能继续运行 应用不可用,但控制平面仍可调度
隔离需求 极高,需跨故障域部署 中等,按租户或应用隔离
关键原则:控制平面故障不应导致数据平面应用中断;数据平面故障不应导致控制平面元数据丢失。这是故障域划分的首要目标。

2.2 故障域 (Fault Domain) 与隔离边界 (Isolation Boundary)

故障域 是指共享单一故障点的资源集合。例如:一台物理机、一个机架、一个可用区 (Availability Zone) 或一个数据中心。当该点失效时,域内所有组件同时受影响。

隔离边界 是人为划定的逻辑或物理界限,用于阻止故障跨域传播。隔离边界通常与故障域对齐,但也可以更细粒度(如 Namespace 级别的网络策略)。

  • 物理隔离边界:独立的电源、网络交换机、制冷系统。
  • 逻辑隔离边界:Kubernetes Namespace、RBAC 规则、NetworkPolicy、ResourceQuota。
  • 架构隔离边界:独立的 etcd 集群、独立的 API Server 实例组。

2.3 爆炸半径 (Blast Radius)

爆炸半径 衡量一个组件失效后,对系统其他部分造成影响的最大范围。控制平面隔离的核心目标就是 缩小爆炸半径。

爆炸半径公式(概念性):
爆炸半径 = 受影响的服务数 / 集群总服务数 × 100%
理想状态:单一控制平面组件故障,爆炸半径应趋近于 0%(仅影响管理面,不影响数据面)。

2.4 核心概念关系图

下图展示了控制平面、数据平面、故障域、隔离边界与爆炸半径之间的逻辑关系。控制平面组件跨多个故障域部署,每个故障域内部通过隔离边界限制故障传播,从而将爆炸半径控制在单个故障域内。

控制平面隔离与故障域关系图 控制平面隔离与故障域关系图 故障域 A (AZ-1) 故障域 B (AZ-2) 故障域 C (AZ-3) 控制平面节点 1 API Server / etcd 控制平面节点 2 API Server / etcd 控制平面节点 3 API Server / etcd 隔离边界 (物理/逻辑) 隔离边界 (物理/逻辑) 隔离边界 (物理/逻辑) 数据平面节点 1 kubelet / Pods 数据平面节点 2 kubelet / Pods 数据平面节点 3 kubelet / Pods 数据平面节点 4 kubelet / Pods 数据平面节点 5 kubelet / Pods 数据平面节点 6 kubelet / Pods 爆炸半径:仅限本故障域 爆炸半径:仅限本故障域 爆炸半径:仅限本故障域 图例: 控制平面 数据平面 隔离边界 爆炸半径 etcd 跨域共识 管理流量

2.5 概念关系总结

五个核心概念形成一条逻辑链:故障域 → 隔离边界 → 控制平面/数据平面分离 → 爆炸半径控制。

  • 故障域 是客观存在的物理或逻辑风险单元。
  • 隔离边界 是人为设计的防御措施,用于将故障域之间的影响隔断。
  • 控制平面与数据平面分离 是架构层面的隔离策略,确保管理面故障不影响数据面。
  • 爆炸半径 是衡量隔离效果的关键指标,理想情况下应限制在单个故障域内。
常见误区:仅将控制平面节点部署在不同物理机,但共享同一网络交换机或电源,实际上仍处于同一故障域。真正的隔离必须验证故障域边界是否覆盖所有共享资源。

2.6 隔离策略对比

隔离层级 实现方式 爆炸半径 复杂度
进程级 容器化、cgroup 限制 单个 Pod 低
节点级 独立物理机/虚拟机 单节点 中
机架级 独立电源、ToR 交换机 机架内所有节点 中高
可用区级 独立数据中心/区域 单可用区 高
区域级 跨地域多集群 单集群 极高

在实际架构验证中,我们通常将控制平面组件跨 至少 3 个可用区 部署,每个可用区内部通过 节点亲和性、Pod 反亲和性、拓扑分布约束 实现细粒度隔离,确保任意单一故障域失效时,爆炸半径不会扩散到整个集群。