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%(仅影响管理面,不影响数据面)。
爆炸半径 = 受影响的服务数 / 集群总服务数 × 100%
理想状态:单一控制平面组件故障,爆炸半径应趋近于 0%(仅影响管理面,不影响数据面)。
2.4 核心概念关系图
下图展示了控制平面、数据平面、故障域、隔离边界与爆炸半径之间的逻辑关系。控制平面组件跨多个故障域部署,每个故障域内部通过隔离边界限制故障传播,从而将爆炸半径控制在单个故障域内。
2.5 概念关系总结
五个核心概念形成一条逻辑链:故障域 → 隔离边界 → 控制平面/数据平面分离 → 爆炸半径控制。
- 故障域 是客观存在的物理或逻辑风险单元。
- 隔离边界 是人为设计的防御措施,用于将故障域之间的影响隔断。
- 控制平面与数据平面分离 是架构层面的隔离策略,确保管理面故障不影响数据面。
- 爆炸半径 是衡量隔离效果的关键指标,理想情况下应限制在单个故障域内。
常见误区:仅将控制平面节点部署在不同物理机,但共享同一网络交换机或电源,实际上仍处于同一故障域。真正的隔离必须验证故障域边界是否覆盖所有共享资源。
2.6 隔离策略对比
| 隔离层级 | 实现方式 | 爆炸半径 | 复杂度 |
|---|---|---|---|
| 进程级 | 容器化、cgroup 限制 | 单个 Pod | 低 |
| 节点级 | 独立物理机/虚拟机 | 单节点 | 中 |
| 机架级 | 独立电源、ToR 交换机 | 机架内所有节点 | 中高 |
| 可用区级 | 独立数据中心/区域 | 单可用区 | 高 |
| 区域级 | 跨地域多集群 | 单集群 | 极高 |
在实际架构验证中,我们通常将控制平面组件跨 至少 3 个可用区 部署,每个可用区内部通过 节点亲和性、Pod 反亲和性、拓扑分布约束 实现细粒度隔离,确保任意单一故障域失效时,爆炸半径不会扩散到整个集群。