← 中文资源

简体中文版本

用 Istio 渐进迁移流量

通过 VirtualService 权重在稳定版与金丝雀间分流、观察指标,并以改权重而非重新部署来推进或回滚。

阅读英文原文

概述

一次性向所有人发布有风险的变更,是因为缺少把一小部分流量导向新版本并观察的廉价手段。权重分流让推进与回滚都变成一次配置改动,前提是有可靠的指标支撑判断。

关键步骤

  1. 以不同标签并行部署新旧版本。
  2. 用 VirtualService 在两个子集间按权重分流。
  3. 对比金丝雀与基线的错误率与延迟。
  4. 稳步提高金丝雀权重,或设为 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