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