4. Velero 全量备份实战:创建第一个全量备份

全量备份是 Velero 最基础也是最核心的功能。本章将带领你完成第一个全量备份任务:备份指定 Namespace 下的 Deployment 与 ConfigMap,并掌握查看备份日志的方法。通过本实战,你将建立对 Velero 备份流程的完整认知。

4.1 备份前的环境检查

在执行备份前,请确认以下环境状态:

检查项 验证命令 预期结果
Velero 安装状态 velero version 显示 Client 与 Server 版本号
存储插件就绪 velero plugin list 列出已安装的存储插件(如 AWS、Azure、GCP)
目标 Namespace 存在 kubectl get ns <namespace> Namespace 状态为 Active
目标资源存在 kubectl get deploy,cm -n <namespace> 至少存在一个 Deployment 和一个 ConfigMap
建议: 在生产环境执行备份前,先在测试 Namespace 中创建一组示例 Deployment 和 ConfigMap,确保备份流程可验证。

4.2 创建第一个全量备份

使用 velero backup create 命令创建全量备份。以下命令将备份 production Namespace 下的所有 Deployment 和 ConfigMap:

velero backup create first-full-backup \
  --include-namespaces production \
  --include-resources deployments,configmaps \
  --ttl 72h0m0s \
  --default-volumes-to-restic

参数说明:

  • first-full-backup:备份名称,需全局唯一
  • --include-namespaces:指定备份的 Namespace
  • --include-resources:指定备份的资源类型,多个资源用逗号分隔
  • --ttl:备份保留时间,超过此时间后 Velero 会自动清理
  • --default-volumes-to-restic:启用 Restic 进行卷备份(可选)
注意: 如果未指定 --include-resources,Velero 会备份指定 Namespace 下的所有资源(包括 Service、Pod、Secret 等)。建议首次备份时明确指定资源范围,避免数据量过大。

4.3 备份流程可视化

下图展示了 Velero 全量备份的完整执行流程:

Velero 全量备份执行流程 用户发起备份命令 Velero API Server 接收 查询 Kubernetes API 获取资源清单 备份数据写入对象存储 关键依赖 • 对象存储(S3/GCS/Azure) • 存储插件(Velero Plugin) • Kubernetes API 可访问

4.4 查看备份状态与日志

备份创建后,使用以下命令查看备份状态:

velero backup describe first-full-backup --details

输出示例:

Name:         first-full-backup
Namespace:    velero
Labels:       velero.io/storage-location=default
Annotations:  velero.io/source-cluster-k8s-gitversion=v1.27.3

Phase:  Completed

Namespaces:
  Included:  production
  Excluded:  <none>

Resources:
  Included:        deployments, configmaps
  Excluded:        <none>
  Cluster-scoped:  auto

Hooks:  <none>

Backup Format Version:  1.1.0

Started:    2025-01-15 10:00:00 +0800 CST
Completed:  2025-01-15 10:00:12 +0800 CST

Expiration:  2025-01-18 10:00:00 +0800 CST

Total items to be backed up:  12
Items backed up:              12

Velero-Native Snapshots:  <none included>

关键字段解读:

字段 含义 常见状态
Phase 备份当前阶段 Completed / Failed / InProgress
Items backed up 实际备份的资源数量 应与 Total items 一致
Errors 备份过程中的错误数 0 表示成功
Warnings 备份过程中的警告数 非 0 时需关注

4.5 查看详细备份日志

当备份状态为 Failed 或需要排查细节时,查看日志是首要手段:

velero backup logs first-full-backup

日志输出示例:

time="2025-01-15T10:00:01+08:00" level=info msg="Starting backup" backup=velero/first-full-backup
time="2025-01-15T10:00:02+08:00" level=info msg="Getting client for backup" backup=velero/first-full-backup
time="2025-01-15T10:00:03+08:00" level=info msg="Backing up resources" backup=velero/first-full-backup
time="2025-01-15T10:00:05+08:00" level=info msg="Backed up 5 items" backup=velero/first-full-backup progress=5/12
time="2025-01-15T10:00:08+08:00" level=info msg="Backed up 10 items" backup=velero/first-full-backup progress=10/12
time="2025-01-15T10:00:10+08:00" level=info msg="Backed up 12 items" backup=velero/first-full-backup progress=12/12
time="2025-01-15T10:00:12+08:00" level=info msg="Backup completed" backup=velero/first-full-backup
日志分析技巧:
  • 搜索 level=error 快速定位失败原因
  • 搜索 level=warning 查看资源跳过或权限不足的提示
  • 关注 progress 字段,确认备份进度是否正常推进
  • 如果日志中大量出现 context deadline exceeded,可能是网络或存储超时

4.6 验证备份完整性

备份完成后,建议通过以下方式验证备份数据是否完整:

  1. 检查备份文件列表: 直接查看对象存储中备份目录的文件结构
  2. 使用 velero backup describe: 确认 Items backed up 与预期一致
  3. 模拟恢复测试: 在测试集群中执行 velero restore create --from-backup first-full-backup 验证恢复结果

以下命令可直接查看备份在对象存储中的文件清单:

velero backup describe first-full-backup --details | grep -A 20 "Resource List"

4.7 常见问题与排查

问题现象 可能原因 解决方案
备份 Phase 为 Failed 存储插件未正确配置 检查 velero plugin list 和存储凭证
备份进度卡在 0% Kubernetes API 不可达 检查 kubeconfig 和集群状态
备份完成但 Items 为 0 资源类型或 Namespace 名称错误 确认 --include-resources 和 --include-namespaces 参数
日志显示权限错误 Velero ServiceAccount 缺少 RBAC 权限 检查 Velero 的 ClusterRole 和 RoleBinding
最佳实践: 建议将备份命令写入 Shell 脚本或 CI/CD 流水线,并添加备份完成后的自动验证步骤。例如:备份完成后自动执行 velero backup describe 检查 Phase 是否为 Completed。

4.8 备份资源关系图

下图展示了备份过程中涉及的组件与数据流向:

全量备份组件关系与数据流向 用户 / CI/CD Velero Client Velero Server K8s API 对象存储 (S3/GCS) 数据流说明 ① 用户发起备份请求 ② Velero 查询 K8s API ③ 备份数据写入对象存储

通过以上实战,你已经掌握了 Velero 全量备份的完整操作流程。从环境检查、备份创建、状态查看到日志分析,每一步都是后续增量备份和蓝绿发布回滚策略的基础。请务必在测试环境中反复练习,直到能够熟练解读备份日志中的关键信息。