Skip to main content

存储位置与快照位置

存储位置决定备份数据写到哪个对象存储,快照位置决定卷快照怎么拍,两者职责完全不同。

前置条件​

  • 您的角色是 admin,editor 与 viewer 都无法管理这两类资源。
  • 已经准备好对象存储的访问凭据。

两者的区别​

维度存储位置快照位置
对应的 Velero 资源BackupStorageLocationVolumeSnapshotLocation
存什么资源清单归档与导出的卷数据卷快照的存放方式
跨集群可用是,共享存储桶即可否,快照留在原集群的存储层
界面入口左侧菜单「存储位置」左侧菜单「快照位置」

支持的对象存储类型​

类型说明
AWS S3标准 S3
MinIO通常指 SupKube 部署的集群内 MinIO,自动启用路径风格寻址
S3 兼容腾讯云 COS、阿里云 OSS、Ceph RGW 等,自动启用路径风格寻址
SupVault对接 SupVault 对象存储
Azure Blob Storage当前支持存储账户密钥认证

创建存储位置​

左侧菜单「存储位置」,点「新增存储位置」。S3 系列需要填写的字段:

字段说明
名称小写字母、数字、- 或 .,首尾必须是字母或数字;创建后不可修改
类型上表中的一种
存储桶桶名
区域例如 us-east-1
S3 端点自建对象存储必填,例如 http://minio.example.com:9000
强制路径风格MinIO 与 SupVault 需要打开
Access Key ID云厂商的访问密钥标识,不是 Kubernetes Secret 名
Secret Access Key与上一项配对的密钥,只写不读

Azure Blob Storage 需要填写容器名、存储账户与存储账户密钥,并可选填前缀。

tip

当目标容器里已经存在其他工具的数据时,请填写前缀(例如 velero),把 SupKube 的数据收敛到 <容器>/velero/ 之下。Velero 不接受与其他工具共用顶层目录。

SupKube 会用您填写的凭据自动创建对应的 Kubernetes Secret,无需手工准备。

同步周期​

Velero 每 60 秒轮询一次存储位置,把桶里的备份元数据同步成集群内的资源。存储位置列表里的「最近同步」与「发现备份数」反映的就是这个过程。

note

这个同步机制也意味着:直接用 kubectl delete backup 删除资源后,它会在下一个同步周期被重建。删除还原点必须走界面,或走 Velero 的删除请求。

集群内本地备份库​

启用后 SupKube 会在集群里部署一个 MinIO 作为本地备份库,并自动注册为存储位置。

helm upgrade supkube supkube/supkube --reuse-values -n supkube \
--set localStore.enabled=true \
--set localStore.size=200Gi \
--set localStore.storageClass=managed-csi

默认启用对象锁(localStore.objectLock.enabled=true,模式 governance),保留期内的备份不可删除。

warning

本地备份库与被保护的应用在同一个集群里,集群整体损坏时同时丢失。它只能作为快速回滚层,异地容灾必须再配置一个云端存储位置。

不可变存储​

策略编辑页会检查所选云端存储位置是否启用了对象锁。未启用时会提示该备份在保留期内仍可能被删除,无法抵御勒索软件与内部人员风险。

请在存储桶层面启用不可变能力,例如 S3 Object Lock 或 Azure 不可变 Blob,这也是 3-2-1-1-0 原则里「1 份不可变」的判据。

快照位置​

快照位置告诉 Velero 如何拍摄卷快照:使用集群内的 CSI 驱动,或使用云原生快照能力。不创建快照位置时 Velero 使用默认行为。

左侧菜单「快照位置」,点「创建快照位置」即可。

验证方法​

存储位置列表里点「验证」,状态应变为可用。命令行侧:

kubectl -n supkube get backupstoragelocations
kubectl -n supkube get volumesnapshotlocations
kubectl -n supkube get backuprepositories

存储位置的 PHASE 为 Available 即凭据与网络均正常。

相关文档​