2. Velero 架构总览:组件、数据流与控制流分离、存储后端抽象
Velero 的架构设计遵循云原生原则,通过组件解耦、数据流与控制流分离以及可插拔存储后端三大核心设计,实现了对 Kubernetes 集群资源与持久化卷的高效备份与恢复。理解这一架构是后续进行缓存命中巡检与性能调优的基础。
2.1 Velero 核心组件
Velero 由三个主要组件构成:Server、Plugin 和 CLI。它们各自承担不同职责,协同完成灾备任务。
| 组件 | 部署位置 | 核心职责 | 关键说明 |
|---|---|---|---|
| Server | Kubernetes 集群内(Deployment) | 调度备份/恢复任务、管理备份存储位置、处理 API 请求 | 核心控制器,运行在 velero 命名空间 |
| Plugin | 集群内(作为 Server 的 sidecar 或独立 DaemonSet) | 对接特定云存储(如 AWS S3、Azure Blob)、卷快照(如 CSI、Restic) | 可插拔,通过 velero plugin add 动态加载 |
| CLI | 客户端(用户本地或 CI/CD 环境) | 发起备份/恢复命令、查看状态、管理调度策略 | 通过 velero 二进制文件执行 |
架构要点: Server 是大脑,Plugin 是适配器,CLI 是操作界面。三者通过 Kubernetes CRD(Custom Resource Definition)进行状态同步,确保声明式操作的一致性。
2.2 数据流与控制流分离设计
Velero 最关键的架构决策是将控制流(元数据、调度指令)与数据流(实际卷数据、资源清单)分离。这一设计直接影响了备份性能与缓存命中率。
- 控制流: 通过 Kubernetes API Server 传递。Velero Server 监听 Backup/ Restore CRD 对象,解析用户意图,生成任务队列。控制流数据量小、频率高,对延迟敏感。
- 数据流: 直接由 Velero Server 或 Plugin 写入对象存储(如 S3、GCS)。备份数据(如卷快照、资源 YAML 文件)通过流式传输或分块上传,数据量大、带宽占用高。
缓存优化启示: 控制流与数据流分离使得 Velero 可以在数据流层面独立优化缓存策略。例如,对频繁读取的备份清单(控制流)使用本地缓存,而对大体积卷数据(数据流)使用对象存储的 CDN 或边缘缓存。
2.3 备份存储后端抽象
Velero 通过 BackupStorageLocation (BSL) 和 VolumeSnapshotLocation (VSL) 两个 CRD 资源,实现了对存储后端的完全抽象。这意味着备份策略与底层存储解耦,运维人员可以灵活切换或组合不同的存储后端。
2.3.1 BackupStorageLocation (BSL)
BSL 用于存储备份的资源清单文件(如 Pod、Deployment 的 YAML)以及卷数据文件(如 Restic 备份的块数据)。支持的存储类型包括:
- AWS S3 及兼容 S3 的对象存储(如 MinIO、Ceph RGW)
- Azure Blob Storage
- Google Cloud Storage (GCS)
- 本地文件系统(用于开发测试或 NFS 挂载)
2.3.2 VolumeSnapshotLocation (VSL)
VSL 专门用于管理持久化卷快照。它通过 CSI(Container Storage Interface)或云厂商原生快照 API 创建卷的瞬时副本。支持的快照后端包括:
- CSI 快照(推荐,与 CSI 驱动兼容)
- AWS EBS Snapshots
- Azure Disk Snapshots
- GCE Persistent Disk Snapshots
缓存命中巡检关键点: BSL 和 VSL 的配置直接影响缓存策略。例如,当 BSL 指向远端 S3 而 VSL 指向本地 CSI 快照时,卷数据恢复可能因网络延迟导致缓存未命中。建议在巡检中检查 BSL 与 VSL 的物理距离及缓存层配置。
2.4 架构总览总结
Velero 的架构设计体现了云原生灾备系统的核心思想:
- 组件化: Server、Plugin、CLI 各司其职,通过 CRD 实现声明式协调。
- 分离设计: 控制流与数据流分离,避免元数据操作阻塞大数据传输,同时为缓存优化提供独立维度。
- 抽象存储: BSL 与 VSL 两层抽象,使备份系统不受底层存储限制,便于在巡检中针对不同存储层配置缓存策略。
下一阶段准备: 理解上述架构后,我们将进入第 3 章,深入分析 Velero 的缓存机制——包括本地缓存、对象存储缓存以及 CSI 快照缓存,并建立缓存命中率的巡检指标体系。