1. 灾备概述
1.1 灾备的定义
灾备(Disaster Recovery, DR)是指为应对自然灾难、硬件故障、网络攻击、人为误操作等突发事件,通过预先建立的技术体系、数据备份策略、备用站点和切换流程,在灾难发生后能够恢复关键业务系统运行并保护数据完整性的一系列机制与措施。灾备的核心目标可概括为两个关键指标:
- 恢复时间目标(RTO, Recovery Time Objective):业务系统从中断到恢复可用所允许的最大时间。
- 恢复点目标(RPO, Recovery Point Objective):灾难发生时允许丢失的最大数据量(以时间跨度衡量)。
关键理解:灾备不是简单的数据备份,而是包含数据保护、备用基础设施、切换流程、人员组织和定期演练在内的完整体系。在云原生环境中,灾备还需考虑容器状态、持久卷快照、服务网格配置、Kubernetes 资源对象等新型资产。
1.2 灾备等级标准(SHARE 78)
SHARE 78 是由国际计算机用户组织 SHARE 于 20 世纪 90 年代提出的灾备等级分类标准,将灾备方案划分为 7 个层级(Tier 0 ~ Tier 6),至今仍是企业灾备规划的重要参考框架。各层级在 RTO、RPO、数据一致性、站点距离、切换自动化程度等方面存在显著差异:
| 层级 | 名称 | 典型 RTO | 典型 RPO | 数据保护方式 | 站点要求 |
|---|---|---|---|---|---|
| Tier 0 | 无灾备 | 无限制 | 无限制 | 无 | 无 |
| Tier 1 | 磁带备份/异地存放 | 数天~数周 | 24 小时~数天 | 定期磁带备份,异地存储 | 异地库房 |
| Tier 2 | 备份+热备中心 | 数天 | 24 小时 | 备份介质运至热备中心 | 热备中心 |
| Tier 3 | 电子链路传输 | 12~24 小时 | 数小时 | 电子链路批量传输备份 | 专用灾备中心 |
| Tier 4 | 快照/在线磁盘镜像 | 4~12 小时 | 15 分钟~1 小时 | 在线磁盘镜像+快照 | 专用灾备中心 |
| Tier 5 | 两站点双活/事务一致性 | 1~4 小时 | 秒级~15 分钟 | 同步/异步复制+事务一致性 | 双活数据中心 |
| Tier 6 | 零数据丢失/自动切换 | 分钟级 | 零丢失 | 同步复制+自动故障转移 | 两地三中心 |
云原生视角:在 Kubernetes 环境中,SHARE 78 的 Tier 4~Tier 6 可通过 CSI 快照、Velero 备份、跨集群联邦、服务网格流量切换等机制实现。Kyverno 准入策略可在 Pod 创建、PVC 挂载、Namespace 配置等环节强制校验灾备合规性,例如要求所有工作负载必须声明
backup.velero.io/schedule 注解。
1.3 灾备与高可用的区别
灾备(Disaster Recovery)与高可用(High Availability, HA)是保障业务连续性的两个重要手段,但二者在目标、范围、切换粒度、数据一致性要求和成本上存在本质区别。混淆二者是灾备规划中常见的误区。
| 对比维度 | 高可用(HA) | 灾备(DR) |
|---|---|---|
| 核心目标 | 消除单点故障,保障服务持续可用 | 灾难发生后恢复业务和数据 |
| 应对场景 | 硬件故障、进程崩溃、网络抖动 | 自然灾害、机房级故障、勒索软件 |
| 切换粒度 | 节点/实例级(秒级~分钟级) | 站点/集群级(分钟级~小时级) |
| RTO 要求 | 秒级~分钟级 | 分钟级~天级(视等级而定) |
| RPO 要求 | 零丢失或接近零丢失 | 秒级~天级(视等级而定) |
| 数据复制方式 | 同步复制(强一致性) | 同步/异步/批量传输 |
| 站点距离 | 通常同机房或同城 | 异地(>100km 常见) |
| 典型实现 | K8s 多副本、HPA、PodAntiAffinity | Velero 备份、跨集群恢复、CSI 快照 |
| 成本 | 相对较低(冗余资源) | 较高(独立站点+网络+存储) |
常见误区:很多团队认为在 Kubernetes 中部署了 3 副本 Deployment 并配置了 HPA 就实现了“灾备”。实际上,这仅解决了高可用问题。如果整个集群所在机房因火灾或电力故障而瘫痪,所有副本同时失效,此时必须依赖灾备方案(如跨集群备份恢复)才能恢复业务。
1.4 灾备在云原生环境中的新挑战
传统灾备方案主要面向物理机或虚拟机,而云原生架构引入了容器、编排系统、声明式 API、不可变基础设施等新范式,给灾备带来了以下独特挑战:
- 有状态工作负载的备份一致性:StatefulSet、PVC、数据库容器需要保证文件系统与内存状态的一致性快照。
- Kubernetes 资源对象的版本依赖:备份的 CRD、RBAC、ConfigMap 等资源在恢复时需匹配目标集群的 API 版本。
- 多集群拓扑与网络策略:跨集群恢复时需重新配置 CNI、Ingress、Service Mesh 等网络组件。
- 灾备策略的自动化与合规校验:如何确保每个 Namespace、每个工作负载都满足灾备要求?这正是 Kyverno 准入策略的切入点。
课程定位:本课程后续章节将深入讲解如何利用 Kyverno 的 MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook,在 Pod、PVC、Namespace 等资源创建或更新时自动注入灾备注解、校验备份调度配置、强制跨集群资源标签规范,从而实现规则驱动的灾备准入策略。