ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

2019-02-15 15:57:12  阅读:213  来源: 互联网

标签:负载 请求 idou 19 Istio 流量 故障 算法 实例


一、负载均衡算法原理与实战

负载均衡算法(load balancing algorithm),定义了几种基本的流量分发方式,在Istio中一共有4种标准负载均衡算法。

•Round_Robin: 轮询算法,顾名思义请求将会依次发给每一个实例,来共同分担所有的请求。

•Random: 随机算法,将所有的请求随机分发给健康的实例

•Least_Conn: 最小连接数,在所有健康的实例中任选两个,将请求发给连接数较小的那一个实例。

接下来,我们将根据以上几个算法结合APM(应用性能管理)的监控拓扑图来实战下。

·实战环境·

华为云开启了Istio服务网格的CCE集群

官方最佳时间Bookinfo应用,并且给Reviews配置了五个实例

开通APM测试服务(免费)

我们知道如果用户不进行任何配置,负载均衡算法默认是轮询算法,所以我们现将负载均衡算法设为随机(Random)。

步骤 1
在云容器引擎界面点击应用管理,选择流量治理。

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

步骤 2
右侧出现拓扑图,在上面的选项栏中选择集群,命名空间,应用。然后点击我们想配置的组件,这里是 reviews,右侧则会出现流量治理的界面。

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

步骤 3
在负载均衡算法中,由Round_Robin 改为random。

步骤 4
在左侧导航栏中选择流量治理下面的流量监控,再选择相应的集群,命名空间,应用。多访问几次,或者后台写脚本一直curl productpage,可以从拓扑图中观察数据。

步骤 5
当有流量时,鼠标右键点击reviews组件,选择展开选项这时我们可以看到所有实例的被分发情况。

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

实例编号 1 2 3 4 5
访问次数 62 38 39 42 52

其余负载均衡算法基本一样,我们在步骤上不做赘述,直接展示结果。

轮询算法:

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

实例编号 1 2 3 4 5
访问次数 47 47 48 46 47

二、会话保持原理与实战

会话保持(Session Affinity)是通过设定的某个指标来计算,将哈希值相同的请求分发至某个固定的实例来处理。现在支持基于HTTP头部设定指标和Cookie键值设定指标。

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

我们当前还在轮询算法中,所以所有请求会均匀的分配给所有实例,设置会话保持基于HTTP请求头部,并且设为Cookie。我们后台curl的请求cookie设为了一个固定值,理论上来讲所有的请求都会分发至同一个pod。

我们依然采用流量监控,展开reviews组件来观察分发情况。

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

根据图中不难看出,所有的请求都分发至了第二个实例,因为cookie一致所以保持了这个会话链接。

三、故障注入原理与实战

故障注入(Fault Injection)为开发和测试人员主动向系统中引入故障,来观察系统在非正常状态下的行为,是一种可靠性,稳定性的验证手段。Istio也支持了非侵入式的注入故障,分为时延故障和中断故障。

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

故障注入的步骤大致相同在流量治理页面的下方,选择时延故障,并且输入触发百分比和延时时间。然后再打开productpage 手动刷新几次,能明显感觉到延迟有了变化,当然也可以打开F12调试界面,观察网络请求状况,不难发现productpage请求耗时都在2秒上下。

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

这时候我们打开流量监控界面观察下发现productpage与reviews受到了明显的影响。红色表示请求状态极差,虚线表示是由时延造成的。

接下来我们来测试并且使用中断故障,我们对details配置中断故障,中断返回码设为501。

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

配置完后,我们再去手动访问几次productpage来观察下结果。

发现现在的右侧details已经报了error

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

我们回到流量监控图,可以看到组件之间的访问情况。在给ratings配置了中断故障后,原本调用ratings组件的reviews组件,已经无法和ratings通信了。

idou老师教你学Istio 19 : Istio 流量治理功能原理与实战

本文以华为云istio服务结合APM服务为大家演示了流量治理中的主要功能。希望大家在今后的开发和测试中可以利用istio灵活的非侵入的治理功能提高开发和测试的效率。

相关服务请访问https://support.huaweicloud.com/cce/index.html?cce_helpcenter_2019

标签:负载,请求,idou,19,Istio,流量,故障,算法,实例
来源: http://blog.51cto.com/14051317/2350578

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有