概述
一次性向所有人发布有风险的变更,是因为缺少把一小部分流量导向新版本并观察的廉价手段。权重分流让推进与回滚都变成一次配置改动,前提是有可靠的指标支撑判断。
关键步骤
- 以不同标签并行部署新旧版本。
- 用 VirtualService 在两个子集间按权重分流。
- 对比金丝雀与基线的错误率与延迟。
- 稳步提高金丝雀权重,或设为 0 以回滚。
验证
- 选定比例的流量到达金丝雀。
- 金丝雀指标可与基线对比。
- 改权重即时生效。
- 设为 0 立即回滚。
注意事项
- 渐进交付依赖可靠指标;缺乏遥测时只能盲飞。
- 权重分流无法覆盖数据迁移或有状态协议变更,那些需要比流量路由更多的处理。
适用范围
本条目围绕「用 Istio 渐进迁移流量」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
建议在正式环境落地前先在预发或隔离环境演练一遍,把关键观测指标与负责人一并记录,确保出现异常时能快速定位并恢复。
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
spec:
hosts: [app]
http:
- route:
- destination: { host: app, subset: stable }
weight: 90
- destination: { host: app, subset: canary }
weight: 10