适用场景

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

配置步骤(金丝雀放量与观察)

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata: { name: web, namespace: app }
spec:
  hosts: [web]
  http:
  - route:
    - destination: { host: web, subset: v1 }
      weight: 95
    - destination: { host: web, subset: v2 }
      weight: 5

关键参数与建议

  • 金丝雀:按权重逐步放量(1% → 5% → 25% → 50% → 100%)
  • AB 测试:按请求头/用户群体路由(内部用户先试)
  • 蓝绿:双环境切换,回滚快但资源占用翻倍
  • 观察指标:错误率、P99、业务指标(下单成功率)
  • 回滚条件:错误率超阈值或核心指标下降,自动/人工回切

容易踩的坑

  • 直接从 50% 起步,风险放大
  • 只看技术指标不看业务指标
  • 无回滚条件,发现问题时已全量

验证与巡检

istioctl analyze -n app
# 观察:错误率、P99、业务成功率
  • 巡检:放量记录、指标对比、回滚预案

小结

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

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