《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.8环境中验证

本文说明如何在Istio中的VirtualService中设置访问的timeout特性。将请求各发给后台backend-v1和backend-v2微服务,其中backend-v2返回会超过3秒,因此会超时。

本文可在完成《OpenShift 4 之Service Mesh教程(2)- 用Kiali监控微服务运行》后进行操作。在开始正式操作前需要运行以下命令将运行应用的my-istio-app项目里的内容清空即可(注意需要将脚本中的“USERID“替换为本文中的”my-istio-app“)。

$ source scripts/teardown.sh
  1. 部署上图中的frontend-v1和backend-v1微服务,以及相关服务。
$ oc apply -f ocp/frontend-v1-deployment.yaml -n my-istio-app
$ oc apply -f ocp/frontend-service.yaml -n my-istio-app
$ oc apply -f ocp/frontend-route.yaml -n my-istio-app
$ oc apply -f ocp/backend-v1-deployment.yaml -n my-istio-app
$ oc apply -f ocp/backend-v2-deployment.yaml -n my-istio-app
$ oc apply -f ocp/backend-service.yaml -n my-istio-app
  1. 执行命令发测试请求,查看backend-v1和backend-v2的响应时间。可以看到是轮训访问这两个后台服务的,调用backend-v1的响应比较短(小于3秒),而调用backend-v2响应时间比较长(大于3秒)。
$ while true; do curl -sIL $FRONTEND_URL -o /dev/null -w "Response Coed: %{http_code} Elapsed Time:%{time_total}\n"; done
...
Response Coed: 200 Elapsed Time:5.802549 sec
Response Coed: 200 Elapsed Time:0.799221 sec
Response Coed: 200 Elapsed Time:5.807315 sec
Response Coed: 200 Elapsed Time:0.830107 sec
Response Coed: 200 Elapsed Time:0.818900 sec
Response Coed: 200 Elapsed Time:5.823480 sec
...
  1. 在Kiali控制台中查看微服务访问请求链和响应时间。
  2. 在Kiali控制台中的Service,然后进入”backend“。在Action下拉表中选择Request Timeouts。
  3. 在Create Request Timeouts对话框中设置Timeout为”3s“,然后点击Create。
  4. 这时在”backend“的Service下方的”Istio Config“中添加了类型为VirtualService和DestinationRule两个对象。

    这两个对象内容如下:
kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:name: backendnamespace: my-istio-app
spec:hosts:- backend.my-istio-app.svc.cluster.localhttp:- route:- destination:host: backend.my-istio-app.svc.cluster.localsubset: v1weight: 50- destination:host: backend.my-istio-app.svc.cluster.localsubset: v2weight: 50timeout: 3s
kind: DestinationRule
apiVersion: networking.istio.io/v1alpha3
metadata:name: backendnamespace: my-istio-app
spec:host: backend.my-istio-app.svc.cluster.localsubsets:- labels:version: v1name: v1- labels:version: v2name: v2
  1. 执行命令发测试请求,可以看到backend-v2响应时间比较长。不过这次因为backend-v2响应时间大于3秒已经按照“Response Code: 504”处理了。
$ while true; do curl -sIL $FRONTEND_URL -o /dev/null -w "Response Coed: %{http_code} Elapsed Time:%{time_total}\n"; done
...
Response Coed: 200 Elapsed Time:0.281
Response Coed: 200 Elapsed Time:0.243
Response Coed: 504 Elapsed Time:3.014
Response Coed: 504 Elapsed Time:3.017
...
  1. 在Kiali控制台中查看微服务访问请求链和响应时间。其中由于发给backend-v2的请求会由于超时而被系统标记为红色。
  2. 手动修改名为backend的VirtualService,删除最后一行“timeout: 3s“。
  3. 执行命令发测试请求,确认不再出现“504”的访回结果。
$ while true; do curl -sIL $FRONTEND_URL -o /dev/null -w "Response Coed: %{http_code} Elapsed Time:%{time_total}\n"; done
...
Response Coed: 200 Elapsed Time:0.799221 sec
Response Coed: 200 Elapsed Time:5.807315 sec
Response Coed: 200 Elapsed Time:0.818900 sec
Response Coed: 200 Elapsed Time:5.823480 sec
...
  1. 最后删除VirtualService和DestinationRule两类对象。
