本文使用的istio版本:
1.4.2
上章内容只是简单运行了
Bookinfo
示例(Istio使用【Bookinfo示例】),访问页面,Reviews
虽然有三个版本,但是刷新浏览器,三个版本是随机返回。本章内容仍然使用官方样例配置,定义一些自定义路由规则。在这之前最好了解下Istio使用【CRDs】。
创建所有服务的DestinationRule
kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml
定义V1
和V2
版本8:2
比重,V3
不返回
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v1
weight: 80
- destination:
host: reviews
subset: v2
weight: 20
定义如果Header
中包含jason
用户返回V2
版本,否则返回V3
版本
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: jason
route:
- destination:
host: reviews
subset: v2
- route:
- destination:
host: reviews
subset: v3
其它可以参考samples/bookinfo/networking/
目录下配置。