在前面我们成功搭建并部署了 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 流量配置负载均衡器的。
-
不同服务版本访问规则