摘要:单台服务器可以提供超过万并发连接,万,线速转发能力。外网负载均衡转发示意图如下与内网不同的是,外网流量是从公网进来的。这样上联交换机会根据算法,将流量负载均衡到集群中的各台服务器上。
ULB (UCloud Load Balancer)提供流量分发的能力,保证业务可扩展和高可用。支持内网和外网两种场景,支持请求代理和报文转发两种转发模式。下文将分别介绍ULB的的请求代理(下简称ULB7)和报文转发模式(下简称ULB4)的基本架构。
名词
UVER:UCloud Virtual Edge Router,UCloud的公网流量转发中心。UVER从业务库中获取所有EIP的下一跳信息,并将EIP的流量进行封装转发。
内网ULB4
内网ULB4是基于DPDK技术自研的。单台服务器可以提供超过3000万并发连接,1000万 pps,10G线速转发能力。采用集群部署,单个集群至少4台服务器。利用ECMP+ BGP实现高可用。
内网ULB4采用了类似于DR的转发模式。内网负载均衡转发示意图如下:
如上图,ULB4集群通过向其上联的接入交换机宣告相同的VIP(虚拟IP),接入交换机配置了ECMP算法,能将流量负载均衡到多台ULB服务器上,从而构成了ULB4集群。当ULB4集群中某些服务器发生转发异常的时候,BGP报文转发也会停止转发,在三秒之内该ULB4服务器就会被剔出服务器集群,从而保证高可用,同时ULB4集群健康检查模块也将发出告警,使得工程师介入处理。此外同一个ULB4集群的服务器都是跨可用区分布的,保证ULB4集群跨可用区高可用。 ULB4中有模块专门负责后端节点的健康检查(目前仅支持TCP/UDP端口探测),并上报给ULB4Manager和ULB4转发服务器。ULB4转发服务器收到Client的业务报文后,将从状态正常的后端节点中选择一个,修改目的mac后打隧道送到后端节点,过程中其中的源IP和目的IP保持不变。ULB4模式下后端节点必须在LO口绑定ULB4的VIP(虚拟IP)地址,并监听服务,才能正确处理报文,并将回包直接单播送回给Client。这是一个典型的DR过程,因此内网ULB4可以直接看到Client的源IP。
外网ULB4
外网ULB4与内网ULB4类似,同样是基于DPDK技术自研的。单台服务器可以提供超过3000万并发连接,1000万 pps,10G线速转发能力。采用集群部署,单个集群至少4台服务器。利用ECMP+ BGP实现高可用。同样的,它采用了类似于DR的转发模式。外网负载均衡转发示意图如下:
与内网ULB4不同的是,外网流量是从公网进来的。Client访问ULB4的流量进入UCloud POP点,进入UVER(UCloud Virtual Edge Router)。UVER是UCloud自研的公网流量计算中心,能够从业务库中获知所有的EIP的下一跳信息,通过BGP引流后,将EIP的流量建立隧道送到相应的下一跳。一个ULB4的EIP会落到ULB4集群中的所有服务器上,因此UVER将这部分流量,按照一致性哈希算法送到ULB4集群各个服务器中。后续的流程与内网ULB4类似。Backend节点中需要将ULB的EIP绑定在LO口,并监听服务,而回程报文将直接送到UVER,并通过internet返回Client。
在外网ULB4中,集群健康检查模块将定时探测服务器的存活状态,如果发现有服务器有问题,则将通知UVER,将异常服务器剔除,从而保证高可用。同样的,外网ULB4集群也是跨可用区高可用的。
内网ULB7
ULB7基于Haproxy开发,单个实例可以支持超过40w pps,2Gbps,以及至少40万并发连接。架构如下图:
内网ULB7采用集群部署,单个集群至少4台服务器。租户底层共用服务器,但是采用Docker进行资源隔离和CPU的隔离。与ULB4采用的DR模式不同,ULB7采用的是Proxy模式(即Fullnat模式)。收到Client的请求之后,内网ULB7将client到ULB7 IP的连接,转化为ULB7的proxy IP到Backend(服务节点)实际IP的连接。因此Backend(服务节点)无法直接看到Client ip,只能通过X-Forwarded-For(HTTP模式)获取。
内网ULB7利用ECMP+ BGP实现高可用,内网ULB7服务器通过Quagga与上联交换机建立BGP连接。同集群下的多台服务器,将向上联交换机发起相同的VIP(虚拟IP)宣告。这样上联交换机会根据ECMP算法,将流量负载均衡到集群中的各台服务器上。当有服务器发生异常时,三秒内BGP会中断,从而将故障服务器踢出集群,保证服务仍然可以正常工作。
外网ULB7
ULB7基于Haproxy开发,单个实例可以支持超过40w pps,2Gbps,以及至少40万并发连接。ULB利用CPU的亲和性,实现核的隔离和资源控制。
与ULB4采用的DR模式不同,ULB7采用的是Proxy模式,也就是Fullnat模式。收到Client的请求之后,ULB7将client到ULB7 EIP的连接,转化为ULB7的proxy ip(代理IP)与Backend(服务节点)实际ip的连接。因此Backend无法直接看到Client ip。另外,节点健康检查模块是集成在ULB7进程中的,因此不需要额外的节点健康检查模块。
同样的,在外网ULB7中,集群健康检查模块将定时探测服务器的存活状态,如果发现服务器有问题,则将通知UVER,将异常服务器剔除,从而保证高可用。同样的,外网ULB7集群也是跨可用区高可用的。
模式比对
相对于ULB7,ULB4转发能力更强,适合与追求转发性能的场景。而ULB7则可以对七层数据进行处理,可以进行SSL的卸载,执行域名转发、路径转发等功能,并且后端节点不需要额外配置VIP(虚拟IP)。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/126137.html
摘要:参数说明本文主要描述用于创建类型的时,与相关的说明。为时表示连接保持的时间,单位为秒,取值范围,,表示禁用连接保持,默认为。会话保持方式枚举值为关闭,自动生成,用户自定义,默认为。健康检查方式为时有效,指检查路径。ULB 参数说明本文主要描述用于创建LoadBalancer 类型的Service时,与ULB相关的Annotations说明。备注:目前除了外网 ULB 绑定的 EIP 的带宽值...
摘要:通过外网访问使用提醒请勿修改由创建的及的名称和备注,否则会导致异常无法访问。通过外网暴露服务以后的插件,外网同时支持和两种协议,下文示例中,对外暴露了三个端口,其中端口使用协议,和使用协议。是否支持多协议目前同时支持和协议。通过外网ULB访问Service1、使用提醒请勿修改由UK8S创建的ULB及Vserver的名称和备注,否则会导致Service异常无法访问。除外网EIP外,ULB相关参...
摘要:通过内网访问使用提醒请勿修改由创建的及的名称和备注,否则会导致异常无法访问。控制创建所在子网,填写子网通过内网对外暴露服务代表类型,为外网,为内网为默认值,此处可省略。通过内网ULB访问Service1、使用提醒请勿修改由UK8S创建的ULB及Vserver的名称和备注,否则会导致Service异常无法访问。除外网EIP外,ULB相关参数目前均不支持Update,如不确认如何填写,请咨询UC...
摘要:介绍本章节主要为您简要介绍中的一个重要概念即服务,本文中两者等同,以及的相关知识。在每台的固定端口上暴露服务,选择的服务类型,集群会自动创建一个类型的服务,负责处理接收到的外部流量。集群外部的可以通过的方式访问该服务。Service 介绍本章节主要为您简要介绍 Kubernetes 中的一个重要概念 Service(即服务,本文中两者等同),以及ULB的相关知识。Service 介绍Serv...
摘要:原因解释创建成功后,的将集群中的每个云主机节点作为自身的节点,端口为申明的值注意不是。如何获取源对于需要明确知道客户端来源地址的情况,我们需要显示地将的设置成如下修改。重新部署服务后,再用浏览器访问,可以发现正确获取了浏览器的访问。ULB属性修改的处理方法如没有实际需要,请避免修改ULB名称及注释根据cloudprovider插件使用提醒,由UK8S cloudprovider创建的ULB不...
阅读 3514·2023-04-25 20:09
阅读 3720·2022-06-28 19:00
阅读 3035·2022-06-28 19:00
阅读 3058·2022-06-28 19:00
阅读 3131·2022-06-28 19:00
阅读 2859·2022-06-28 19:00
阅读 3014·2022-06-28 19:00
阅读 2610·2022-06-28 19:00