1. 课程导论:云原生灾备的重要性、Velero在K8s生态中的定位、准入策略评审与审计日志的价值
1.1 云原生灾备:从“可选”到“必选”
在Kubernetes成为企业级应用运行标准平台的今天,云原生灾备已不再是锦上添花的运维工具,而是保障业务连续性的核心基础设施。传统灾备方案(如基于虚拟机的快照与复制)在面对Kubernetes动态、声明式、有状态的应用架构时,暴露出明显的短板:无法感知工作负载的依赖关系、难以捕获CRD(Custom Resource Definition)与ConfigMap等元数据、对持久卷的备份缺乏应用一致性。
云原生环境下的灾备需求呈现三大特征:
- 资源多样性:需要备份的不仅是Pod与Deployment,还包括PVC、Service、Ingress、CRD、RBAC配置等数十种资源类型。
- 状态一致性:有状态应用(数据库、消息队列)要求备份点能够保证崩溃一致性或应用一致性,而非简单的文件级拷贝。
- 跨集群迁移:灾备场景往往涉及从生产集群到灾备集群的完整应用迁移,要求备份数据具备环境无关性。
1.2 Velero在K8s生态中的定位
Velero(原Heptio Ark)是VMware开源的Kubernetes集群备份与迁移工具,已成为CNCF沙箱项目。它在K8s生态中的定位可以概括为:Kubernetes原生灾备引擎。Velero不依赖底层存储的具体实现,而是通过插件机制对接各类对象存储(AWS S3、GCS、Azure Blob、MinIO等)与卷快照接口(CSI、Restic、Kopia)。
Velero的核心能力矩阵如下:
| 能力维度 | 具体功能 | 对应K8s原生组件 |
|---|---|---|
| 资源备份 | 备份Kubernetes API对象(YAML清单) | kubectl get --export(已废弃) |
| 卷备份 | 通过CSI快照或文件级备份(Restic/Kopia)备份PVC数据 | VolumeSnapshot(CSI) |
| 调度备份 | 支持Cron表达式定时备份 | CronJob(需自行编排) |
| 跨集群迁移 | 将备份恢复到不同集群,支持资源映射与转换 | 无原生等价物 |
| 灾备演练 | 在不影响生产集群的前提下验证恢复流程 | 无原生等价物 |
Velero的架构设计遵循Kubernetes Operator模式,通过自定义资源(Backup、Restore、Schedule、DownloadRequest等)驱动备份与恢复流程。其核心组件包括:
- Velero Server:运行在集群内的Deployment,监听CRD事件并执行备份/恢复操作。
- Velero CLI:客户端工具,用于手动触发备份、查看状态、调试。
- 插件系统:Object Store Plugin(对接存储后端)、Volume Snapshotter Plugin(对接卷快照)、Restic/Kopia(文件级备份)。
1.3 准入策略评审:灾备安全的“守门员”
在Kubernetes安全体系中,准入控制(Admission Control)是API请求到达etcd之前的最后一道防线。Velero作为拥有集群级权限的组件(通常需要ClusterRole绑定),其备份与恢复操作如果缺乏准入策略约束,可能带来严重的安全风险:
- 权限越界:Velero ServiceAccount可能被用于读取不应备份的敏感资源(如Secrets、ServiceAccount )。
- 数据泄露:备份数据若未加密或存储位置不受控,可能导致敏感数据外泄。
- 恢复污染:恶意或错误的恢复操作可能覆盖生产集群的关键配置。
准入策略评审的核心价值在于:在Velero执行备份/恢复操作之前,通过策略引擎(如OPA/Gatekeeper、Kyverno)验证操作是否符合预定义的安全基线。评审维度包括:
| 评审维度 | 策略示例 | 违反后果 |
|---|---|---|
| 资源边界 | 禁止备份包含“kube-system”命名空间的资源 | 拒绝备份请求 |
| 标签约束 | 只允许备份带有“backup-allowed: true”标签的命名空间 | 拒绝备份请求 |
| 存储位置 | 备份目标Bucket必须属于指定Region | 拒绝备份请求 |
| 加密要求 | 备份必须启用服务端加密(SSE-S3或KMS) | 拒绝备份请求 |
| 恢复目标 | 禁止恢复到非灾备集群的命名空间 | 拒绝恢复请求 |
1.4 审计日志:灾备操作的“黑匣子”
审计日志是云原生灾备体系中不可或缺的组成部分。Velero本身会生成操作日志(通过velero backup logs查看),但企业级灾备场景需要更全面的审计覆盖:
- Kubernetes API审计日志:记录谁在什么时间通过Velero创建了Backup CRD对象。
- Velero操作日志:记录备份/恢复过程中每个步骤的执行结果与耗时。
- 存储访问日志:记录Velero对对象存储的读写操作。
- 准入策略评估日志:记录策略引擎对Velero请求的评估结果(允许/拒绝/警告)。
审计日志的价值体现在三个层面:
- 安全取证:当发生数据泄露或误操作时,通过审计日志还原事件全貌。
- 合规审计:满足监管机构对灾备演练、数据恢复的审计要求。
- 运维排障:通过日志分析备份失败的根本原因(如权限不足、存储超时)。
1.5 课程核心脉络
本课程将围绕“资源边界”与“审计日志”两条主线,系统讲解如何利用Velero构建符合企业安全标准的云原生灾备体系:
- 资源边界:定义Velero可操作的命名空间、资源类型、存储位置,通过RBAC与准入策略实现最小权限原则。
- 审计日志:设计多层级审计日志采集方案,实现灾备操作的全链路可追溯。