动态路由:用VirtualService和DestinationRule设置路由规则

路由是流量控制中最重要、最常用的功能,在Istio中使用VirtualService和DestinationRule这二个API资源来实现。

VirtualService

VirtualService(虚拟服务)定义了一组寻址主机时要应用的流量路由规则。每个路由规则为特定协议的流量定义匹配条件。如果流量匹配,则将其发送到注册表中定义的命名目标服务(或其子集/版本)。
动态路由:用VirtualService和DestinationRule设置路由规则_第1张图片
功能:

  • 定义路由规则
  • 描述满足条件的请求去哪里

DestinationRule

DestinationRule(目标规则)定义在发生路由后应用于服务流量的策略。

功能:

  • 定义子集、策略
  • 描述到达目标的请求怎么处理

目标规则是配合虚拟服务来使用的,主要用来定义子集,子集实际上就是具体的目标地址,除此以外,它主要描述的是到达目标请求后如何去处理,所谓的目标就是子集,而如何处理就是指具体的策略。

应用

将productpage的请求打到reviews的v1版本

动态路由:用VirtualService和DestinationRule设置路由规则_第2张图片

  1. 部署virtual service

kubectl apply -f virtual-service-all-v1.yaml

动态路由:用VirtualService和DestinationRule设置路由规则_第3张图片

  1. 部署destination rule

kubectl apply -f destination-rule-all.yaml
动态路由:用VirtualService和DestinationRule设置路由规则_第4张图片

  1. 重新访问productpage页面

动态路由:用VirtualService和DestinationRule设置路由规则_第5张图片
多次刷新页面后,可发现总是只访问reviews的v1版本

你可能感兴趣的:(java,后端,istio)