Istio 流量治理功能原理与实战

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

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

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

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

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

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

·实战环境·

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

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

开通APM测试服务(免费)

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

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

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

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

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

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

实例编号 1 2 3 4 5
访问次数 62 38 39 42 52
其余负载均衡算法基本一样,我们在步骤上不做赘述,直接展示结果。
轮询算法:

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

二、会话保持原理与实战

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

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

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

所有的请求都分发至了第二个实例,因为cookie一致所以保持了这个会话链接。

三、故障注入原理与实战

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

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

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

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

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

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

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

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

原文地址:http://blog.51cto.com/13762283/2326576

时间: 2024-07-31 02:52:31

Istio 流量治理功能原理与实战的相关文章

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

一.负载均衡算法原理与实战 负载均衡算法(load balancing algorithm),定义了几种基本的流量分发方式,在Istio中一共有4种标准负载均衡算法. ?Round_Robin: 轮询算法,顾名思义请求将会依次发给每一个实例,来共同分担所有的请求. ?Random: 随机算法,将所有的请求随机分发给健康的实例 ?Least_Conn: 最小连接数,在所有健康的实例中任选两个,将请求发给连接数较小的那一个实例. 接下来,我们将根据以上几个算法结合APM(应用性能管理)的监控拓扑图来

最小轻量级的Istio来了,仅使用流量治理能力

Istio 1.0.1作为8月份的版本已经发布,主要修复了1.0版本发布以来发现的一些关键Issue.官网的release note(https://istio.io/about/notes/1.0.1/)列出了Istio1.0和1.0.1的差别.Istio涉及的组件和CRD较多,Istio 1.0 中包含了 51 个 CRD,组件包括pilot,galley,policy,telemetry,citadel和许多插件,对想快速试用Istio的同学来说比较困难. Istio 1.0.1允许部署一

第三章 非侵入的流量治理

3.1 Istio流量治理的原理 在控制面会经过如下流程: (1)管理员通过命令行或API创建流量规则: (2)Pilot将流量规则转换为Envoy的标准格式: (3)Pilot将规则下发给Envoy. 在数据面会经过如下流程: (1)Envoy拦截Pod上本地容器的Inbound流量和Outbound流量 (2)在流量经过Envoy时执行对应的流量规则,对流量进行治理. 3.1.1 负载均衡 3.1.2 服务熔断 1. Hystrix熔断     2. Istio熔断 3.1.3 故障注入 3

Keepalived原理与实战精讲

什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是keepalived实现的基础,那么首先我们来看看VRRP协议 注:搞运维的要有足够的耐心哦,不理解协议就很难透彻的掌握keepalived的了 一,VRRP协议VRRP协议学过网络的朋友都知道,网络在设计的

Keepalived原理与实战

什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是keepalived实现的基础,那么首先我们来看看VRRP协议 一,VRRP协议 VRRP协议学过网络的朋友都知道,网络在设计的时候必须考虑到冗余容灾,包括线路冗余,设备冗余等,防止网络存在单点故障,那在路由

网络取证原理与实战

网络取证原理与实战 一.分析背景 网络取证技术通过技术手段,提取网络犯罪过程中在多个数据源遗留下来的日志等电子证据,形成证据链,根据证据链对网络犯罪行为进行调查.分析.识别,是解决网络安全问题的有效途径之一.目前,传统的计算机取证模型和方法比较成熟,而应用于大数据时代则需要OSSIM等集成分析平台对海量数据尽心网络取证分析. 二.取证分析特点 网络取证不同于传统的计算机取证,主要侧重于对网络设施.网络数据流以及使用网络服务的电子终端中网络数据的检测.整理.收集与分析,主要针对攻击网络服务(Web

Java并发编程原理与实战视频教程

14套java精品高级架构课,缓存架构,深入Jvm虚拟机,全文检索Elasticsearch,Dubbo分布式Restful 服务,并发原理编程,SpringBoot,SpringCloud,RocketMQ中间件,Mysql分布式集群,服务架构,运 维架构视频教程 14套精品课程介绍: 1.14套精 品是最新整理的课程,都是当下最火的技术,最火的课程,也是全网课程的精品: 2.14套资 源包含:全套完整高清视频.完整源码.配套文档: 3.知识也 是需要投资的,有投入才会有产出(保证投入产出比是

网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门

1.前言 即时通讯网整理了大量的网络编程类基础文章和资料,包括<TCP/IP协议 卷1>.<[通俗易懂]深入理解TCP协议>系列.<网络编程懒人入门>系列.<不为人知的网络编程>系列.<P2P技术详解>系列.<高性能网络编程>系列.甚至还有图文并貌+实战代码的<NIO框架入门>等,目的是帮助即时通讯类应用的开发者,至少要掌握网络编程最基本的原理,所谓知其然更要知其所以然.尤其现在移动网络大行其道的时代,在网络环境如此复杂的

公众平台关注用户达到5万即可开通流量主功能 可以推广APP应用

今天微信公众平台发布发布了一些更新,公众帐号的关注用户达到5万,即可开通流量主功能,之前的是要求10万粉丝,这是一个微信开放的信号.广告主可推广苹果商店应用或腾讯开放平台应用.新增卡片和图文广告规格.以下是微信团队的公告. 公众平台推广功能新增APP下载广告,新增卡片和图文广告规格 1.推广功能新增APP下载广告 广告主可推广苹果商店应用或腾讯开放平台应用.微信用户点击广告后,可直接下载所推广的APP. 2.推广功能新增卡片和图文广告规格 推广公众号时,广告主可选择关注卡片广告规格,直接引导用户