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

文章目录

  • 按比例分发流量
  • 流量镜像

按比例分发流量

本节要配置Fontend微服务的流量分发策略,以达到控制分发到Backend_v1和Backend_v2访问流量的目的。

  1. 在Kiali控制台进入Services->backend,点击Action,在下拉菜单中选择Request Routing。
  2. 在Create Request Routing对话框中进入Route To栏目,将backend_v1的Weight设为80(另一个会自动变为20),然后点击“Add Rule”按钮。随后点开Show Advanced Options,在“Traffic Policy”栏目中将Add LoadBalance设为ON,并确认LoadBalancer是ROUND_ROBIN策略。最后点击Create按钮。系统会根据配置创建Destination Rule和Virtual Service对象。
  3. 以上在Kiali控制台创建DestinationRule和VirtualService的操作也可通过以下命令完成。
$ oc apply -f istio-files/destination-rule-backend-v1-v2.yaml -n my-istio-app
$ oc apply -f istio-files/virtual-service-backend-v1-v2-80-20.yaml -n my-istio-app
  1. 在Kiali中进入Istio Config,可以查看VirtualService和DestinationRul的配置。
  2. 确认运行以下脚本持续发送请求,然后在Kiali中的Graph中查看backend服务向v1和v2分配比例。
$ while true; do curl -sIL $FRONTEND_URL -o /dev/null -w "Response Coed: %{http_code} Elapsed Time:%{time_total}\n"; done


6. 编辑名为backend的VirtualService,更改weight比例。保存后再运行上一步,发测试请求并查看结果。

$ oc get VirtualService -n my-istio-app
NAME      GATEWAYS   HOSTS                                        AGE
backend              ["backend.my-istio-app.svc.cluster.local"]   18m
$ oc edit VirtualService backend -n my-istio-app

流量镜像

将请求在Backend_v1和Backend_v2之间做平均流量分发的同时,还将请求镜像发给Backend_v3微服务。这种场景通常用来进行应用测试或流量监控。

  1. 部署Backend_v3微服务。
$ oc apply -f ocp/backend-v3-deployment.yaml -n my-istio-app
$ oc apply -f ocp/backend-v3-service.yaml -n my-istio-app
  1. 执行命令新建一个VirtualService替换原有名为backend的VirtualService。
$ oc apply -f istio-files/virtual-service-backend-v1-v2-mirror-to-v3.yaml -n my-istio-app

其中virtual-service-backend-v1-v2-mirror-to-v3.yml为以下内容。

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: backend
spec:hosts:backendhttp:route:- destination:host: backendsubset: v1weight: 80- destination:host: backendsubset: v2weight: 20mirror:host: backend-v3
  1. 继续运行以下脚本。
$ while true; do curl -sIL $FRONTEND_URL -o /dev/null -w "Response Coed: %{http_code} Elapsed Time:%{time_total}\n"; done
  1. 在另一个新窗口查看backend_v3的容器日志,确认backend_v3可以通过流量镜像收到每个请求。
$ oc logs -f $(oc get pods -n my-istio-app | grep backend-v3 | awk '{ print $1 }') -c backend -n my-istio-app
  1. 最后删除相关Istio Policy配置,只留下三个微服务。
$ oc delete -f istio-files/virtual-service-backend-v1-v2-mirror-to-v3.yaml -n my-istio-app
$ oc delete -f istio-files/destination-rule-backend-v1-v2.yaml -n my-istio-app
$ oc delete -f ocp/backend-v3-deployment.yaml -n my-istio-app
$ oc delete -f ocp/backend-v3-service.yaml -n my-istio-app

OpenShift 4 之Service Mesh教程(3)- 访问流量管理相关推荐

  1. OpenShift 4 之Service Mesh教程(4)- 跟踪访问后端服务超时

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 本文说明如何在Istio中的VirtualService中设置访问的timeout特性 ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. 腾讯云Service Mesh生产实践及架构演进

    背景介绍 Service Mesh(服务网格)是一个基础设施层,让服务之间的通信更安全.快速和可靠,是云原生技术栈的关键组建之一.2018年是Service Mesh 高歌猛进的一年,Service ...

  9. Service Mesh在腾讯云中间件团队的实践与思考

    导语:Service Mesh 作为腾讯微服务平台(TSF)支持的微服务架构之一,产品化命名为 Mesh 微服务平台(Tencent Service Mesh Framework,简称 TSF Mes ...

最新文章

  1. 反弹端口 HTTP代理 HTTP隧道技术
  2. Kubernetes 使用 ceph-csi 消费 RBD 作为持久化存储
  3. 大厂笔试 java基础
  4. pytorch relu函数实现_什么是pytorch?
  5. laydate 和 Vue 奇怪的清空问题
  6. Go 将在下个版本支持新型排序算法:pdqsort
  7. 五步使用法——搞定XMLHttpRequest
  8. 通过反射调用方法会大大降低性能
  9. js中运算符的优先级
  10. 各种音视频编解码学习详解(7)--微软Windows Media系列
  11. whois php,域名whois php
  12. 挖矿病毒audiodg.exe\taskhost.exe溯源与手动查杀方法
  13. Mutual Graph Learning for Camouflaged Object Detection阅读笔记
  14. 新一代三维GIS技术体系再升维
  15. VS2010如何添加MSCOMM控件
  16. wordpress html音乐,给你的WordPress博客文章中插入背景音乐的方法(纯代码,非插件)...
  17. SciTE 常见问题及解决方法集锦
  18. html无法显示图片解决方法
  19. 卫星监测“America”级#两#栖#攻#击#舰#(LHA-6)出港
  20. 学习JSP——在虚拟机中建立一个JSP网页,通过Tomcat服务器发布,并通过虚拟机的宿主机浏览器访问虚拟机上所发布的JSP网页

热门文章

  1. android+坐标类,Android Path和PathMeasure类的使用之获取圆弧上的坐标值
  2. python分布式编程_python分布式爬虫中的rules有什么用
  3. 想拥有高清壁纸不用那么麻烦!
  4. UI设计师必收藏的上百种配色方案专辑!
  5. 应用程序已被java 1.6_Apple Java更新1.6.0_51之后,Swing应用程序卡住了
  6. linux脚本定时拷贝文件,使用Linux shell脚本实现FTP定时执行批量下载指定文件
  7. 图解TCP/IP第一章学习
  8. Documentation/x86/kernel-stacks
  9. Linux开机启动过程(4):切换到64位模式-长模式(直到内核解压缩之前)
  10. VxWorks操作系统