- 集群迁移或重建:需要把 namespace 级资源连同 PV 数据搬到新集群时,用 Velero 的 backup/restore 比 etcd 快照更细粒度,后者只能整集群回滚且跨版本基本不可用
- 生产数据复制到测试环境:定期把生产 namespace 备份后 restore 到 dev 集群,比写脚本 rsync PV 加 kubectl apply 更省事,资源依赖顺序由它处理
- 误删 namespace 后的恢复:需要按资源类型或标签选择性恢复时,etcd 快照做不到单 namespace 粒度,只能全量回滚
- 持久卷快照编排:集群已配好 CSI snapshotter 时,用它统一调度 VolumeSnapshot 和资源备份的时序,自己写 CronJob 拼这两步容易漏掉 PVC 与 PV 的绑定关系
velero
velero-ioApache-2.0活跃维护 有专家点评Velero 是 Kubernetes 集群的备份与迁移工具,能备份应用及其持久卷,支持灾难恢复和跨集群迁移。
Backup and migrate Kubernetes applications and their persistent volumes
专家点评
上手难度:进阶更新于 2026-11-11在 K8s 里做集群级备份、跨集群迁移和持久卷快照,顶替 etcd 快照加手工 YAML 导出的组合
适用场景
踩坑
- 后端存储基本绑死对象存储:issue 里「支持非对象存储后端(如 NFS)」被反复提出,说明没有 S3 兼容存储的本地环境要么自己搭 MinIO,要么绕开这条路
- 卷数据进对象存储的能力不完整:S3 客户端加密、CSI 快照直接备份到 S3 这两类需求在 issue 里反应数最高,如果你的合规要求是快照必须落在对象存储且加密,需要先确认当前版本的实际支持边界,不要假设开箱即用
- 版本兼容是硬门槛:README 明说 Velero 版本要匹配 Kubernetes 版本(如 1.19 对 1.18-latest),集群升级前不先验证目标 K8s 版本,restore 阶段才暴露问题
- 部署形态是服务端加本地 CLI 两件套,CI 里跑备份不能只装二进制,还要保证 kubeconfig 上下文和集群内 server 的 CRD 版本一致
同类对比
K8s 生态里同类还有 Kasten K10(商业为主)和云厂商自带的集群备份服务;如果只需要 etcd 级整集群快照、不涉及跨集群迁移,直接用 etcdctl snapshot 或云托管控制面的备份功能更轻。
README 未给出安装命令,安装步骤见官方文档 https://velero.io/docs/README 未说明硬件要求,仅说明可在公有云平台或本地运行,需配合 Kubernetes 集群使用
项目说明
由 README 自动翻译提炼备份与迁移 Kubernetes 集群资源及持久卷的开源工具,支持云上和本地部署
Velero 是 Kubernetes 集群的备份与迁移工具,能备份应用及其持久卷,支持灾难恢复和跨集群迁移。
核心能力
- 备份集群资源并在丢失时恢复
- 将集群资源迁移到其他集群
- 把生产集群复制到开发测试集群
- 由集群内服务端和本地命令行客户端组成
- 支持 IPv4、IPv6 和双栈环境
容易踩的坑
需按 Velero 版本匹配 Kubernetes 版本,1.19 支持 1.18-latest;需同时部署集群内服务端和本地 CLI 客户端;升级前建议先测试目标 Kubernetes 版本兼容性
- v1.19.0-rc.1pre-release2026-11-06 · 2026-11-06 11:36 UTC
查看更新说明
v1.19
Download
https://github.com/velero-io/velero/releases/tag/v1.19.0
Container Image
velero/velero:v1.19.0Documentation
Upgrading
https://velero.io/docs/v1.19/upgrade-to-1.19/
Highlights
Block data mover
Velero 1.19 introduces a block data mover (velero-block) for CSI snapshot data movement, enabling block-level backup and restore for both file system and block volumes backed by block storage. It integrates with the Kubernetes CSI Changed Block Tracking (CBT) API (https://kubernetes.io/blog/2025/09/25/csi-changed-block-tracking/) to transfer only changed blocks during incremental backups and restores with compatible CSI drivers, avoiding file system scanning overhead and improving backup and restore efficiency. For more information, check Velero document https://velero.io/docs/v1.19/csi-snapshot-data-movement/.
Volume data in-place restore
Velero 1.19 introduces volume data in-place restore, allowing backup data to be restored directly into existing volumes. It supports both full and incremental restores for CSI snapshot data movement (velero-fs and velero-block) and File System Backup, with incremental restores skipping unchanged data to reduce data transfer and recovery time. It also supports clone-and-restore workflows, where users first clone a volume from a snapshot and then perform an in-place restore into the cloned volume. For more information, check Velero document https://velero.io/docs/v1.19/volume-data-inplace-restore/.
Fine-grained filters
Velero 1.19 introduces fine-grained filters for backups and restores through ResourcePolicy ConfigMaps. Users can define per-namespace and per-resource-kind rules with independent label selectors and resource name patterns, providing more precise control over which namespaced and cluster-scoped resources are backed up or restored. For more information, check Velero document https://velero.io/docs/v1.19/fine-grained-backup-filters/ and https://velero.io/docs/v1.19/fine-grained-restore-filters/.
Namespace selection by labels
Velero 1.19 supports dynamically including or excluding namespaces from backups based on namespace labels through ResourcePolicy ConfigMaps. This simplifies backup and schedule management by automatically selecting matching namespaces when each backup starts, without maintaining explicit namespace lists. For more information, check Velero document https://velero.io/docs/v1.19/resource-filtering/#namespace-selection-by-label-backup-only.
Global volume policy
Velero 1.19 introduces global volume policies, allowing administrators to configure default volume backup rules for all backups through a shared ConfigMap. Backup-specific volume policies take precedence over global rules, providing consistent defaults while allowing customization for individual backups. For more information, check Velero document https://velero.io/docs/v1.19/resource-filtering/#global-backup-volume-policies.
Custom action type in volume policy
Velero 1.19 adds a
customaction type to volume policies, allowing third-party BackupItemAction plugins to handle volume backups using custom methods. Users can select volumes for custom handling and pass plugin-specific parameters alongside existing snapshot and file system backup policies. For more information, check the Velero document https://velero.io/docs/v1.19/resource-filtering/#custom-volume-policy-actions.Default restore resource modifier
Velero 1.19 allows administrators to configure a default restore resource modifier through a shared ConfigMap, automatically applying common resource transformations during restores. Individual restores can override the default with their own modifier or explicitly skip it, simplifying consistent restore customization. For more information, check the Velero document https://velero.io/docs/v1.19/restore-resource-modifiers/#default-resour
- v1.18.4最新正式版2026-09-28 · 2026-09-28 06:20 UTC
v1.18.4
Download
https://github.com/vmware-tanzu/velero/releases/tag/v1.18.4
Container Image
velero/velero:v1.18.4Documentation
Upgrading
https://velero.io/docs/v1.18/upgrade-to-1.18/
All Changes
- Fix backup queue permanently stuck when a dequeued backup completes during the patch (#10539, @pujitha24)
- v1.18.4-rc.1pre-release2026-09-24 · 2026-09-24 09:30 UTC
查看更新说明
v1.18.4
Download
https://github.com/vmware-tanzu/velero/releases/tag/v1.18.4-rc.1
Container Image
velero/velero:v1.18.4-rc.1Documentation
Upgrading
https://velero.io/docs/v1.18/upgrade-to-1.18/
All Changes
- Fix backup queue permanently stuck when a dequeued backup completes during the patch (#10539, @pujitha24)
- v1.18.32026-09-21 · 2026-09-21 08:14 UTC
查看更新说明
v1.18.3
Download
https://github.com/vmware-tanzu/velero/releases/tag/v1.18.3
Container Image
velero/velero:v1.18.3Documentation
Upgrading
https://velero.io/docs/v1.18/upgrade-to-1.18/
All Changes
- Avoid duplicated InitContainer names generated in velero install CLI. (#10396, @blackpiglet)
- Bound WaitRestoreExecHook polling with resourceTimeout to avoid an infinite wait when restore exec hooks never complete. (#10394, @nitishmalang)
- fix log format string mismatches that produce wrong or mangled output (#10392, @samay43)
- Skip DeleteSnapshot when ProviderSnapshotID is empty (#10381, @kaovilai)
- Fail backup validation when built-in data mover is requested but no node-agent pods are running (#10360, @Joeavaikath)
- Fix issue #10341, avoid mutating the cached node-agent LoadAffinity so the OS node selector term is not appended repeatedly to data mover pods (#10348, @shubham-pampattiwar)
- Fix PodVolumeBackup metadata loss on fs-backup timeout, which caused all fs-backup volumes to become unrestorable (#9999, @shubham-pampattiwar)
- Fix repo connection contest of the two repositories with the same storage type (#10377, @Lyndon-Li)
- Only sync finished backups from object storage (#10347, @chlins)
- Support copying namespace-scoped secrets and configmaps for backup and restore PVC provisioning to enable datamover backup/restore of encrypted CSI volumes (#10335, @shubham-pampattiwar)
- Remove PVC and PV inclusion check during creating PVR. (#10319, @blackpiglet)
- Fix a potential deadlock when resultsLock is held by the informer but blocked on resChan because the early quit of RestorePodVolumes (#10263, @Lyndon-Li)
- Fix restore-wait init container ignoring pod-level securityContext, falling back to hardcoded runAsUser 1000 instead of the workload's own uid/gid, causing fs-backup restores to deadlock at Init:0/1 on owner-restricted volumes (#10224, @kaovilai)
- Add use guide for restore fine-grained filters via resource policy (#10164, @adam-jian-zhang)
- Add restore.velero.io/must-include-additional-items so RestoreItemActions can opt in to bypassing global restore filters for AdditionalItems (mirrors the backup-side must-include annotation; no default behavior change for existing restores/plugins). Stop force-including VolumeSnapshotContents via resourceMustHave on every restore; CSI VolumeSnapshot/PVC RestoreItemActions now set restore.velero.io/must-include-additional-items so bound snapshot dependencies are restored only when their parent is restored (fixes #9957) (#10101, @adam-jian-zhang)
- User guide for backup fine-grained filters via resource policy, and add set based label selectors for fine-grained filters (#10072, @adam-jian-zhang)
- Fix issue #10032, prioritize exact namespace match in restore (#10052, @adam-jian-zhang)
- Fix issue #9997, cancel ongoing PVB on timeout and wait for all PVBs to terminal state (#10039, @Lyndon-Li)
- Add fine-grained filters for restore via resource policy, introduced resourcePolicy field for restoreSpec, which contains ClusterScopedFilterPolicy and NamespacedFilterPolicy section (#10015, @adam-jian-zhang)
- Add support for matching PVCs by volume mode and access mode in resource policies, and introduce the
--global-backup-volume-policies-configmapserver flag to merge cluster-wide backup volume policies into every backup. (#10012, @chlins) - Add fine-grained filters for backup via resource policy, introduced ClusterScopedFilterPolicy and NamespacedFilterPolicy section for resource policy (#10011, @adam-jian-zhang)
- Add operation context to user-facing error messages in CR statuses and CLI output (#10474, @chlins)
- Fix issue 10454, enforce resource filter policies in memory in stage 1 to fix wildcard namespace bypassing issue (#10473, @adam-jian-zhang)
- v1.18.3-rc.2pre-release2026-09-08 · 2026-09-08 11:01 UTC
查看更新说明
v1.18.3
Download
https://github.com/vmware-tanzu/velero/releases/tag/v1.18.3-rc.2
Container Image
velero/velero:v1.18.3-rc.2Documentation
Upgrading
https://velero.io/docs/v1.18/upgrade-to-1.18/
All Changes
- Avoid duplicated InitContainer names generated in velero install CLI. (#10396, @blackpiglet)
- Bound WaitRestoreExecHook polling with resourceTimeout to avoid an infinite wait when restore exec hooks never complete. (#10394, @nitishmalang)
- fix log format string mismatches that produce wrong or mangled output (#10392, @samay43)
- Skip DeleteSnapshot when ProviderSnapshotID is empty (#10381, @kaovilai)
- Fail backup validation when built-in data mover is requested but no node-agent pods are running (#10360, @Joeavaikath)
- Fix issue #10341, avoid mutating the cached node-agent LoadAffinity so the OS node selector term is not appended repeatedly to data mover pods (#10348, @shubham-pampattiwar)
- Fix PodVolumeBackup metadata loss on fs-backup timeout, which caused all fs-backup volumes to become unrestorable (#9999, @shubham-pampattiwar)
- Fix repo connection contest of the two repositories with the same storage type (#10377, @Lyndon-Li)
- Only sync finished backups from object storage (#10347, @chlins)
- Support copying namespace-scoped secrets and configmaps for backup and restore PVC provisioning to enable datamover backup/restore of encrypted CSI volumes (#10335, @shubham-pampattiwar)
- Remove PVC and PV inclusion check during creating PVR. (#10319, @blackpiglet)
- Fix a potential deadlock when resultsLock is held by the informer but blocked on resChan because the early quit of RestorePodVolumes (#10263, @Lyndon-Li)
- Fix restore-wait init container ignoring pod-level securityContext, falling back to hardcoded runAsUser 1000 instead of the workload's own uid/gid, causing fs-backup restores to deadlock at Init:0/1 on owner-restricted volumes (#10224, @kaovilai)
- Add use guide for restore fine-grained filters via resource policy (#10164, @adam-jian-zhang)
- Add restore.velero.io/must-include-additional-items so RestoreItemActions can opt in to bypassing global restore filters for AdditionalItems (mirrors the backup-side must-include annotation; no default behavior change for existing restores/plugins). Stop force-including VolumeSnapshotContents via resourceMustHave on every restore; CSI VolumeSnapshot/PVC RestoreItemActions now set restore.velero.io/must-include-additional-items so bound snapshot dependencies are restored only when their parent is restored (fixes #9957) (#10101, @adam-jian-zhang)
- User guide for backup fine-grained filters via resource policy, and add set based label selectors for fine-grained filters (#10072, @adam-jian-zhang)
- Fix issue #10032, prioritize exact namespace match in restore (#10052, @adam-jian-zhang)
- Fix issue #9997, cancel ongoing PVB on timeout and wait for all PVBs to terminal state (#10039, @Lyndon-Li)
- Add fine-grained filters for restore via resource policy, introduced resourcePolicy field for restoreSpec, which contains ClusterScopedFilterPolicy and NamespacedFilterPolicy section (#10015, @adam-jian-zhang)
- Add support for matching PVCs by volume mode and access mode in resource policies, and introduce the
--global-backup-volume-policies-configmapserver flag to merge cluster-wide backup volume policies into every backup. (#10012, @chlins) - Add fine-grained filters for backup via resource policy, introduced ClusterScopedFilterPolicy and NamespacedFilterPolicy section for resource policy (#10011, @adam-jian-zhang)
- Add operation context to user-facing error messages in CR statuses and CLI output (#10474, @chlins)
- Fix issue 10454, enforce resource filter policies in memory in stage 1 to fix wildcard namespace bypassing issue (#10473, @adam-jian-zhang)
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。

Overview
Velero (formerly Heptio Ark) gives you tools to back up and restore your Kubernetes cluster resources and persistent volumes. You can run Velero with a public cloud platform or on-premises.
Velero lets you:
- Take backups of your cluster and restore in case of loss.
- Migrate cluster resources to other clusters.
- Replicate your production cluster to development and testing clusters.
Velero consists of:
- A server that runs on your cluster
- A command-line client that runs locally
Documentation
The documentation provides a getting started guide and information about building from source, architecture, extending Velero and more.
For a high-level overview of Velero's components, goals, and design process, see ARCHITECTURE.md.
Please use the version selector at the top of the site to ensure you are using the appropriate documentation for your version of Velero.
Troubleshooting
If you encounter issues, review the troubleshooting docs, file an issue, or talk to us on the #velero-users and #velero-dev channel on the Kubernetes Slack server.
Community
Velero is an open community and we welcome your participation. The best way to get involved is to join our bi-weekly community meetings:
- Join the Velero community meetings, held bi-weekly, alternating between Beijing-friendly and US/Europe-friendly time zones.
- Subscribe to the project meeting calendar.
- Chat with us on the Kubernetes Slack
#velero-userschannel and join the mailing list.
See the community page for the full schedule and details.
Contributing
If you are ready to jump in and test, add code, or help with documentation, follow the instructions on our Start contributing documentation for guidance on how to setup Velero for development.
Governance
Velero's governance describes how the project is run, including the decision-making process, the roles and responsibilities of maintainers, and how to become a maintainer. Governance applies across the Velero org and is maintained at velero-io/.github.
Changelog
See the list of releases to find out about feature changes.
Velero compatibility matrix
The following is a list of the supported Kubernetes versions for each Velero version.
| Velero version | Expected Kubernetes version compatibility | Tested on Kubernetes version |
|---|---|---|
| 1.19 | 1.18-latest | 1.36.5 and 1.37.1 |
| 1.18 | 1.18-latest | 1.33.7, 1.34.1, and 1.35.0 |
| 1.17 | 1.18-latest | 1.31.7, 1.32.3, 1.33.1, and 1.34.0 |
| 1.16 | 1.18-latest | 1.31.4, 1.32.3, and 1.33.0 |
| 1.15 | 1.18-latest | 1.28.8, 1.29.8, 1.30.4 and 1.31.1 |
Velero supports IPv4, IPv6, and dual stack environments. Support for this was tested against Velero v1.8.
The Velero maintainers are continuously working to expand testing coverage, but are not able to test every combination of Velero and supported Kubernetes versions for each Velero release. The table above is meant to track the current testing coverage and the expected supported Kubernetes versions for each Velero version.
If you are interested in using a different version of Kubernetes with a given Velero version, we'd recommend that you perform testing before installing or upgrading your environment. For full information around capabilities within a release, also see the Velero release notes or Kubernetes release notes. See the Velero support page for information about supported versions of Velero.
For each release, Velero maintainers run the test to ensure the upgrade path from n-2 minor release. For example, before the release of v1.10.x, the test will verify that the backup created by v1.9.x and v1.8.x can be restored using the build to be tagged as v1.10.x.
Cloud Native Computing Foundation
Velero is a Cloud Native Computing Foundation sandbox project.
Copyright Contributors to Velero, established as Velero a Series of LF Projects, LLC. For website terms of use, trademark policy and other project policies please see https://lfprojects.org/policies/.