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

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

VirtualService

VirtualService(虚拟服务)定义了一组寻址主机时要应用的流量路由规则。每一个路由规则为特定协议的流量定义匹配条件。若是流量匹配,则将其发送到注册表中定义的命名目标服务(或其子集/版本)。
image
功能:spa

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

DestinationRule

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

功能:code

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

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

应用

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

image

  1. 部署virtual service

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

image

  1. 部署destination rule

kubectl apply -f destination-rule-all.yaml
image部署

  1. 从新访问productpage页面

image
屡次刷新页面后,可发现老是只访问reviews的v1版本it

相关文章
相关标签/搜索