3. 控制平面灾备准入定义

3.1 什么是控制平面灾备准入

控制平面灾备准入(Control Plane Disaster Recovery Admission)是指在 Kubernetes 集群的 控制平面组件(如 kube-apiserver、etcd、controller-manager、scheduler)发生故障或数据丢失时,通过预定义的策略和机制,在备份恢复操作执行之前对资源、配置、依赖关系进行验证与拦截的一套规则体系。它位于灾备流程的入口层,确保只有符合集群一致性要求的备份和恢复请求才能被允许执行。

核心定义:准入是灾备操作的第一道防线,在 Velero 备份或恢复请求到达实际存储或 API 操作之前,对请求内容进行合法性、完整性和安全性的校验。

控制平面灾备准入包含三个关键维度:

  • 资源准入:验证备份或恢复的资源对象是否属于控制平面核心组件(如 Namespace、ClusterRole、CRD)。
  • 状态准入:检查集群当前状态是否允许执行灾备操作(如 etcd 是否健康、API Server 是否可写)。
  • 策略准入:根据预定义的灾备策略(如备份频率、保留周期、恢复优先级)对请求进行过滤或标记。
控制平面灾备准入概念架构 kube-apiserver etcd controller-manager scheduler 灾备准入层 资源准入 状态准入 策略准入 依赖关系校验 一致性检查 Velero 备份请求 Velero 恢复请求 备份存储(S3/MinIO) 准入层位于控制平面组件与 Velero 操作之间,拦截并校验所有灾备请求 只有通过准入校验的请求才会被转发到备份存储或执行恢复操作

3.2 为什么需要准入控制

在 Kubernetes 灾备场景中,缺乏准入控制会导致以下严重问题:

风险类别 具体问题 后果
数据不一致 备份了部分资源但遗漏了依赖的 CRD 或 RBAC 配置 恢复后集群无法正常工作,资源引用断裂
版本冲突 恢复的资源版本与目标集群 API 版本不兼容 API Server 拒绝写入,恢复失败
安全漏洞 备份中包含敏感 Secret 或 ServiceAccount 令牌 数据泄露,权限滥用
资源冲突 恢复的资源与现有资源同名或同 UID 资源覆盖或冲突,集群状态异常
存储溢出 无限制的备份请求导致存储空间耗尽 备份失败,影响其他业务
关键认知:没有准入控制的灾备系统,本质上是一个“盲操作”系统。Velero 虽然提供了基础的备份恢复能力,但无法自动识别控制平面特有的依赖关系和一致性约束。准入控制正是弥补这一缺陷的核心机制。

准入控制带来的核心价值:

  • 预防性保护:在灾备操作执行前拦截错误,避免“先破坏再修复”的被动模式。
  • 一致性保障:确保备份集和恢复集在逻辑上完整,满足控制平面组件的依赖关系。
  • 策略执行:将灾备策略(如备份保留周期、恢复优先级)固化为可执行的准入规则。
  • 审计与合规:记录所有准入决策,为灾备审计提供可追溯的证据链。

3.3 准入策略在灾备中的角色

准入策略在控制平面灾备中扮演 策略执行引擎 的角色,它将抽象的灾备需求转化为具体的、可执行的规则。以下是准入策略在灾备全生命周期中的具体角色:

准入策略在灾备中的角色 备份前准入 • 资源范围校验 • 依赖完整性检查 • 备份策略匹配 • 存储配额验证 备份中准入 • 实时状态监控 • 资源变更拦截 • 一致性快照校验 • 错误回滚触发 恢复前准入 • 目标集群兼容性 • 资源冲突检测 • 恢复优先级排序 • 安全策略检查 恢复后准入 • 资源状态验证 • 依赖关系重建 • 一致性审计报告 • 策略合规检查 持续审计准入 • 备份集完整性扫描 • 策略违规告警 • 定期合规报告 • 准入规则更新

准入策略在灾备中的具体角色可归纳为以下五个核心职能:

角色 职责描述 典型策略示例
过滤器 根据资源类型、标签、命名空间等属性,决定哪些资源可以进入备份或恢复流程 仅备份带有 backup=true 标签的 Namespace
校验器 检查资源的结构完整性、版本兼容性、依赖关系是否满足 备份 CRD 时必须同时备份对应的 CR 实例
策略执行器 将灾备策略(如保留周期、备份频率、存储位置)固化为准入规则 超过 7 天的备份集不允许恢复
安关 防止敏感数据泄露、权限滥用、恶意操作 禁止备份包含 kube-system 中的 Secret
审计记录器 记录所有准入决策,生成可追溯的审计日志 每次准入决策记录时间、操作人、资源、结果
实践建议:在 Velero 环境中,准入策略可以通过 Admission Webhook(MutatingWebhookConfiguration / ValidatingWebhookConfiguration)或 Velero 插件机制 实现。推荐优先使用 ValidatingWebhook 进行资源校验,使用 MutatingWebhook 进行策略注入(如自动添加备份标签)。

准入策略与控制平面灾备的关系可以用以下公式概括:

灾备可靠性 = 备份工具能力 × 准入策略覆盖率 × 策略执行一致性
其中,准入策略覆盖率决定了灾备系统能够拦截多少潜在风险,策略执行一致性决定了准入规则是否被稳定、无偏差地执行。