路由是流量控制中最重要、最常用的功能,在Istio中使用VirtualService和DestinationRule这二个API资源来实现。
VirtualService
VirtualService
(虚拟服务)定义了一组寻址主机时要应用的流量路由规则。每个路由规则为特定协议的流量定义匹配条件。如果流量匹配,则将其发送到注册表中定义的命名目标服务(或其子集/版本)。
功能:
- 定义路由规则
- 描述满足条件的请求去哪里
DestinationRule
DestinationRule
(目标规则)定义在发生路由后应用于服务流量的策略。
功能:
- 定义子集、策略
- 描述到达目标的请求怎么处理
目标规则是配合虚拟服务来使用的,主要用来定义子集,子集实际上就是具体的目标地址,除此以外,它主要描述的是到达目标请求后如何去处理,所谓的目标就是子集,而如何处理就是指具体的策略。
应用
将productpage的请求打到reviews的v1版本
- 部署virtual service
kubectl apply -f virtual-service-all-v1.yaml
- 部署destination rule
kubectl apply -f destination-rule-all.yaml
- 重新访问productpage页面
多次刷新页面后,可发现总是只访问reviews的v1版本
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。