资讯专栏INFORMATION COLUMN

负载均衡-私有云负载均衡

ernest.wang / 812人阅读

摘要:当负载均衡器接受到来自客户端的请求后,会通过一系列负载均衡算法,将访问请求路由分发到后端虚拟机服务器池进行请求处理,同时由将处理结果返回给客户端。支持内网和外网两种类型负载均衡器,满足内网数据中心及互联网服务负载均衡应用场景。

4.7.1 负载均衡概述

负载均衡( Load Balance )是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,均可多带带对外提供服务而无须其它服务器的辅助。平台负载均衡服务(简称 ULB—UCloudStack Load Balance)是基于 TCP/UDP/HTTP/HTTPS 协议将网络访问流量在多台虚拟机间自动分配的控制服务,类似于传统物理网络的硬件负载均衡器。

通过平台负载均衡服务提供的虚拟服务地址,将相同数据中心、相同 VPC 网络的虚拟机添加至负载均衡转发后端,并将加入的虚拟机构建为一个高性能、高可用、高可靠的应用服务器池,根据负载均衡的转发规则,将来自客户端的请求均衡分发给服务器池中最优的虚拟机进行处理。

支持内外网两种访问入口类型,分别提供 VPC 内网和 EIP 外网的负载访问分发,适应多种网络架构及高并发的负载应用场景。提供四层和七层协议的转发能力及多种负载均衡算法,支持会话保及健康检查等特性,可自动隔离异常状态虚拟机,同时提供 SSL Offloading 及 SSL 证书管理能力,有效提高整体业务的可用性及服务能力。

ULB 支持收集并展示负载流量各种网络指标的监控数据,并可根据告警模板进行监控报警及通知,保证业务的正常运行。当前 ULB 为接入的虚拟机服务池提供基于 NAT 代理的请求分发方式,在 NAT 代理模式下,所有业务的请求和返回数据都必须经过 ULB ,类似 LVS 的 NAT 工作模式。

4.7.2 应用场景

平台提供外网和内网两种类型的负载均衡服务,分别对应外网服务和内网服务两种场景。用户可根据业务需求,选择创建对外公开或对内私有的负载均衡实例,平台会根据负载均衡类型分别分配外网 IP 地址或 VPC 私有网络的 IP 地址,即负载均衡的服务访问地址。

  • 外网类型的负载均衡使用场景:部署在平台的业务服务需要构建高可用虚拟机集群,且需对互联网提供统一访问入口。部署在平台的业务服务需要构建高可用虚拟机集群,且需对 IDC 数据中心提供统一访问入口。
  • 内网负载均衡使用场景:部署在平台的业务服务需要构建高可用虚拟机集群,且仅需对 VPC 内网提供统一访问入口。部署在 VPC 私有网络的虚拟机集群需要对其它用户或服务屏蔽真实 IP 地址,对客户端提供透明化服务。
用户也可将负载均衡服务分配的 IP 地址与自有域名绑定在一起,通过域名访问后端应用服务。

4.7.3 架构原理

一个提供服务的负载均衡,主要由 LB 实例( LoadBalancer )、虚拟服务器( VServer )、后端服务器( Backend Real Server )三部分组成。如架构图所示:

ulbarch

  • LoadBalancer( LB ):负载均衡实例为主备高可用集群架构,可实现负载均衡器故障自动切换,提高接入负载均衡服务的可用性。同时结合内外网 IP 地址,根据 VServer 配置的监听器,将虚拟机加入到 Backend 成为 Real Server ,以实现业务的流量均衡与服务容错。
  • Virtual Server( VServer ):监听器,每个监听器是一组负载均衡的监听端口配置,包含协议、端口、负载算法、会话保持、连接空闲超时及健康检查等配置项,用于分发和处理访问 LB 的请求。
  • Backend Server Pool :后端一组虚拟机服务器池,实际处理请求的真实服务器(RealServer),即真实部署业务的虚拟机实例。
  • 外网 IP( EIP ):外网弹性 IP 地址,绑定至外网类型的 LB 实例上,对互联网或 IDC 数据中心提供业务负载均衡访问入口。
  • 内网 IP (Private IP):内网 IP 地址,内网类型 LB 实例提供服务的访问地址,通常是由创建内网负载均衡器时指定的 VPC 自动分配。

负载均衡器用于承载 VServer 及访问入口,VServer 负责访问入口地址的端口监听及请求分发。当负载均衡器接受到来自客户端的请求后,会通过一系列负载均衡算法,将访问请求路由分发到后端虚拟机服务器池进行请求处理,同时由 VServer 将处理结果返回给客户端。

  • 通过加权轮询、最小连接数及基于源地址的负载均衡调度策略,进行业务请求流量转发,满足多场景业务负载需求,如加权轮询是按照后端服务器的权重进行请求转发,权重越大转发的请求越多。
  • 通过会话保持机制,在请求会话的生命周期内,会将来自同一个客户端的会话转发至同一个虚拟机进行处理,适用于 TCP 长连接等应用场景。
  • 通过健康检查机制,监控 RealServer 的运行状况及业务可用性,确保只将流量分发至业务健康的虚拟机。当 后端虚拟机业务不可访问时,调度器会停止向虚拟机分发负载流量;待虚拟机业务恢复正常后,会将虚拟机重新加入至 VServer 后端并分发流量至虚拟机。

