4.2.4 请求路由

请求路由任务首先会把应用的进入流量导向addedvalues服务的v2版本。接下来会把特定用户(登录名称以yunqi开头的请求)的请求发送给v3版本,其他用户则不受影响:

图4-11 版本v3对应的页面


kubectl apply -f virtual-service-user-v2-v3.yaml

打开浏览器,访问http://{GATEWAY-IP}/productpage。不论刷新多少次页面,如果没有登录或者登录名不是以yunqi开头的,始终得到如下的显示内容,也就是上述提到的第2个版本的addedvalues微服务,如图4-12和图4-13所示。

图4-12 未登录时的结果

图4-13 以非yunqi开头的用户名登录时的结果

当使用以yunqi开头的用户名登录时,就会看到如图4-14所示页面的内容,也就是上述提到的第3个版本的addedvalues微服务。

图4-14 以yunqi开头的用户名登录时的结果

需要注意的是,第3个版本的addedvalues微服务提供的页面中,按钮是disabled状态,无法点击。这是因为默认情况下,Istio服务网格内的pod,由于其iptables将所有外发流量都透明转发给了Sidecar,所以这些集群内的服务无法访问集群之外的URL,而只能处理集群内部的目标。