Bootstrap

istio-流量管理

在前面我们成功搭建并部署了 Istio 及其其 Bookinfo 示例应用:

目前搭建 Bookinfo 应用我们只用到了下面两个资源文件:

samples/bookinfo/platform/kube/bookinfo.yaml
samples/bookinfo/networking/bookinfo-gateway.yaml

前者就是通常的 Kubernetes 定义的 Deployment 和 Service 的资源清单文件,只是对定义的 Pod 注入了 sidecar 代理,后者定义了这个应用的外部访问入口gateway,以及应用内部 productpage 服务的 VirtualService 规则,而其他内部服务的访问规则还没有被定义。

现在访问应用界面并刷新,会看到 Reviews 有时不会显示评分,有时候会显示不同样式的评分,这是因为后面有3个不同的 Reviews 服务版本,而没有配置该服务的路由规则 route rule 的情况下,该服务的几个实例会被随机访问到,有的版本服务会进一步调用 Ratings 服务,有的不会。

到这里我们已经接触到了 Istio 中两个非常重要的流量管理的资源对象了:

VirtualService 是用来在 Istio 中定义路由规则,控制流量路由到服务上的各种行为。

Gateway 我为 HTTP/TCP 流量配置负载均衡器的。 

  • 不同服务版本访问规则

;