负载均衡器的工作模式为 NAT 请求代理,请求和返回均由负载均衡器进行转发和处理,即后端 RealServer 虚拟机处理请求后,会将请求返回给负载均衡 ,由负载均衡将结果返回给客户端。

4.7.4 功能特性

平台负载均衡服务提供四层和七层转发能力,支持内网和外网两种网络入口,在多种负载调度算法基础之上支持健康检查、会话保持、连接空闲超时、内容转发及 SSL Offloading 和 SSL 证书管理等功能,保证后端应用服务的可用性和可靠性。

  • 支持内网和外网两种类型负载均衡器,满足 VPC 内网、IDC 数据中心及互联网服务负载均衡应用场景。
  • 提供四层和七层业务负载分发能力,支持基于 TCP、UDP、HTTP 及 HTTPS 协议的监听及请求转发。
  • 支持加权轮询、最小连接数和基于源地址的的负载调度算法,满足不同场景的流量负载业务。加权轮询:基于权重的轮询调度,负载均衡器接收到新的访问请求后,根据用户指定的权重,按照权重概率分发流量至各后端虚拟机,进行业务处理;最小连接数:基于后端服务器最小连接数进行调度,负载均衡器接收到新的访问请求后,会实时统计后端服务器池的连接数,选择连接数最低的虚拟机建立新的连接并进行业务处理;源地址:基于客户端源 IP 地址的调度策略,采用哈希算法将来源于相同 IP 地址的访问请求均转发至一台后端虚拟机进行处理。
  • 提供会话保持功能,在会话生命周期内,保证同一个客户端的请求转发至同一台后端服务节点上。四层和七层分别采用不同的方式进行会话保持 。针对 UDP 协议,基于 IP 地址保证会话保持,将来自同一 IP 地址的访问请求转发到同一台后端虚拟机进行处理,支持关闭会话 UDP 协议的会话保持;针对 HTTP 和 HTTPS 协议,提供 Cookie 植入的方式进行会话保持,支持自动生成KEY 和自定义 KEY。自动生成 key 是由平台自动生成 Key 进行植入,自定义 Key 是由用户自定义 Key 进行植入。
  • 支持 TCP、HTTP 及 HTTPS 协议的连接空闲超时配置,自动中断在超时时间内一直无访问请求的连接。客户端向 LB 地址发送的请求,在平台会维护两个连接,一个由客户端到 LB,一个由 LB 到后端虚拟机;连接空闲超时是指由客户端到 LB 的连接空闲超时时间,若在超时周期内没有发送或接收任何数据,将自动中断从客户端到 LB 的连接;默认连接空闲超时周期为 60 秒,即在建立连接后的 60 秒内一直没有新的数据请求,将自动中断连接。
  • 健康检查:支持端口检查和 HTTP 检查,根据规则对后端业务服务器进行业务健康检查,可自动检测并隔离服务不可用的虚拟机,待虚拟机业务恢复正常后,会将虚拟机重新加入至 VServer 后端并分发流量至虚拟机。端口检查:针对四层和七层负载均衡,支持按 IP 地址 + 端口的的方式探测后端服务节点的健康状况,及时剔除不健康的节点;HTTP 检查:针对七层负载均衡,支持按 URL 路径和请求 HOST 头中携带的域名进行健康检查,筛选健康节点。
  • 内容转发:针对七层 HTTP 和 HTTPS 协议的负载均衡,支持基于域名和 URL 路径的流量分发及健康检查能力,可将请求按照域名及路径转发至不同的后端服务节点,提供更加精准的业务负载均衡功能。
  • SSL 证书:针对 HTTPS 协议,提供统一的证书管理服务和 SSL Offloading  能力,并支持 HTTPS 证书的单向和双向认证。SSL 证书部署至负载均衡,仅在负载均衡上进行解密认证处理,无需上传证书到后端业务服务器,降低后端服务器的性能开销。
  • HTTP 获取客户端真实 IP:HTTP 监听器支持附加 HTTP header 字段,通过 X-Forwarded-For 和 X-Real-IP 获取客户端真实 IP 地址。
  • TCP 获取客户端真实 IP:TCP 监听器采用 Nginx 官方的 Proxy-Protocol 方案。使 LB TCP 监听收到客户端的请求后,在转发请求至后端服务节点时,将客户端的源 IP 地址封装在 TCP 请求数据包中,发送给后端服务节点,使服务端通过解析 TCP 数据包后即可获取客户端 IP 地址。Proxy Protocol是一种 Internet 协议,用于将连接信息从请求连接的源传送到请求连接的目的地,通过为 TCP 报文添加 Proxy Protocol 报头来获取客户端源 IP,因此需要后端服务节点做相应的适配工作,解析 Proxy Protocol 报头以获取客户端源 IP 地址。Proxy-Protocol 官方文档详见:https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/ 。
  • 获取监听器协议:HTTP 监听器支持附加 HTTP header 字段,通过 X-Forwarded-Proto 获取监听器的协议。
  • 附加 HTTP HOST:HTTP 监听器支持附加 HTTP header 字段,通过 Host 附加 HOST 域名至 HTTP 请求中,用于适配需要检测 HTTP 头 HOST 字段的业务。
  • 监控数据:负载均衡级别提供每秒连接数、每秒出/入流量、每秒出/入包数量的监控及告警;VServer 级别提供连接数、HTTP 2XX、HTTP 3XX、HTTP 4XX、HTTP 5XX 等监控数据及告警。
  • 安全控制:通过安全组对外网负载均衡的访问进行安全管控,仅允许安全组规则内的流量透传负载均衡到达后端真实服务器,保证业务负载的安全性。

