Destination Rules

Virtual Service一样,目标规则(Destination Rule)也是 Istio 流量路由功能的关键部分。

可以将Virtual Service视为将流量如何路由到给定目标地址,然后使用Destination Rule来配置该目标的流量。


上一节中,我们创建VirtualService时,指定了两个destination,一个是subnet: v1,另一个是subset: v2:

image-20220810223908086

这两个subnet的定义其实是在DestinationRule中完成的:

image-20220810223940562

subnet后面指定了label:version: v1version: v2,这些label匹配的是deployment中的pod:

image-20220810224052102

进阶功能

除了上面的介绍外,DestinationRule还能指定使用TLS:

image-20220810224244879

或者MTLS:

image-20220810224304537

trafficPolicy

由于Destination Rule会匹配到多个pod,如何把流量分配到这些pod上呢,策略有几种:round-robin, least-connection, random, passthrough:

image-20220813222713280

host字段

注意到DestinatioRule的定义中有个host字段,这个字段其实对应k8s中的service, 如果service在另一个命名空间,则可以使用完整路径:

image-20220810224837891