1. 课程导论:蓝绿发布与灾备概述、Velero在K8s生态中的定位、课程目标与学习路径
1.1 蓝绿发布与灾备的核心概念
在生产环境中,应用发布与数据安全是运维体系的两大基石。蓝绿发布(Blue-Green Deployment)与灾备(Disaster Recovery)分别解决了“如何平滑上线新版本”和“如何应对突发故障”这两个关键问题。
核心定义:
- 蓝绿发布:维护两套完全独立的生产环境(蓝环境为当前运行版本,绿环境为新版本)。流量通过负载均衡器瞬间切换,实现零停机发布。
- 灾备:通过数据备份、复制和恢复机制,确保在数据中心故障、误操作或勒索软件攻击后,业务能在RTO(恢复时间目标)和RPO(恢复点目标)范围内恢复。
在Kubernetes环境中,蓝绿发布通常依赖Service的Selector切换或Ingress流量路由;而灾备则依赖对集群资源(Deployment、PVC、ConfigMap)的定期备份与跨集群恢复。
| 维度 | 蓝绿发布 | 灾备 |
|---|---|---|
| 目标 | 零停机、快速回滚 | 数据不丢、业务可恢复 |
| 核心操作 | 流量切换、版本验证 | 备份、复制、恢复 |
| K8s依赖 | Service、Ingress、Deployment | Velero、etcd快照、PV快照 |
| 回滚粒度 | 应用版本级别 | 集群/命名空间/应用级别 |
1.2 Velero在Kubernetes生态中的定位
Velero(原Heptio Ark)是VMware开源的Kubernetes集群备份与恢复工具,已成为CNCF生态中灾备领域的事实标准。它不只是一个备份工具,更是实现蓝绿发布回滚策略的关键基础设施。
Velero的核心能力:
- 集群资源备份:将K8s对象(Deployment、Service、ConfigMap、PVC等)导出为JSON/YAML文件,存储到对象存储(S3、MinIO、GCS等)。
- PV数据快照:通过CSI或云厂商快照API,对持久卷进行一致性快照。
- 跨集群迁移:将备份恢复到不同集群,支持命名空间映射和资源过滤。
- 调度与保留策略:支持CronJob定时备份,按时间或数量自动清理旧备份。
- 回滚能力:通过
velero restore命令,将集群恢复到任意历史备份点。
| 对比维度 | Velero | etcd快照 | 云厂商原生备份 |
|---|---|---|---|
| 备份粒度 | 命名空间/资源类型/标签选择 | 全集群etcd数据 | 依赖云产品(如EBS快照) |
| PV数据 | 支持CSI快照、Restic文件级备份 | 不支持 | 仅支持块存储快照 |
| 跨集群恢复 | 原生支持,可映射命名空间 | 需手动处理 | 通常仅限同区域 |
| 回滚灵活性 | 支持部分恢复、排除资源 | 全量覆盖 | 有限 |
| 蓝绿发布适配 | 可备份蓝/绿环境,快速回滚 | 不适用 | 需额外脚本 |
1.3 课程目标与学习路径
本课程旨在帮助学员掌握一套可落地的、基于Velero的蓝绿发布灾备方案,使学员能够在生产环境中实现:
- 零停机蓝绿发布:通过Service流量切换与Velero备份联动,实现安全发布。
- 快速回滚:当绿环境出现问题时,利用Velero备份在秒级内回滚到蓝环境状态。
- 跨集群灾备:将备份数据同步到异地集群,实现Region级故障切换。
- 自动化运维:通过CronJob调度备份、Hook脚本实现发布前自动备份。
| 章节模块 | 核心内容 | 实践产出 |
|---|---|---|
| 第1章 导论 | 蓝绿发布、灾备、Velero定位 | 理解整体架构 |
| 第2-4章 环境搭建 | Velero安装、MinIO存储、CSI快照配置 | 可用的备份环境 |
| 第5-8章 备份与恢复 | 资源备份、PV备份、跨集群恢复、调度策略 | 自动化备份流水线 |
| 第9-12章 蓝绿发布集成 | Service切换、Pre/Post Hook、回滚验证 | 蓝绿发布+回滚脚本 |
| 第13-15章 高级场景 | 多集群灾备、加密备份、审计日志 | 生产级灾备方案 |
前置要求:学员需具备Kubernetes基础操作能力(kubectl、YAML编写)、了解Linux基本命令,并拥有一个可运行的K8s集群(建议v1.24+)。本课程所有实验均可在本地Minikube或Kind集群中完成。
通过本课程的学习,学员将能够独立设计并实施一套“发布即备份、回滚即恢复”的蓝绿发布灾备体系,显著提升K8s生产环境的可靠性与运维效率。