蓝绿发布同时保留当前环境与新环境,在验证后切换入口。它提供快速流量回退,但需要接近双倍容量,并不能自动解决共享数据库的不兼容变更。
保持环境可区分
apiVersion: v1
kind: Service
metadata:
name: checkout
spec:
selector:
app: checkout
color: green
部署 green 后先通过独立内部 Service 或测试域名验证。检查配置、依赖、缓存预热、探针和业务写入,不要只验证首页状态码。
切流步骤
- 冻结会影响两套环境的非兼容变更。
- 确认 green 容量与关键 SLI 正常。
- 修改 Service selector 或负载均衡目标。
- 观察错误率、延迟和业务结果。
- 保留 blue 直到回退窗口结束。
状态风险
- 数据库 schema 采用向前向后兼容迁移
- Session 不依赖单机内存,或支持粘性迁移
- 消费者切换避免两个版本重复处理
- 长连接要设计排空而非立即终止
收尾清单
回退演练必须包含真实入口切换和连接排空。发布完成后再下线 blue,并释放容量、旧配置和过期证书。