负载均衡为用户提供业务级别的高可用方案,可以将业务应用同时部署至多个虚拟机中,通过负载均衡和 DNS 域名的方案设置流量均衡转发,实现多业务级别的流量负载均衡。当大并发流量通过负载均衡访问虚拟机业务时,可通过最小连接数、加权轮询等算法,将请求转发给后端最健壮的虚拟机进行处理,请通过负载均衡将请求结果返回给客户端,保证业务可用性和可靠性。

用户可通过智能 DNS 服务,将两个数据中心的负载均衡实例同时绑定至一个域名,使用 DNS 实现跨数据中心的业务容灾方案。

4.7.5 负载均衡隔离性

  • 资源隔离负载均衡具有数据中心属性,不同数据中心间负载均衡资源物理隔离;负载均衡资源在租户间相互隔离,租户可查看并管理账号及子账号下所有负载均衡资源;一个租户内的负载均衡资源,仅支持绑定租户内同数据中心的 VPC 子网资源;一个租户内的负载均衡资源,仅支持绑定租户内同数据中心的外网 IP 资源;一个租户内的负载均衡资源,仅支持绑定租户内同数据中心的安全组资源。
  • 网络隔离不同数据中心间负载均衡资源网络相互物理隔离;同数据中心负载均衡网络采用 VPC 进行隔离,不同 VPC 的负载均衡资源无法相互通信;负载均衡绑定的外网 IP 网络隔离取决于用户物理网络的配置,如不同的 Vlan 等。

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

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

相关文章

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

    摘要:应用负载均衡,简称是京东云自主研发的一款七层负载均衡产品,主要面向和流量的应用程序,提供灵活的功能配置。应用负载均衡在请求级别运行,可以为应用层业务提供更加出色的服务。 showImg(https://segmentfault.com/img/bVbtNqp?w=688&h=113); 应用负载均衡(Application LoadBalancer,简称ALB)是京东云自主研发的一款七...

    sydMobile 评论0 收藏0
  • 私有灾备解决方案

    摘要:灾备服务支持本地灾备异地灾备公有云灾备两地三中心等多种服务方式,可根据业务特点和需求,灵活选择灾备方式,保证业务的和。公有云灾备架构公有云灾备服务支持多种业务部署方式,为云平台业务提供不同指标,控制云平台业务灾备成本。UCloudStack 云平台通过分布式存储系统保证本地数据的安全性,同时通过远程数据备份服务,为用户提供远程数据备份和容灾备服务,可以将本地云端数据统一归档、备份至远程云...

    youkede 评论0 收藏0
  • Kubernetes上的负载均衡详解

    摘要:部署只是一种规则,控制器组件会将这一规则应用于实际负载均衡器中。原因是功能仅允许将端口用于路由,负载均衡器和则可作为全局启动。负载均衡的限制提供了功能丰富的负载均衡器支持详细介绍在此。截至目前,我们暂时无法使用工具将负载均衡器配置从转换为。 如果您的应用程序是面向大量用户、会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时、不让用户感知到任何类似于服务器繁忙!的情况。这一...

    CoderBear 评论0 收藏0
  • Kubernetes上的负载均衡详解

    摘要:部署只是一种规则,控制器组件会将这一规则应用于实际负载均衡器中。原因是功能仅允许将端口用于路由,负载均衡器和则可作为全局启动。负载均衡的限制提供了功能丰富的负载均衡器支持详细介绍在此。截至目前,我们暂时无法使用工具将负载均衡器配置从转换为。 如果您的应用程序是面向大量用户、会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时、不让用户感知到任何类似于服务器繁忙!的情况。这一...

    caspar 评论0 收藏0
  • 什么是7层负载均衡

    摘要:层负载均衡会终止网络流量并读取器中消息,它可以根据消息内容如或做出负载均衡决策。随后,层负载均衡与选定上有服务器建立新的连接并将请求写入服务器。层负载平衡允许负载均衡器根据请求本身中的消息如内容类型来路由请求。 在开源PaaS Rainbond中,我们对各种应用层协议匹配不同的网络治理插件,以实现7层负载均衡(layer 7 load balancing),例如HTTP、gRPC、Re...

    shery 评论0 收藏0

发表评论

0条评论

ernest.wang

|高级讲师

TA的文章

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