适用场景

灰度发布的价值是"用少量真实流量验证新版本"。没有指标观察与回滚条件,灰度只是"分两次全量"。

配置步骤(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
  • 巡检:分组记录、容量余量、回滚演练记录

小结

灰度发布的验收:每次发布都有"放量节奏 + 指标看板 + 回滚条件"三件套,且实际执行过一次回滚演练。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。