0%

Istio使用【Bookinfo示例之简单路由管理】

本文使用的istio版本:1.4.2

上章内容只是简单运行了Bookinfo示例(Istio使用【Bookinfo示例】),访问页面,Reviews虽然有三个版本,但是刷新浏览器,三个版本是随机返回。本章内容仍然使用官方样例配置,定义一些自定义路由规则。在这之前最好了解下Istio使用【CRDs】

创建所有服务的DestinationRule

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

定义V1V2版本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/目录下配置。