流量管理-不同环境服务访问

流量管理-不同环境服务访问

这个没有实现

https://www.qikqiak.com/istio-book/traffic-control/3.%E5%9F%BA%E4%BA%8EBookinfo%E7%9A%84%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6%E9%85%8D%E7%BD%AE.html

使用 istio 的路由规则管理,还可以配置对不同环境(prod, staging, dev等)的同一服务的访问规则。由于我的实验环境没有搭建多环境的集群,这里指使用官方的demo来做描述。

复制代码
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: my-productpage-rule
  namespace: istio-system
spec:
  hosts:
  - productpage.prod.svc.cluster.local # ignores rule namespace
  http:
  - timeout: 5s
    route:
    - destination:
        host: productpage.prod.svc.cluster.local
复制代码

 

通常在一个集群中如果搭建多环境的情况可以使用namespace来进行划分,而使用上面的方式就可以实现对其他 namepaces 的服务的访问。

上面的 VirtualService 对象定义了对 namespace 为 prod 中的 productpage 服务的访问,会在 5s 的 timeout 后才会调用该服务。这个访问规则没有定义 subset,istio 会获取productpage.prod.svc.cluster.local 服务对应的所有实例并向其他服务实例注入这些实例的信息到他们的 load balancing pool 中去。

同时注意这个 VirtualService 是定义在 istio-system 的namespace中的,此时要使用完整的服务域名:productpage.prod.svc.cluster.local,这样这条规则所属的 namespace 才会解析到其他 namespace 的服务。

posted @ 2020-11-16 17:19  CloudNativeBJ  阅读(117)  评论(0编辑  收藏  举报