istio(3):流量管理-基于不同权重访问规则控制

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 规则生效了。

 

posted on 2019-11-12 10:27  光阴8023  阅读(327)  评论(0编辑  收藏  举报