分享交流
合作共赢!

Istio基础使用方法总结【三】——流量路由

前面部署了用于演示istio功能的bookinfo应用,而且可以正常访问,当你不断刷新网页的时候,页面内容会从v1、v2 、v3之前循环切换来显示不同的内容,这是因为后端对应了三个版本的pod资源。这里演示三个基础功能特性:

一、流量路由到指定版本

应用场景示例: 使用户访问特定版本的应用程序

1.创建destinationRules, 即定义不同版本的应用配置

$ kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml

2.创建VirtualService,即将指定的service服务绑定到指定的backend pod,即显示不同版本的应用

$ kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml

这时通过再次刷新 Bookinfo 应用程序的 /productpage 测试新配置。在浏览器中打开 Bookinfo 站点。网址为 http://$GATEWAY_URL/productpage,其中 $GATEWAY_URL 是外部的入口 IP 地址,如 Bookinfo 文档中所述。
无论刷新多少次,页面的评论部分都不会显示评级星标。这是因为我们将 Istio 配置为将评论服务的所有流量路由到版本 reviews:v1,而此版本的服务不访问星级评分服务。这样就完成了流量定向路由的功能,将流量路由到服务的某一个版本。

二、流量路由到指定用户

应用场景示例: 使特定的用户访问特定的应用,即基于用户身份的路由

1.配置路由规则

$ kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml

2.确认规则已创建

$ kubectl get virtualservice reviews -o yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
...
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: jason
route:
- destination:
host: reviews
subset: v2
- route:
- destination:
host: reviews
subset: v1

此时,多次刷新bookinfo应用,会发现已经将来自名为 Jason 的用户的所有流量将被路由到服务 reviews:v2

三、基于权重的路由

应用场景: 将一定百分比的用户路由到指定的应用

1.部署规则

$ kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-50-v3.yaml

此命令把 50% 的流量从 reviews:v1 转移到 reviews:v3:

2.确认规则已生效

$  kubectl get virtualservice reviews -o yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
...
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v1
weight: 50
- destination:
host: reviews
subset: v3
weight: 50

此时,多次刷新网页就可以看到流量分配效果。

赞(0) 打赏
未经允许不得转载:琼杰笔记 » Istio基础使用方法总结【三】——流量路由

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