适用场景
灰度发布的价值是"用少量真实流量验证新版本"。没有指标观察与回滚条件,灰度只是"分两次全量"。
配置步骤(AB 与蓝绿发布)
# AB:按 header 路由
- match: [{ headers: { x-internal: { exact: "true" } } }]
route: [{ destination: { host: web, subset: v2 } }]
# 蓝绿:切换 Service selector 或 Ingress 后端
关键参数与建议
- 金丝雀:按权重逐步放量(1% → 5% → 25% → 50% → 100%)
- AB 测试:按请求头/用户群体路由(内部用户先试)
- 蓝绿:双环境切换,回滚快但资源占用翻倍
- 观察指标:错误率、P99、业务指标(下单成功率)
- 回滚条件:错误率超阈值或核心指标下降,自动/人工回切
容易踩的坑
- AB 分组不合理,样本不具代表性
- 蓝绿资源翻倍,节点容量不足
- 蓝绿切换后旧环境立即销毁,无法快速回滚
验证与巡检
kubectl get svc web -o yaml | grep -A3 selector
- 巡检:分组记录、容量余量、回滚演练记录
小结
灰度发布的验收:每次发布都有"放量节奏 + 指标看板 + 回滚条件"三件套,且实际执行过一次回滚演练。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。