与Virtual Service
一样,目标规则(Destination Rule)
也是 Istio 流量路由功能的关键部分。
可以将Virtual Service
视为将流量如何路由到给定目标地址,然后使用Destination Rule
来配置该目标的流量。
上一节中,我们创建VirtualService时,指定了两个destination,一个是subnet: v1
,另一个是subset: v2
:
这两个subnet的定义其实是在DestinationRule
中完成的:
subnet后面指定了label:version: v1
和version: v2
,这些label匹配的是deployment中的pod:
除了上面的介绍外,DestinationRule
还能指定使用TLS:
或者MTLS:
由于Destination Rule会匹配到多个pod,如何把流量分配到这些pod上呢,策略有几种:round-robin
, least-connection
, random
, passthrough
:
注意到DestinatioRule的定义中有个host字段,这个字段其实对应k8s中的service, 如果service在另一个命名空间,则可以使用完整路径: