ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Velero 文件系统备份:PV 卷数据完整操作流程与避坑速查

Velero 文件系统备份:PV 卷数据完整操作流程与避坑速查 Velero 文件系统备份PV 卷数据完整操作流程与避坑速查【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero本文以 Velero 的文件系统备份功能为主线针对 StatefulSet 应用的 PV 卷数据完成一次备份、验证与恢复操作解决不依赖存储厂商快照能力时卷内数据无法保护的问题。参数与命令均可直接复用。原理速览文件系统备份不经过存储快照链路Velero 为每个需要备份的卷生成一个 PodVolumeBackup CR由节点上的 node agent 拉起备份容器把挂载目录内容打包写入 Kopia 仓库恢复时按 PodVolumeRestore 反向重建卷内容。任务编排与状态机由数据路径管理器驱动仓库层基于Kopia 统一仓库集成PodVolumeBackup 控制器负责逐阶段推进状态。环境准备组件最低版本作用如何确认Kubernetes 集群1.24运行 node agent 与备份容器kubectl version --shortVelero1.13备份引擎与 CLIvelero versionS3 兼容存储任意存放 BSL 与备份归档velero backup-locations get卷备份仓库velero.io/kopia存放卷内数据velero config repo get实操主线步骤1 创建备份存储位置与 Kopia 卷仓库目的为元数据归档和卷数据分别准备两个存储入口。velero backup-location add prod-bucket --bucket velero --region us-east-1 velero config repo add volrepo --provider velero.io/kopia --backup-location prod-bucket预期输出velero backup-locations get显示 Phase 为 Available。失败时先检查 BSL 凭据与 bucket 名称。步骤2 执行文件系统备份目的备份 nginx 应用及其 PV 卷内数据。velero backup create nginx-fs --include-namespaces nginx-example \ --default-volumes-to-fs-backup --volume-backup-repository volrepo预期输出velero backup describe nginx-fs --details中 Status 到达 Completed且 Volume Backups 列表非空。失败时先检查目标 Pod 是否 Running。步骤3 验证卷数据落库目的确认数据真实写入 Kopia 仓库而非仅元数据成功。velero backup logs nginx-fs | grep -i volume backup velero config repo get volrepo预期输出日志无 repository 相关报错仓库大小大于 0。失败时先检查 node agent 所在节点日志。步骤4 创建恢复目的重建应用与卷数据。velero restore create nginx-r --from-backup nginx-fs \ --include-namespaces nginx-example预期输出velero restore describe nginx-r --details显示 CompletedPVC 为 BoundPod 1/1 Running。失败时先检查目标集群 StorageClass 是否存在。真实场景场景A 损坏卷中恢复单个文件背景nginx html 目录个别页面损坏其余数据健康只需取回单文件。velero restore create nginx-file --from-backup nginx-fs --include-resources pvc \ --namespace-mappings nginx-example:nginx-recovery kubectl cp nginx-recovery/nginx-0:/usr/share/nginx/html/index.html ./index.html第一条命令把卷数据恢复到隔离命名空间第二条命令取回目标文件验证内容后用kubectl delete清理临时卷。场景B 跨集群整体迁移背景生产集群整体迁移至测试集群元数据与卷数据都要带过去。velero backup download nginx-fs --output-dir ./fs-export velero backup upload fs-export velero restore create --from-backup fs-export导出命令把归档与卷仓库打包下载在目标集群执行上传后按备份名直接恢复。⚠️ 避坑清单现象根因处理验证备份卡在 InProgress无 PodVolumeBackup目标 Pod 未就绪或卷未挂载等 Pod 1/1 Running 后再跑备份kubectl get pvb -n nginx-example备份报 repository not found--volume-backup-repository名称不匹配重新velero config repo add并核对名称velero config repo get volrepo恢复后 PVC 一直 Pending目标集群 StorageClass 缺失或容量不足补齐 StorageClass确认容量kubectl get sc恢复文件 Permission denied新 Pod 用户与原卷 uid/gid 不一致统一 fsGroup 与 runAsUserkubectl exec nginx-0 -- ls /data 调优速查参数默认值建议值影响--default-volumes-to-fs-backupfalse数据卷为主的应用设为 true控制全部 PV 是否默认走文件系统备份仓库维护GC未启用每周一次压缩 Kopia 仓库降低存储成本BSL 压缩无zstd减少上传流量CPU 占用略升node agent 并发每节点 1多卷节点 2~4缩短备份时长节点 IO 压力增大相关入口数据路径模块、Kopia 集成设计、备份性能改进设计、e2e 备份测试。恢复完成后用velero backup describe再核对一遍元数据与卷数据是否齐全即可接入定时备份策略。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表