腾讯云公网负载均衡技术实现详解

0?wx_fmt=gif

CLB简介

传统的LVS负载均衡是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。LVS有三种工作模式DR模式、NAT模式及TUNNEL模式,三种模式分别都有各自的局限性。这样就催生了CLB概念。套用官网介绍:负载均衡(Cloud Load Balancer)是对多台云服务器进行流量分发的服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。

CLB基本概念

这里首先需要了解下腾讯云相关的一些概念,有助于后续了解CLB业务。

基本属性

LB实例

腾讯云提供的一种网络负载均衡服务(CLB),可以结合 CVM 虚拟机为用户提供基于 TCP/UDP/HTTP/HTTPS协议类型的负载均衡服务。

后端服务器

接受负载均衡分发请求的一组云服务器实例,负载均衡服务将访问请求按照用户设定的规则/权重转发到这一组后端 CVM 上进行应用处理。

虚拟地址VIP

腾讯云负载均衡分配给每个负载均衡实例的虚拟地址。客户端可以通过vip+port进行4层负载分发。也可以按照vip+vport+url进行7层负载分发。

监听器

目前存在两种监听器。传统公网固定IP类型的监听器包括监听端口,后端服务器端口、负载均衡策略、健康检查阀值配置和轮训方式等,每个监听器对应后端的一个应用服务。新版的应用型监听器只有监听端口属性(https还有证书信息)。但是监听器下又可以创建域名和规则,规则中可以设置健康检查阀值、负载均衡策略、转发路径等信息。同时监听器维度存在几个概念需要了解下,主要如下:

vport:提供给客户端访问的端口

pport:LB后端服务器需要启动的端口

轮询方式:目前只有权重轮询/ip_hash/最小连接数三种轮询方式

会话保持:保证同一客户端多次请求在一定的时间内落地到后端同一台服务器上

snat:lb是否支持后端服务器可以看到客户端的真实ip,否则RS看到是vip(snat不支持获取客户端ip)

健康检查:针对lb后端服务器端口存活状态进行检测,及时剔除异常端口的机器,保证服务稳定正常

证书

公网LB支持https协议监听器,创建监听器过程中需要上传服务器和客户端证书。

负载均衡类型

内网与公网之分

内网lb主要提供给同appid下的子机之间进行负载均衡请求,lb绑定的子机必须是appid下的子机,客户端请求子机也必须是appid下的子机。

公网lb开发商可以将自己的服务搭建在lb绑定的后端服务器上,然后提供给自己的用户使用进行访问。公网lb对绑定后端子机有一个要求:子机必须要有流量。

基础网络与私有网络之分

基础网络包含vpc0和实体网络子机,这里要求lb绑定的后端服务器必须是基础网络子机。当基础网络与vpc互通之后,基础网络子机也可以访问私有网络的LB服务。

私有网络即所有的vpc>0子机,这里同时要求lb绑定的后端服务器必须是私有网络子机。

物理网络与VPC网络之分

物理网络:这种网络架构是腾讯云最早使用的框架,有非常大的局限性,如下描述:A受物理网络路由限制,子机不能跨机架迁移;B子机ip固定,用户不可自定义;C用户的子机IP无规律,不能划分网段,不方便管理。

VPC网络:为了解决实体网络的限制,应运而生出来了私有网络。VPC网络可以让虚拟机保持IP、MAC不变进行跨机架迁移。用户自定义网络,选择IP地址范围、管理子网、路由表和网关。支持IPSec VPN、SSLVPN、专线接入,满足VPC网络与客户本地数据中心部署混合云需求。

综上所述,所以目前公网LB同样也区分基础网络与私有网络类型。但是底层负载能力实现原理基本保持一致。

七层与四层之分

目前腾讯云内网LB只支持4层负载,不支持7层负载。公网LB同时支持7层和4层负载。下面介绍关于7层与4层的区别见下图。

0?wx_fmt=jpeg

4层LB主要是通过报文中的目的地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载能力实现主要基于数据包的传输层信息(ip+port)进行负载转发。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwgfj.html