首页/数据/备份与容灾速查/Velero 备份 Kubernetes 资源

Velero 备份 Kubernetes 资源

Kubernetes 备份恢复工具:按命名空间或资源类型备份 API 对象(含 Secret/PV 快照),支持恢复到本集群或新集群。

备份与容灾速查数据更新于 2026-10-13

Velero 是什么

Velero 是 Kubernetes 的备份恢复工具:以 API 为入口把命名空间或指定资源类型的对象导出到集群外的对象存储,持久卷数据则通过云盘快照或文件系统级备份单独处理。它支持把备份恢复到本集群或另一个集群,是集群级误删恢复与集群迁移的常用手段。

基本信息

部署形态集群内服务端组件 + 节点代理,配合本地 CLI 操作
备份内容API 对象(含 Secret、ConfigMap)与持久卷数据(取决于卷备份方式)
存储位置集群外的对象存储作为备份仓库
常用命令backup create/describe/get、restore create、schedule create
权限要求需要集群级 RBAC,卷快照还需云侧相关权限
版本匹配CLI 与服务端建议保持同版本,避免命令与 API 不匹配

典型使用场景

  • 误删命名空间或资源后的恢复
  • 集群迁移:从一个集群备份、恢复到新集群
  • 定时备份与保留策略统一管理
  • 集群升级或大改前留存一份资源快照
  • 把生产备份恢复到隔离命名空间做演练与验证

备份与恢复

备份与恢复
# 查看备份存储位置与卷备份配置
velero backup-location get
# 备份 prod 命名空间(含持久卷数据)并等待完成
velero backup create nightly-20261013 --include-namespaces prod --wait
# 查看备份详情:范围、错误、卷快照状态
velero backup describe nightly-20261013 --details
# 定时备份:每天 2 点执行,保留 7 天
velero schedule create daily-prod --schedule="0 2 * * *" --include-namespaces prod --ttl 168h
# 恢复到隔离命名空间验证,避免覆盖生产环境
velero restore create --from-backup nightly-20261013 --namespace-mappings prod:prod-restore --wait

describe 关键字段读法

字段含义正常/异常
PhaseCompleted、PartiallyFailed、FailedPartiallyFailed 要逐条看错误,别只看总状态
Included namespaces本次备份的范围与预期不符说明范围参数写错
Errors / Warnings具体失败项只要有内容就要处理,否则恢复会缺东西
Volume snapshots卷快照数量与状态卷没备上,恢复后应用起来但数据是空的
Expiration / TTL备份保留期过期自动删除,恢复窗口别指望超过保留期
备份仓库要放在被保护集群之外,例如另一个账号或另一个区域:放在同一账号同一区域时,一次误删整个项目会把备份一起带走。
恢复与备份是两件事:先把备份恢复到隔离命名空间验证,确认对象与数据都完整,再考虑对生产做恢复动作。

易错点

  • 只备份 API 对象不含卷数据或反之:恢复后工作负载起来了,数据却是空的
  • 恢复直接打进生产命名空间:同名资源冲突被覆盖,先映射到隔离命名空间验证
  • 备份仓库与被保护集群同账号同区域:误删整个项目时备份同时丢失
  • 从不做恢复演练:备份格式、版本或权限不匹配,真恢复时才发现走不通

数据来源与参考

  • Velero 官方文档(Backup / Restore / Schedule)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