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

VirtualService

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

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

DestinationRule

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

功能:

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

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

应用

将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版本


捕风
353 声望1 粉丝

« 上一篇
Istio安装