体验环境创建完成后,网站所有服务已经部署至广州的集群(product 服务和 order 服务只部署了 v1版本),并且已自动注入了 envoy sidecar 接管服务流量,istio-ingressgateway 已经创建,但未配置监听器规则以及路由规则以放通网站 frontend 服务至公网。
1. 创建 Gateway 配置监听规则
首先需要创建 Gateway 资源,配置 istio-ingressgateway 的监听器规则,端口为80,协议为 http。用户只需要配置 Gateway 规则,TCM 后台会自动实现 istio-ingressgateway 相关的 pod、service 和绑定的负载均衡器 CLB 的配置同步。
1. 登录 服务网格控制台。
2. 单击服务网格 ID,进入已创建的服务网格管理页面。
3. 在 Gateway 中单击新建。
4. 在新建Gateway 中,设置 Gateway 参数。关键参数信息如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/04a35e21397927de4fce804bcec94961.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/04a35e21397927de4fce804bcec94961.png)
5. 单击保存,完成创建。
通过 kubectl 提交 YAML 至主集群完成配置:
apiVersion: networking.istio.io/v1alpha3kind: Gatewaymetadata:name: frontend-gwnamespace: basespec:servers:- port:number: 80name: httpprotocol: HTTPhosts:- '*'selector:app: istio-ingressgatewayistio: ingressgateway
2. 配置路由规则
监听器规则配置完成后,还需要通过 Virtual Service 资源配置路由规则,将来自 istio-ingressgateway 的流量路由至 frontend 服务。
1. 登录 服务网格控制台。
2. 单击服务网格 ID,进入已创建的服务网格管理页面。
3. 在 Virtual Service 中单击新建。
4. 在新建Virtual Service 中,设置参数。关键参数信息如下图所示:
![创建 Virtual Service 将来自边缘代理网关的流量路由至 frontend service](https://qcloudimg.tencent-cloud.cn/image/document/7d3c6679b56e523f08c799f8f87080e2.png)
![创建 Virtual Service 将来自边缘代理网关的流量路由至 frontend service](https://qcloudimg.tencent-cloud.cn/image/document/7d3c6679b56e523f08c799f8f87080e2.png)
5. 单击保存,完成创建。
通过 kubectl 提交 YAML 至主集群完成配置:
apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:name: frontend-vsnamespace: basespec:hosts:- '*'gateways:- base/frontend-gwhttp:- route:- destination:host: frontend.base.svc.cluster.local
配置完成后,通过 istio-ingressgateway 的公网 IP 地址即可访问到 Demo 网站,当前部署的网站的结构如下图所示:
![配置公网访问 frontend service 完成](https://qcloudimg.tencent-cloud.cn/image/document/0ff6f426d444ee0f2fb8bf1d671ee289.svg)
单击链接访问网站后,可登录(1-5均可登录,其中1-3为会员,4-5为非会员)、添加购物车,下单,以产生调用完所有部署的服务的请求,网站界面右下角的悬浮窗展示了前端服务当前调用服务的名称、地域、版本、pod name 信息。悬浮窗信息展示如下图所示:
![悬浮窗信息展示](https://qcloudimg.tencent-cloud.cn/image/document/9d3ffe49724c1ad04a1ff36bc2d5733f.png)
![悬浮窗信息展示](https://qcloudimg.tencent-cloud.cn/image/document/9d3ffe49724c1ad04a1ff36bc2d5733f.png)
有流量数据后,可单击网络拓扑 tab 查看网格内网络流量的拓扑图。单击服务 tab,服务详情页面可查看到请求的调用链,及可查看调用 stock 服务的完整链路及每层调用的详细信息。
业务规模增加,服务数量较多时,几乎每个前端请求都会形成复杂的调用链路,此时需要能够:在复杂的链路中快速定位和分析问题,判定故障影响范围;或需要梳理服务的调用依赖关系,判断其合理性;或分析链路的请求耗时等性能,做串并行分析的调用逻辑优化等。
通过全链路跟踪系统,可描绘整个网格的流量特征,帮助开发者进行链路分析。
网格拓扑如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/ae393b3eaae1425022826e6f81633151.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/ae393b3eaae1425022826e6f81633151.png)
链路追踪如下图所示:
![链路追踪](https://qcloudimg.tencent-cloud.cn/image/document/0d582e1a4f7d21f472426d34de3c8792.png)
![链路追踪](https://qcloudimg.tencent-cloud.cn/image/document/0d582e1a4f7d21f472426d34de3c8792.png)