路由是流量控制中最重要、最经常使用的功能,在Istio中使用VirtualService和DestinationRule这二个API资源来实现。app
VirtualService
(虚拟服务)定义了一组寻址主机时要应用的流量路由规则。每一个路由规则为特定协议的流量定义匹配条件。若是流量匹配,则将其发送到注册表中定义的命名目标服务(或其子集/版本)。
功能:spa
DestinationRule
(目标规则)定义在发生路由后应用于服务流量的策略。3d
功能:code
目标规则是配合虚拟服务来使用的,主要用来定义子集,子集实际上就是具体的目标地址,除此之外,它主要描述的是到达目标请求后如何去处理,所谓的目标就是子集,而如何处理就是指具体的策略。blog
将productpage的请求打到reviews的v1版本资源
kubectl apply -f virtual-service-all-v1.yaml
路由
kubectl apply -f destination-rule-all.yaml
部署
屡次刷新页面后,可发现老是只访问reviews的v1版本it