istio-流量管理-基於不同權重訪問規則控制
阿新 • • 發佈:2020-11-16
istio-流量管理-基於不同權重訪問規則控制
首先移除剛剛建立的 VirtualService 物件:
[root@k8s-master istio-1.3.1]# kubectl get virtualservices.networking.istio.io NAME GATEWAYS HOSTS AGE bookinfo [bookinfo-gateway] [*] 2d23h reviews [reviews] 10m [root@k8s-master istio-1.3.1]# kubectl delete virtualservice reviews virtualservice.networking.istio.io "reviews" deleted [root@k8s-master istio-1.3.1]# kubectl get virtualservices.networking.istio.io NAME GATEWAYS HOSTS AGE bookinfo [bookinfo-gateway] [*] 2d23h [root@k8s-master istio-1.3.1]#
再去訪問 Bookinfo 應用又回到最初隨機訪問 Reviews 的情況了
現在我們檢視檔案 samples/bookinfo/networking/virtual-service-reviews-80-20.yaml 的定義:
# cat samples/bookinfo/networking/virtual-service-reviews-80-20.yaml 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
這個規則定義了 80% 的對 Reviews 的流量會落入 v1 這個 subset,就是沒有 Ratings 的這個服務,20% 會落入 v2 帶黑色 Ratings 的這個服務,然後我們建立這個資源物件:
[root@k8s-master istio-1.3.1]# kubectl create -f samples/bookinfo/networking/virtual-service-reviews-80-20.yaml virtualservice.networking.istio.io/reviews created [root@k8s-master istio-1.3.1]# kubectl get virtualservices.networking.istio.io NAME GATEWAYS HOSTS AGE bookinfo [bookinfo-gateway] [*] 2d23h reviews [reviews] 3s [root@k8s-master istio-1.3.1]#
我們檢視當前網格中的 virtualservices 物件,可以看到已經有 reviews 了,證明已經建立成功了,由於上面我們已經將應用中所有的 DestinationRules 都已經建立過了,所以現在我們直接訪問應用就可以了,我們多次重新整理,可以發現沒有出現 Ratings 的次數與出現黑色星 Ratings 的比例大概在4:1左右,並且沒有紅色星的 Ratings 的情況出現,說明我們配置的 VirtualService 規則生效了。