基于请求内容的路由
Istio 可以基于不同的请求内容将流量路由到不同的版本, 这种策略一方面被应用于AB测试的场景
中, 另一方面配合基于流量比例的规则被应用于较复杂的灰度发布场景中, 例如组合条件路由。
实战目标
在生产环境中同时上线了reviews 服务的v1和v2版本, 运维人员期望让不同的终端用户访问不同的版
本, 例如: 让使用 Chrome浏览器的用户看到评级信息, 但让使用其他浏览器的用户看不到评级信息。
实战演练
参照 上节在集群中部署 ratings 服务和 reviews 服务的 v2版本, 并更新reviews 服务的
DestinationRule。
执行如下命令配置forecast服务的路由规则:
cat virtual-service-reviews-v1-header.yaml
<code>apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - match: - headers: user-agent: #对齐格式很重要,不然会失败 regex: '^.*(Chrome).*' route: - destination: host: reviews subset: v2 - route: - destination: host: reviews subset: v1/<code>
在浏览器中查看配置后的效果: 用 Chrome浏览器多次查询天气信息, 发现始终显示推荐信息, 说明
访问到reviews服务的v2版本; 用IE浏览器多次查询, 发现始终不显示评级信息, 说明
访问到reviews服务的v1版本。
下节介绍多服务灰度发布
如果对您有帮助,记得不要忘了给个关注哦!!!@上海IT故事
还可以关注我之前的文章:
@监控系列 Prometheus