路由是流量管制中最重要、最罕用的性能,在 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 版本