在此之前,我们以及成功部署了Istio官方的bookinfo微服务。在做请求路由的示例之前,我们先来看一个名词-DestinationRule。
概念
DestinationRule是Istio流量路由功能的关键部分,DestinationRule规定了流量如何路由到目标地址,你可以这么理解它,比如你现在在家,一会需要出发去公司,你使用百度导航查看从家如何去公司,结果百度导航搜索出来三条线路,也就是说从家到公司可以有3种路线,其实DestinationRule也一样,他就是定义了流量到达目标地址的路线,这么比喻是不是觉得可以理解DestinationRule了。
示例1
我们先拿出一个DestionationRule的资源文件看一下:
apiVersion: networking.istio.io/v1alpha3 |
- host字段
使用Kubernetes service的短名称,上面reviews,将会被reviews.default.svc.cluster.local代替,如果你需要使用其他名称空间下的svc,你可以
- subsets字段
subsets是服务端的集合,每个子集都必须是在host对应服务的基础上的,说的简单点也就是subsets子集是kubernetes的svc关联的pods,subsets的labels可以关联到svc下pods的labels
示例2
DestinationRule还允许你调整特定服务子集的Envoy流量策略。
再来看一个示例:
apiVersion: networking.istio.io/v1alpha3 |
- trafficPolicy
流量策略,主要包含负载均衡、连接池策略、异常检查等
为子集指定的策略只有在路由规则明确向该子集发送流量后才会生效。
具体可以查阅相关文档 https://www.bookstack.cn/read/istio-1.4-zh/46098cf8d0d7f17d.md