1. 课程导论:蓝绿发布的概念、为什么需要门禁、Kubernetes流量切换的挑战

1.1 蓝绿发布的核心概念

蓝绿发布(Blue-Green Deployment)是一种零停机或接近零停机的应用发布策略。其核心思想是维护两套完全独立的生产环境:蓝环境(当前稳定版本)和绿环境(新版本候选)。在任意时刻,只有一套环境承载全部生产流量,另一套环境处于待命或闲置状态。

关键特征: 两套环境、瞬时切换、快速回滚、环境隔离。
角色 状态 流量承载 典型操作
蓝环境 活跃(Active) 100% 生产流量 运行当前稳定版本
绿环境 闲置(Idle) 0% 生产流量 部署新版本、执行集成测试
切换后蓝环境 待命(Standby) 0% 生产流量 保留旧版本用于快速回滚
切换后绿环境 活跃(Active) 100% 生产流量 运行新版本
蓝绿发布基本流程 用户流量 负载均衡器 蓝环境 v1.0 (活跃) 绿环境 v2.0 (闲置) 流量切换动作 更新负载均衡器规则,将流量从蓝环境指向绿环境 切换时间通常在秒级,用户无感知

1.2 为什么需要门禁(Gate)

在理想情况下,蓝绿发布似乎只需要一个简单的流量切换动作。然而,在生产环境中,未经验证的流量切换可能引发严重故障。门禁(Gate)机制正是在流量切换前设置的一道自动化校验屏障,确保新版本满足所有预设条件后才能放行。

⚠️ 没有门禁的风险: 新版本可能存在性能退化、数据库兼容性问题、监控指标异常、安全漏洞等隐患。直接切换流量可能导致大规模服务中断或数据损坏。

门禁机制通常包含以下校验维度:

  • 健康检查门禁: 绿环境所有 Pod 的 Readiness Probe 和 Liveness Probe 必须持续通过。
  • 性能基线门禁: 新版本的 P99 延迟、吞吐量、错误率等关键指标必须满足预设阈值。
  • 集成测试门禁: 自动化端到端测试、契约测试、回归测试必须全部通过。
  • 安全扫描门禁: 容器镜像和依赖库必须通过漏洞扫描,无高危 CVE。
  • 人工审批门禁: 对于重大变更,需要指定负责人手动确认放行。
门禁类型 校验内容 失败后果 自动化程度
健康检查 Pod 状态、就绪探针 流量切换后立即出现 502/503 完全自动化
性能基线 延迟、吞吐量、错误率 用户体验下降,SLA 违约 完全自动化
集成测试 API 兼容性、业务流程 功能异常,数据不一致 完全自动化
安全扫描 CVE 漏洞、合规检查 安全事件,合规风险 完全自动化
人工审批 变更影响评估 未经授权的变更上线 半自动化

1.3 Kubernetes 流量切换的核心挑战

在 Kubernetes 环境中实现蓝绿发布的流量切换,远比传统虚拟机环境复杂。Kubernetes 的 Service、Ingress、EndpointSlice 等组件构成了多层流量转发路径,每一层都可能引入切换延迟或流量损失。

Kubernetes 流量切换核心挑战 挑战 1:连接耗尽 切换时存量长连接未完成 导致请求被路由到旧环境 或连接中断 挑战 2:DNS 缓存 Service 或 Ingress 变更后 客户端 DNS 缓存未刷新 流量仍指向旧 IP 挑战 3:Endpoint 传播延迟 EndpointSlice 更新需要时间 kube-proxy iptables/IPVS 规则同步存在窗口期 挑战 4:Session Affinity 有状态应用依赖会话保持 切换后用户 session 丢失 挑战 5:流量比例控制 灰度发布需要精细流量比例 原生 Service 不支持百分比路由 挑战 6:回滚一致性 回滚时需确保数据兼容 数据库 schema 版本管理
💡 核心洞察: 蓝绿发布在 Kubernetes 中的流量切换并非简单的“开关切换”,而是一个涉及连接管理、缓存一致性、规则传播、会话保持和回滚策略的复杂系统工程。门禁机制正是为了在这些挑战面前提供一道安全防线。

1.4 本课程的核心目标

本课程将系统性地讲解如何在 Kubernetes 中构建一个具备门禁机制的蓝绿发布流量切换系统。你将学习到:

  1. 流量切换的底层原理: 深入理解 Kubernetes Service、EndpointSlice、kube-proxy、Ingress Controller 的流量转发机制。
  2. 门禁系统的设计与实现: 从健康检查、性能基线、集成测试到人工审批,构建完整的门禁流水线。
  3. 生产级流量切换策略: 包括连接耗尽、优雅关闭、灰度比例控制、Session Affinity 处理等高级话题。
  4. 可观测性与故障恢复: 通过监控、日志、追踪等手段实时感知切换状态,并制定快速回滚方案。
课程产出: 一套可落地的、基于 Kubernetes 原生资源与自定义控制器(Operator)的蓝绿发布门禁系统,附带完整的 CI/CD 集成方案。