Skip to main content

核心概念

界面术语与 Velero 底层对象的对应关系,读懂这一章就能把界面和 kubectl 对上。

还原点与备份​

「还原点」是界面用语,对应 Velero 的 Backup 对象。同一个东西的两个视角:备份强调动作,还原点强调可恢复的时间点。

kubectl -n supkube get backups

本地与云端​

一条打开导出的策略,每次运行会产生两个还原点:

界面标签数据在哪用途
本地集群存储层的 CSI 快照快速回滚
云端对象存储中的导出数据异地恢复与跨集群恢复

另有两种标签:「已导入」表示从其他集群通过共享存储位置同步而来,「仅元数据」表示只备份了资源清单、没有卷数据。

策略​

「策略」对应一个或两个 Velero Schedule。打开导出开关时是两个:一个负责本地侧,一个负责云端侧,各自独立配置调度与保留期。

kubectl -n supkube get schedules

存储位置与快照位置​

界面用语Velero 对象作用
存储位置BackupStorageLocation备份数据写到哪个对象存储
快照位置VolumeSnapshotLocation卷快照怎么拍

数据路径​

决定卷数据如何被抓取,共四种:CSI 快照、Data Mover、文件系统、仅元数据。详见 Velero 与数据路径。

变换规则与变换集​

概念定位
变换规则原子的 Velero 资源修改器规则包,描述「把哪个字段改成什么」
变换集变换规则的容器,并为规则里的变量占位符提供默认值

恢复时选择的是变换集,不是单条变换规则。冲突预检的「一键修复」生成的是一条变换规则,需要先加入某个变换集才会生效。

冲突预检​

恢复前对目标集群做的静态扫描,识别十类冲突:

冲突类型含义
NodePort 已被占用目标集群已有服务占用该端口
clusterIP 已被占用集群内地址冲突
LoadBalancer IP 已被占用负载均衡地址冲突
Ingress host 已被使用主机名冲突
PVC 绑定了固定卷目标集群无法复现该绑定
目标集群缺少 StorageClass存储类名不存在
镜像 registry 不可达目标集群拉不到镜像
ServiceAccount 缺失依赖的服务账号不存在
NodeSelector 标签缺失没有满足调度约束的节点
PriorityClass 缺失优先级类不存在

结论分阻断与警告两级:阻断必须解决,警告可以逐条确认后忽略。

备份就绪性检查​

策略保存前的静态检查,关注的是「这条策略跑起来能不能产出可用的备份」,与恢复前的冲突预检是两件事。

指纹​

跨集群导入时用于确认还原点来源的 HMAC 签名。校验模式分强制、仅警告、关闭三种。

3-2-1-1-0​

数据保护的行业原则,也是 SupKube 评分体系的判据:

判据含义
3 份副本数据至少存在三份
2 种介质至少跨两种存储介质
1 份异地至少一份在异地
1 份不可变至少一份受对象锁保护
0 错误恢复演练零失败

保护层级​

灾备拓扑视图里的分层标注:

层级含义
L1本地快照,数据不离开集群
L2本地存储位置,集群内 MinIO 或 NFS
L3云端存储位置,对象存储
L4跨云复制,第二朵云的副本
L5恢复演练,周期性沙箱还原验证

一致性​

崩溃一致(Crash-consistent)是磁盘层面的瞬时镜像,应用一致(Application-consistent)要求应用在备份瞬间处于静默状态。

Velero 的快照与文件级读取默认只能提供崩溃一致。运行中的数据库必须自行配置备份前后 hook 才能达到应用一致。

验证方法​

kubectl -n supkube get backups -o custom-columns=NAME:.metadata.name,PHASE:.status.phase
kubectl -n supkube get schedules -o custom-columns=NAME:.metadata.name,CRON:.spec.schedule
kubectl -n supkube get backupstoragelocations

界面上看到的每个还原点、每条策略、每个存储位置,都应当能在上述命令的输出里找到对应项。

相关文档​