1. Velero概述

1.1 Velero 是什么

Velero(原 Heptio Ark)是一个开源的 Kubernetes 集群备份、恢复与迁移工具,由 VMware 维护并捐赠给 CNCF 成为沙箱项目。它允许用户以声明式方式对 Kubernetes 集群中的资源对象(Pod、Deployment、Service、ConfigMap 等)以及持久卷(PersistentVolume)中的数据进行安全备份,并在需要时快速恢复或迁移到其他集群。

Velero 的核心设计理念是“以 Kubernetes 的方式管理 Kubernetes”——它本身以 Deployment 形式运行在集群内,通过 CRD(Custom Resource Definition)定义备份/恢复/调度等操作,所有操作记录均以 Kubernetes 原生资源存储,天然适配 GitOps 与自动化运维流程。

关键特性:Velero 不依赖特定存储后端,支持 AWS S3、Azure Blob、GCP GCS、MinIO、Ceph RGW 等对象存储,也支持本地文件系统(通过 VolumeSnapshotLocation 扩展)。

1.2 Velero 的核心功能

Velero 提供三大核心功能:备份(Backup)、恢复(Restore) 和 迁移(Migration)。下表从操作对象、使用场景、关键参数三个维度进行对比:

功能 操作对象 典型场景 关键参数
备份 Kubernetes 资源 + PV 数据快照 定期灾备、版本快照、变更前快照 --include-namespaces、--exclude-resources、--ttl
恢复 从备份存储中还原资源与数据 集群故障恢复、误删除恢复、回滚 --namespace-mappings、--restore-volumes
迁移 跨集群复制资源与数据 集群升级、环境迁移、多集群同步 结合 --include-namespaces + 目标集群 Restore

备份(Backup)

  • 资源备份:将指定命名空间或集群范围的 Kubernetes 资源(YAML 清单)上传至对象存储。
  • 数据备份:通过 CSI 快照或内置 VolumeSnapshotter 接口,对 PersistentVolumeClaim 对应的存储卷创建快照。
  • 调度备份:通过 Schedule CRD 实现 Cron 表达式定时备份,支持保留策略(TTL)。

恢复(Restore)

  • 全量恢复:从备份中还原所有资源与数据,保持原始命名空间或映射到新命名空间。
  • 选择性恢复:通过 --include-resources 或 --exclude-resources 过滤恢复对象。
  • 冲突处理:支持 --existing-resource-policy 参数(none/update/delete)控制已有资源处理方式。

迁移(Migration)

  • 跨集群迁移:在源集群执行备份,在目标集群执行恢复,实现集群间资源与数据的完整迁移。
  • 存储类转换:恢复时可通过 --storage-class-mappings 将源集群的 StorageClass 映射为目标集群的 StorageClass。
  • 命名空间重映射:支持 --namespace-mappings 将资源从一个命名空间迁移到另一个命名空间。
实战要点:迁移场景中,Velero 不负责网络层(如 Service 的 LoadBalancer IP)和 DNS 记录的迁移,这些需要结合外部工具或手动调整。

1.3 Velero 在 Kubernetes 灾备中的定位

在 Kubernetes 灾备体系中,Velero 主要承担应用层灾备与数据层灾备的衔接角色。它与基础设施层(存储、网络、计算)的灾备方案形成互补,而非替代。以下表格展示了 Velero 在灾备体系中的具体定位:

灾备层级 典型工具/方案 Velero 的角色
基础设施层 VMware HA、AWS AZ、GCP Region 不涉及,依赖云平台或虚拟化层
存储层 存储阵列快照、Ceph RBD 镜像 通过 VolumeSnapshotLocation 调用存储快照
Kubernetes 资源层 etcd 备份、Velero 备份/恢复所有 Kubernetes 资源对象
应用数据层 Velero + CSI 快照、Velero + Restic 备份/恢复 PVC 数据(文件级或块级)
配置与策略层 GitOps(ArgoCD/Flux)、Velero Schedule 提供定时备份与保留策略,与 GitOps 互补

Velero 的灾备定位可以概括为以下三个关键点:

  1. 应用一致性备份:Velero 支持备份前/后 Hook(如冻结数据库、Flush 缓存),确保备份数据处于应用一致状态。
  2. 细粒度恢复:支持按命名空间、资源类型、标签选择器进行恢复,避免全量恢复带来的风险。
  3. 跨版本兼容:Velero 持续跟踪 Kubernetes API 版本变更,备份时记录资源 API 版本,恢复时自动适配目标集群的 API 版本。
注意:Velero 不备份 etcd 数据本身,也不备份节点级别的操作系统或 kubelet 配置。etcd 备份应使用 etcd 快照工具(如 etcdctl snapshot save)独立完成。
Velero 核心功能架构图 Velero 备份 (Backup) 资源 + PV 快照 + 调度 恢复 (Restore) 全量 / 选择性 / 映射 迁移 (Migration) 跨集群 / 存储类转换 对象存储 CSI 快照 Restic 文件级 Hook 机制 说明:Velero 通过 CRD 定义备份/恢复/调度操作,底层依赖对象存储与存储快照接口实现数据持久化

1.4 Velero 在存储变更与门禁权限审计中的价值

本课程《Velero Kubernetes 存储变更与门禁权限审计实战》将 Velero 作为核心工具,围绕以下三个维度展开:

  • 存储变更审计:通过 Velero 的备份记录(Backup CR)和存储位置(BackupStorageLocation)变更日志,追踪 PV/PVC 的创建、删除、扩容、存储类切换等操作。
  • 门禁权限控制:利用 Velero 的 RBAC 资源备份与恢复能力,验证 Kubernetes RBAC 规则变更前后的权限差异,辅助门禁策略的合规审计。
  • 灾备合规验证:通过 Velero 的恢复演练,验证备份数据的完整性与可恢复性,满足金融、医疗等行业的灾备合规要求。
课程前置知识:建议学员具备 Kubernetes 基础操作能力(kubectl、YAML 编写)、了解对象存储基本概念、熟悉 Linux 命令行。本课程将提供完整的实验环境搭建指南。