基于权重的版本路由
-
将所有微服务的默认版本设置为v1。
$ istioctl create -f @samples/bookinfo/routing/route-rule-all-v1.yaml@
-
reviews
通过在浏览器中打开http:// $ GATEWAY_URL / productpage,确认v1是该服务的有效版本。您应该看到显示的Bookinfo应用程序产品页面。请注意,
productpage
由于reviews:v1
未访问评级服务,因此未显示评级星标。 -
首先,从传输50%的流量
reviews:v1
,以reviews:v3
与下面的命令:$ istioctl replace -f @samples/bookinfo/routing/route-rule-reviews-50-v3.yaml@
确认规则已被替换:
$ istioctl get virtualservice reviews -o yaml apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews ... spec: hosts: - reviews http: - route: - destination: host: reviews subset: v1 weight: 50 - route: - destination: host: reviews subset: v3 weight: 50
-
productpage
在您的浏览器中刷新,您现在应该看到大约50%的红色星级。使用当前的Envoy边车实施,您可能需要刷新
productpage
很多次才能看到正确的分布。在看到任何更改之前,可能需要刷新15次或更多次。您可以修改规则以将90%的流量路由到v3,以便更频繁地查看红色星星。 -
当
reviews
微服务的版本v3 被认为是稳定的时,我们可以将100%的流量路由到reviews:v3
:$ istioctl replace -f @samples/bookinfo/routing/route-rule-reviews-v3.yaml@
您现在可以登录
productpage
任何用户,并且您应该始终看到每个评论都带有红色星级的书评。
参考资料:https://istio.io/docs/tasks/traffic-management/traffic-shifting/