4.4.2 使用Istio进行灰度发布

在使用Istio实现灰度发布的情况下,流量路由和副本部署是两个完全独立的功能。服务的pod数量可以根据流量负载灵活伸缩,与版本流量路由的控制完全无关。这在自动缩放的情况下能够更加简单地管理金丝雀版本。

Istio的路由规则非常灵活,可以支持细粒度控制流量百分比(例如,路由1%的流量而不需要100个pod),也可以使用其他规则来控制流量(例如,将特定用户的流量路由到金丝雀版本)。案例如下所示:


apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: addedvalues
spec:
  hosts:
  - addedvalues
  http:
  - match:
    - headers:
        end-user:
          prefix: yunqi
    route:
    - destination:
        host: addedvalues
        subset: v3
  - route:
    - destination:
        host: addedvalues
        subset: v2
      weight: 50
    - destination:
        host: addedvalues
        subset: v1
      weight: 50