Istio流量治理原理之负载均衡

Istio流量治理原理之负载均衡

流量治理是一个非常宽泛的话题,例如:

● 动态修改服务间访问的负载均衡策略,比如根据某个请求特征做会话保持;

● 同一个服务有两个版本在线,将一部分流量切到某个版本上;

● 对服务进行保护,例如限制并发连接数、限制请求数、隔离故障服务实例等;

● 动态修改服务中的内容,或者模拟一个服务运行故障等。

在Istio中实现这些服务治理功能时无须修改任何应用的代码。较之微服务的SDK方式,Istio以一种更轻便、透明的方式向用户提供了这些功能。用户可以用自己喜欢的任意语言和框架进行开发,专注于自己的业务,完全不用嵌入任何治理逻辑。只要应用运行在Istio的基础设施上,就可以使用这些治理能力。

一句话总结Istio流量治理的目标:以基础设施的方式提供给用户非侵入的流量治理能力,用户只需关注自己的业务逻辑开发,无须关注服务访问管理。

Istio流量治理的概要流程如图1所示:

Istio流量治理原理之负载均衡

图1  Istio流量治理的概要流程

在控制面会经过如下流程:
(1)管理员通过命令行或者API创建流量规则;
(2)Pilot将流量规则转换为Envoy的标准格式;
(3)Pilot将规则下发给Envoy。

在数据面会经过如下流程:
(1)Envoy拦截Pod上本地容器的Inbound流量和Outbound流量;
(2)在流量经过Envoy时执行对应的流量规则,对流量进行治理。

负载均衡

下面具体看看Istio提供了流量治理中的负载均衡功能。

负载均衡从严格意义上讲不应该算治理能力,因为它只做了服务间互访的基础工作,在服务调用方使用一个服务名发起访问的时候能找到一个合适的后端,把流量导过去。

如图2所示,传统的负载均衡一般是在服务端提供的,例如用浏览器或者手机访问一个Web网站时,一般在网站入口处有一个负载均衡器来做请求的汇聚和转发。服务的虚拟IP和后端实例一般是通过静态配置文件维护的,负载均衡器通过健康检查保证客户端的请求被路由到健康的后端实例上。

Istio流量治理原理之负载均衡

图2  服务端的负载均衡器

在微服务场景下,负载均衡一般和服务发现配合使用,每个服务都有多个对等的服务实例,需要有一种机制将请求的服务名解析到服务实例地址上。服务发现负责从服务名中解析一组服务实例的列表,负载均衡负责从中选择一个实例。

如图3所示为服务发现和负载均衡的工作流程。不管是SDK的微服务架构,还是Istio这样的Service Mesh架构,服务发现和负载均衡的工作流程都是类似的,如下所述:
(1)服务注册。各服务将服务名和服务实例的对应信息注册到服务注册中心。
(2)服务发现。在客户端发起服务访问时,以同步或者异步的方式从服务注册中心获取服务对应的实例列表。
(3)负载均衡。根据配置的负载均衡算法从实例列表中选择一个服务实例。

Istio流量治理原理之负载均衡

图3  服务发现和负载均衡的工作流程

Istio的负载均衡正是其中的一个具体应用。在Istio中,Pilot负责维护服务发现数据。如图4所示为Istio负载均衡的流程,Pilot将服务发现数据通过Envoy的标准接口下发给数据面Envoy,Envoy则根据配置的负载均衡策略选择一个实例转发请求。Istio当前支持的主要负载均衡算法包括:轮询、随机和最小连接数算法。

Istio流量治理原理之负载均衡

图4  Istio负载均衡的流程文章地址https://www.yii666.com/article/758194.html

在Kubernetes上支持Service的重要组件Kube-proxy,实际上也是运行在工作节点的一个网络代理和负载均衡器,它实现了Service模型,默认通过轮询等方式把Service访问转发到后端实例Pod上,如图5所示。

Istio流量治理原理之负载均衡网址:yii666.com<

图5  Kubernetes的负载均衡

本篇内容节选及改编自《云原生服务网格Istio:原理、实战、架构与源码解析》

本书购买链接:https://item.jd.com/12538407.html

Istio流量治理原理之负载均衡

欢迎点击“链接”了解更多精彩内容

推荐阅读文章来源地址https://www.yii666.com/article/758194.html文章来源地址:https://www.yii666.com/article/758194.html

干货 | 三分钟带你挑选专属负载均衡

干货 | 京东云应用负载均衡(ALB)多功能实操

Istio流量治理原理之负载均衡

Istio流量治理原理之负载均衡

阅读原文网址:yii666.com

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

Istio流量治理原理之负载均衡-相关文章

  1. Istio流量治理原理之负载均衡

  2. WebSocket原理及与http1.0/1.1 long poll和 ajax轮询的区别【转自知乎】

  3. websocket 无需通过轮询服务器的方式以获得响应 同步在线用户数 上线下线 抓包 3-way-handshake web-linux-shell 开发

  4. php实现实现代码多主从,切换,轮询,健康检查

  5. Gevent的长轮询实现方法详解

  6. gevent中如何实现长轮询

    浏览网页时,浏览器会传HTTP 请求到服务器,服务器会根据请求将网页的内容传给浏览器,但是在很多的情况下,使用者会需要看到最新的即时性资讯,例如观看股票市场行情,而在以前只能靠着重新载入网页才能获得最新信息,但是这样不但很浪费时间,也会佔用很多不必要

  7. HTTP的长短连接、长短轮询的区别(转载)

    引言最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码。在研究一个项目的时候,源码里面用到了HTTP的长轮询。由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HTTP的长长短短。了解的方式主要都是LZ在网络上获取的,这里只

  8. 通过 PowerShell 支持 Azure Traffic Manager 外部端点和权重轮询机制

    Jonathan TulianiAzure网络 - DNS和 Traffic Manager高级项目经理在北美 TechEd 大会上,我们宣布了 Azure Traffic Manager将支持 Azure外部端点。我们非常高兴能够宣布进一步的增强功能,为使用轮询机制负载平衡增加权重的支持。综合使用这些功能可以实现一系列新的方案,包括在内部部

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png