1. 程式人生 > 實用技巧 >istio-流量管理-基於不同權重訪問規則控制

istio-流量管理-基於不同權重訪問規則控制

istio-流量管理-基於不同權重訪問規則控制

https://www.qikqiak.com/istio-book/traffic-control/2.%E5%9F%BA%E4%BA%8EBookinfo%E8%BF%9B%E8%A1%8Cistio%E6%B5%81%E9%87%8F%E7%AE%A1%E7%90%86%E7%9A%84%E9%85%8D%E7%BD%AE%E5%92%8C%E5%BA%94%E7%94%A8%E5%AD%A6%E4%B9%A0.html?q=

首先移除剛剛建立的 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 規則生效了。