2. Federation核心概念:KubeFed架构、联邦控制平面、类型配置
在深入多集群变更门禁与回滚策略之前,必须透彻理解KubeFed(Kubernetes Federation v2)的核心抽象。KubeFed并非简单地将多个集群“粘合”在一起,而是通过一套联邦控制平面(Federation Control Plane)和类型配置(Type Configuration)机制,将单集群的资源管理模型优雅地扩展到多集群环境。本节将拆解这三个核心支柱:架构分层、控制平面组件、以及Template/Placement/Override三元组。
2.1 KubeFed整体架构
KubeFed采用中心化控制平面 + 成员集群Agent的架构模式。联邦控制平面通常部署在“宿主集群”(Host Cluster)中,负责策略决策与资源分发;成员集群仅需运行一个轻量级的Federation Admission Webhook或kubefed-controller-manager的Agent组件,用于接收并执行联邦资源。
2.2 联邦控制平面核心组件
联邦控制平面由一组自定义控制器和API扩展组成,运行在宿主集群的Pod中。其核心职责包括:联邦资源定义(FTD)、调度决策、状态收集与传播控制。
| 组件 | 职责 | 与回滚策略的关联 |
|---|---|---|
| kubefed-controller-manager | 核心控制器,负责监听联邦资源变化、执行调度、调用成员集群API | 回滚时需暂停该控制器的同步循环,防止回滚操作被覆盖 |
| Federation API Server | 提供联邦资源的CRUD接口,存储联邦资源状态(etcd) | 回滚操作直接作用于Federation API的资源版本 |
| Scheduler | 根据Placement策略决定资源分发到哪些成员集群 | 回滚时需重新评估Placement,避免回滚到已下线的集群 |
| Status Collector | 从成员集群拉取资源状态,聚合后写回联邦资源Status | 回滚前需确认状态一致性,防止回滚后状态漂移 |
2.3 类型配置:Template / Placement / Override
KubeFed通过类型配置(Type Configuration)定义如何将一种Kubernetes资源(如Deployment、Service)联邦化。每个联邦资源由三个核心CRD对象组成,构成“联邦资源三元组”:
- Template(模板):定义资源的通用规格,即“想要什么”。它几乎等同于单集群的资源Spec,但允许使用变量占位符。
- Placement(放置策略):定义资源应该分发到哪些成员集群,即“放在哪里”。支持集群标签选择器、白名单/黑名单。
- Override(覆盖策略):定义针对特定集群的差异化配置,即“如何调整”。例如:集群A的副本数为3,集群B的副本数为5。
这三个对象通过FederatedTypeConfig(FTC)资源关联在一起。FTC告诉联邦控制平面:对于某种API类型(如v1/Deployment),其Template、Placement、Override分别对应哪个CRD。
2.4 类型配置在回滚场景中的关键作用
理解三元组对于设计回滚策略至关重要,因为回滚操作需要分别处理这三个维度:
| 回滚维度 | 操作对象 | 典型场景 |
|---|---|---|
| Template回滚 | FederatedDeployment.Spec.Template | 镜像版本回退、资源配置回退 |
| Placement回滚 | FederatedDeploymentPlacement.Spec | 误将流量分发到异常集群,需撤回分发 |
| Override回滚 | FederatedDeploymentOverride.Spec | 某集群的差异化配置导致故障,需恢复为默认值 |
2.5 联邦资源传播流程
当用户创建或更新一个联邦资源(如FederatedDeployment)时,联邦控制平面执行以下传播流程:
- 准入校验:Federation API Server校验Template、Placement、Override的合法性。
- 调度决策:Scheduler根据Placement策略,计算出目标集群列表。
- 模板渲染:对于每个目标集群,将Template与Override合并,生成最终的成员集群资源Spec。
- 分发执行:kubefed-controller-manager通过成员集群的API Server创建/更新资源。
- 状态聚合:Status Collector定期从成员集群拉取资源状态,写回联邦资源的Status字段。
2.6 小结:核心概念与回滚策略的映射
本节的核心概念为后续章节奠定了理论基础。下表总结了每个概念在回滚策略设计中的直接映射:
| 核心概念 | 回滚策略设计中的角色 |
|---|---|
| 联邦控制平面 | 回滚操作的执行者与状态管理者;需保证自身高可用与数据持久化 |
| Template | 回滚的“基准线”,定义全局期望状态 |
| Placement | 回滚的“范围控制”,决定哪些集群参与回滚 |
| Override | 回滚的“差异化处理”,处理集群级例外 |
| FederatedTypeConfig | 回滚策略的“配置元数据”,决定哪些资源类型支持回滚 |