路由是流量管制中最重要、最罕用的性能,在Istio中应用VirtualService和DestinationRule这二个API资源来实现。

VirtualService

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

性能:

  • 定义路由规定
  • 形容满足条件的申请去哪里

DestinationRule

DestinationRule(指标规定)定义在产生路由后利用于服务流量的策略。

性能:

  • 定义子集、策略
  • 形容达到指标的申请怎么解决

指标规定是配合虚构服务来应用的,次要用来定义子集,子集实际上就是具体的指标地址,除此以外,它次要形容的是达到指标申请后如何去解决,所谓的指标就是子集,而如何解决就是指具体的策略。

利用

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

  1. 部署virtual service

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

  1. 部署destination rule

kubectl apply -f destination-rule-all.yaml

  1. 从新拜访productpage页面


屡次刷新页面后,可发现总是只拜访reviews的v1版本