$ oc delete -n my-istio-app vs,dr --all

OpenShift 4 之Service Mesh教程(4)- 跟踪访问后端服务超时相关推荐

  1. OpenShift 4 之Service Mesh教程(5)- 断路器Circuit Breaker

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 本文将模拟一个运行了backend-v1的Pod出问题,并在发给backend-v1微 ...

  2. OpenShift 4 之Service Mesh教程(6)- 根据Header路由请求

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 文章目录 场景一 用 VirtualService 访问 Frontend 应用 用 ...

  3. OpenShift 4 之Service Mesh教程(1)- 创建ServiceMesh环境,部署Istio的微服务

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 文章目录 创建ServiceMesh环境 部署Istio的微服务 参考 创建Servi ...

  4. OpenShift 4 之Service Mesh教程(2)- 用Kiali监控微服务运行

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 获得Kiali访问地址,然后用浏览器访问并登陆. $ oc get route kia ...

  5. OpenShift 4 之Service Mesh教程(3)- 访问流量管理

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 文章目录 按比例分发流量 流量镜像 按比例分发流量 本节要配置Fontend微服务的流 ...

  6. OpenShift 4 - 创建Service Mesh运行环境

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 安装 OpenShift Service Mesh 和相关依赖 Opera ...

  7. 如果不懂Service mesh,就不要谈微服务了

    提到微服务,spring cloud等经典框架被使用的最为广泛,但是在2016年才被提起的Service Mesh,已经被Paypal.Lyft.Ticketmaster和Credit Karma等等 ...

  8. OpenShift 4 之通过命令创建Service Mesh环境

    <OpenShift 4.x HOL教程汇总> 本文使用命令行方式在OpenShift 4上创建Service Mesh运行环境,然后进行验证. 图形化方式创建Service Mesh运行 ...

  9. 深度剖析Service Mesh服务网格新生代Istio

    作者简介:敖小剑,十五年软件开发经验,微服务专家,专注于基础架构,Cloud Native拥护者,敏捷实践者.曾在亚信.爱立信.唯品会和ppmoney任职, 现任数人云资深架构师,本文由数人云独家授权 ...

最新文章

  1. base--AuditResult
  2. HASH Partitioning--转载
  3. Split in Java
  4. 算法学习之循环结构程序设计
  5. Layui宣布下线,不自禁的感叹一下,回忆啊
  6. 链路追踪在ERP系统中的应用实践
  7. MySQL主从数据库配置
  8. [react] 请说说什么是useState?为什么要使用useState?
  9. 计算机原理语言方框图,计算机原理整理原版1.10.docx
  10. linux_adduser
  11. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_39、SpringBoot2.x整合redis实战讲解...
  12. 5 重启应用_5种方法教你解除 iPhone在流量环境下,无法下载超过150M的限制!
  13. java i586什么意思_linux里面i386 i686 i486 i586代表什么?是什么意思
  14. 删除重复节点(细节每太明白)
  15. 网站域名如何接入腾讯云CDN业务详细步骤!
  16. 高等数学:一元函数积分学
  17. 解决Windows10家庭版系统无法安装Docker Desktop问题
  18. 原创 和Taskmgr过不去篇(无厘头版)
  19. 设置电脑保护视力的颜色
  20. 一入IT深似海,从此都是考证人~耗时,耗力,耗财,耗头发考过的证书 千万不要忘了延续~

热门文章

  1. linux wireshark 安装教程,Linux下安装和运行Wireshark
  2. 小米台灯底座接口很松_选购台灯发愁?这篇桌面照明方案助你一臂之力
  3. 事务例子_Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现...
  4. 深藏不露!下拉列表设计灵感
  5. UI素材干货|听说UI设计师更喜欢Sketch
  6. 上传自定义日志_ZKEYS系统重磅更新,新增后台数据库备份、主控运行日志管理等新功能!...
  7. 许可证密钥_如何激活和停用NVivo的许可证
  8. win系统流畅度测试软件,视频对比:老电脑装Win7、Win10流畅性测试
  9. php sqlite视图,SQLite 视图
  10. Linux网络协议栈:网络包接收过程