资讯专栏INFORMATION COLUMN

Istio流量治理原理之负载均衡(内含福利)

learn_shifeng / 3257人阅读

摘要:负载均衡下面具体看看提供了流量治理中的负载均衡功能。服务的虚拟和后端实例一般是通过静态配置文件维护的,负载均衡器通过健康检查保证客户端的请求被路由到健康的后端实例上。如图所示为服务发现和负载均衡的工作流程。

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

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

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

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

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

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

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

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


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

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

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

负载均衡

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

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

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


图2 服务端的负载均衡器

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

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


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

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


图4 Istio负载均衡的流程

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


图5 Kubernetes的负载均衡

本篇内容节选及改编自《云原生服务网格Istio:原理、实战、架构与源码解析》
本书购买链接:https://item.jd.com/12538407....

将本篇内容转发至朋友圈集齐6个赞,并截图于“京东云开发者社区”公众号后台进行回复。

我们将为第6、66、99位回复者送出《云原生服务网格Istio:原理、实战、架构与源码解析》。

本期获奖名单将于本周日(7月7日)揭晓,快快点击“好看”,并且转发到朋友圈吧!


推荐阅读

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

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

点击"京东云"了解更多负载均衡产品信息

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/34957.html

相关文章

  • 微服务框架 | 潮流当前该如何选择 SpringCloud、Dubbo or Istio

    摘要:目前首个测试版是针对环境的,社区宣称在未来几个月内会为虚拟机和等其他环境增加支持。查看下在上的更新时间,截止年月日所有项目均更新于小时内。核心项目最近更新于一个月乃至数月前。所有项目均更新于分钟内。目前对比来看,则显得稍逊下来。 showImg(https://segmentfault.com/img/remote/1460000010953149); 在 Kubernetes 容器云...

    k00baa 评论0 收藏0
  • 内涵福利 | 加速业务交付,从谷歌云上使用 Kubernetes 和 Istio 开始

    摘要:优化网络在今年早些时候,我们公布了许多关于的新的网络功能,包括原生集群,共享,原生容器负载均衡以及原生容器的网络服务,它们服务于上的应用程序以及在谷歌云上的。 showImg(https://segmentfault.com/img/bVbnY8w);许多企业机构正在把全部或部分 IT 业务迁移到云端,帮助企业更好的运营。不过这样的大规模迁移,在企业的实际操作中也有一定难度。不少企业保...

    王岩威 评论0 收藏0
  • 内涵福利 | 加速业务交付,从谷歌云上使用 Kubernetes 和 Istio 开始

    摘要:优化网络在今年早些时候,我们公布了许多关于的新的网络功能,包括原生集群,共享,原生容器负载均衡以及原生容器的网络服务,它们服务于上的应用程序以及在谷歌云上的。 showImg(https://segmentfault.com/img/bVbnY8w);许多企业机构正在把全部或部分 IT 业务迁移到云端,帮助企业更好的运营。不过这样的大规模迁移,在企业的实际操作中也有一定难度。不少企业保...

    walterrwu 评论0 收藏0
  • 微服务架构下 Service Mesh 会是闪亮的明天吗?

    摘要:以下内容根据魏巍分享整编,希望对大家了解有所帮助。数据平面由一组智能代理组成,代理部署为,其控制微服务之间所有的网络通信。 7月7日,时速云企业级容器 PaaS 技术沙龙第 10 期在上海成功举办,时速云容器架构负责人魏巍为大家详细讲解了 Service Mesh 中代表性的实践方案、并以 Istio 为例详细讲解了 Service Mesh 中的技术关键点,包括 Istio 控制平面...

    hlcfan 评论0 收藏0
  • 微服务架构下 Service Mesh 会是闪亮的明天吗?

    摘要:以下内容根据魏巍分享整编,希望对大家了解有所帮助。数据平面由一组智能代理组成,代理部署为,其控制微服务之间所有的网络通信。 7月7日,时速云企业级容器 PaaS 技术沙龙第 10 期在上海成功举办,时速云容器架构负责人魏巍为大家详细讲解了 Service Mesh 中代表性的实践方案、并以 Istio 为例详细讲解了 Service Mesh 中的技术关键点,包括 Istio 控制平面...

    Anonymous1 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<