浏览器访问http://192.168.110.190/,查看前端界面,如果我们刷新几次网页,我们会注意到来自前端 v1 的更新标头,一般显示$75,如下所示:

文章插图
多刷新几次页面显示$30,如下所示:

文章插图
我们可以在浏览器中打开
http://192.168.110.130:30754,进入 kiali界面查看服务的拓扑结构,选择online-boutique命名空间,查看Graph
文章插图
服务的拓扑结构如下,我们会发现有两个版本的前端在运行:

文章插图
八.故障注入8.1 故障注入我们将为推荐服务引入 5 秒的延迟 。Envoy 将为 50% 的请求注入延迟 。
[root@k8scloude1 ~]# vim recommendation-delay.yaml[root@k8scloude1 ~]# cat recommendation-delay.yamlapiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:name: recommendationservicespec:hosts:- recommendationservice.online-boutique.svc.cluster.localhttp:- route:- destination:host: recommendationservice.online-boutique.svc.cluster.localfault:delay:percentage:value: 50fixedDelay: 5s将上述 YAML 保存为 recommendation-delay.yaml,然后用 kubectl apply -f recommendation-delay.yaml 创建 VirtualService 。[root@k8scloude1 ~]# kubectl apply -f recommendation-delay.yamlvirtualservice.networking.istio.io/recommendationservice created[root@k8scloude1 ~]# kubectl get virtualserviceNAMEGATEWAYSHOSTSAGEfrontend["frontend.online-boutique.svc.cluster.local"]6d13hfrontend-ingress["frontend-gateway"]["*"]23hrecommendationservice["recommendationservice.online-boutique.svc.cluster.local"]7s我们可以在浏览器中打开 INGRESS_HOST http://192.168.110.190/,然后点击其中一个产品 。推荐服务的结果显示在屏幕底部的”Other Products You Might Light“部分 。如果我们刷新几次页面,我们会注意到,该页面要么立即加载,要么有一个延迟加载页面 。这个延迟是由于我们注入了 5 秒的延迟 。我们可以打开 Grafana(
getmesh istioctl dash grafana)和 Istio 服务仪表板,或者使用如下方法打开Grafana界面:#查看grafana的端口号[root@k8scloude1 ~]# kubectl get svc -n istio-system | grep grafanagrafanaNodePort10.100.151.232<none>3000:31092/TCP24dhttp://192.168.110.130:31092/打开grafana界面 。点击istio-service-dashboard进入istio服务界面
文章插图
确保从服务列表中选择
recommendationsservice,在 Reporter 下拉菜单中选择 source,并查看显示延迟的 Client Request Duration,如下图所示:
文章插图
点击View放大Client Request Duration图表

文章插图
同样地,我们可以注入一个中止 。在下面的例子中,我们为发送到产品目录服务的 50% 的请求注入一个 HTTP 500 。
[root@k8scloude1 ~]# vim productcatalogservice-abort.yaml [root@k8scloude1 ~]# cat productcatalogservice-abort.yamlapiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:name: productcatalogservicespec:hosts:- productcatalogservice.online-boutique.svc.cluster.localhttp:- route:- destination:host: productcatalogservice.online-boutique.svc.cluster.localfault:abort:percentage:value: 50httpStatus: 500创建VirtualService 。[root@k8scloude1 ~]# kubectl apply -f productcatalogservice-abort.yamlvirtualservice.networking.istio.io/productcatalogservice created[root@k8scloude1 ~]# kubectl get virtualserviceNAMEGATEWAYSHOSTSAGEfrontend["frontend.online-boutique.svc.cluster.local"]6d13hfrontend-ingress["frontend-gateway"]["*"]23hproductcatalogservice["productcatalogservice.online-boutique.svc.cluster.local"]8srecommendationservice["recommendationservice.online-boutique.svc.cluster.local"]36m
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 九 前后端分离项目:实现"添加"功能(后端接口)
- 电视剧远大前程十三太保中的瞎子是谁?
- 2023年9月23日财神方位吉凶 九月二十三日财神方位
- 十一 Istio:向istio服务网格中引入虚拟机
- 四 SoringCloud -微信获取用户信息
- 2023年农历七月二十三可不可以结婚
- 2023年农历九月二十三是不是领证黄道吉日 今天领证顺利吗
- 九 Istio:istio安全之授权
- 快读《ASP.NET Core技术内幕与项目实战》WebApi3.1:WebApi最佳实践
- 下雨天迪士尼有哪些项目不能玩 下雨天迪士尼怎么玩
