必须用Velero搭配文件系统备份实现Kubernetes全量备份,包括资源清单和PV数据;需部署MinIO对象存储、配置凭证、安装Velero并启用Node Agent与FSB,最后创建无过滤的backup任务。

要对 Kubernetes 集群做真正可用的全量备份——既包含所有命名空间的资源清单(Deployment、Service、ConfigMap 等),又包含所有正在使用的持久卷(PV)里的实际数据,不能只依赖 etcd 快照,必须用 Velero 搭配文件系统备份(FSB)能力来实现。
准备 S3 兼容对象存储与凭证
Velero 所有备份数据必须落盘到对象存储,MinIO 是最轻量且生产验证过的自建方案。先确保 MinIO 已运行在集群内或可访问的独立节点上,监听 9000 端口(S3 API),并已创建名为 velero-backups 的 Bucket。
新建凭证文件 credentials-velero,内容严格为 INI 格式:
[default]
aws_access_key_id = minioadmin
aws_secret_access_key = minioadmin123
注意:key 和 secret 必须与 MinIO 控制台登录凭据完全一致,大小写敏感,否则后续 velero install 会卡在 Ready 状态但实际无法上传数据。
安装 Velero 客户端并部署服务端(含 Node Agent)
在能执行 kubectl 的管理机上操作:
下载 velero-v1.15.2-linux-amd64.tar.gz(适配当前集群 v1.35.6),解压后将 velero 二进制拷贝至 /usr/local/bin/ 并 chmod +x。
执行完整安装命令,关键点在于启用文件系统备份通道:
velero install \
--provider aws \
--bucket velero-backups \
--secret-file ./credentials-velero \
--use-node-agent \
--default-volumes-to-fs-backup \
--backup-location-config s3Url=http://
--use-volume-snapshots=false
这一步会同时部署 Velero 控制平面(Deployment)和 Node Agent(DaemonSet)。【Node Agent 必须在每个节点上 Running,否则 PV 数据根本不会被扫描和上传】。检查命令:kubectl -n velero get ds node-agent,输出应显示 DESIRED == CURRENT == READY。
确认备份位置就绪并触发全量备份
执行 velero backup-location get,输出中 PHASE 字段必须为 Available,表示对象存储连通性与权限已通过验证。
全量备份即备份所有命名空间,不加任何过滤参数:
velero backup create full-cluster-backup
该命令立即返回备份任务 ID,并在后台异步执行。它会:① 序列化全部 API 资源(除 system namespace 外默认全部包含);② 通过每个节点上的 Node Agent 扫描所有 Running Pod 的 volumes;③ 对每个 volume 目录调用 Kopia 做增量文件级打包,上传至 MinIO 的 velero-backups Bucket。
监控进度用:velero backup describe full-cluster-backup,重点关注 Phase 是否变为 Completed,以及 VolumeSnapshots 行是否显示非零数字(说明 PV 数据已纳入备份)。


















