负载均衡SLB

Posted 小东子李

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡SLB相关的知识,希望对你有一定的参考价值。

负载均衡SLB

一.应用型负载均衡ALB

应用型负载均衡ALB(Application Load Balancer)是阿里云推出的专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务,具备超强弹性及大规模七层流量处理能力。ALB具备处理复杂业务路由的能力,与云原生相关服务深度集成,是阿里云官方提供的云原生Ingress网关。
在这里插入图片描述
ALB特性
弹性自动伸缩
ALB同时提供域名与VIP,多级分发承载海量请求在可用区间弹性缩放,避免单可用区资源瓶颈允许用户自定义可用区组合,适应原有计算资源的分布。

先进的协议支持
ALB支持最先进的应用传输协议QUIC,对音视频、移动互联网应用更加友好,传输速度更快,链路更安全支持GRPC协议,实现海量微服务间的高效API通信。

基于内容的高级路由
ALB可基于HTTP标头、Cookie、HTTP方法等各种条件来识别特定业务流量,并将其转发至不同的后端服务,同时还支持重定向、重写甚至是添加用户自定义的HTTP标头等高级操作。

安全加持
ALB自带DDoS防护,一键集成WAF,全链路HTTPS满足Zero-Trust安全架构,更支持TLS 1.3、国密等最新加密协议,既有系统预制的安全策略,用户也可以自定义。

云原生应用
流量拆分、流量镜像等功能用于实现金丝雀发布,在线流量仿真等云原生开发模式,与ACK、SAE和开源K8s深度集成,简单易用,让您更聚焦业务本身。

弹性灵活的计费
ALB通过EIP和共享带宽提供公网能力,实现灵活公网计费;同时采用了更先进的、更适合弹性业务峰值的、基于容量单位(LCU)的计价方案。
ALB类型
阿里云提供公网和私网两种类型的ALB。您可以根据业务场景选择配置对外公开或对内私有的ALB,系统会根据您的选择来决定是否使用共享带宽和弹性公网IP。

上图中黄色半透明框中所有元素构成一个面向公网(私网)的ALB。
共享带宽
共享带宽提供地域级的带宽共享和复用能力,以及按带宽计费和按增强型95计费等多种计费模式,可有效节省公网带宽使用成本。公网应用型负载均衡ALB中将使用共享带宽来提供增强型95计费和按带宽计费能力。

域名
一个在公网上可解析的域名解析至对应的EIP。您也可以将所拥有的可读性强的域名通过CNAME方式解析到ALB的域名上来使用。

EIP
ALB对公网服务的IP地址,一个公网ALB可以有多个EIP。为了实现高可用性,一个公网ALB至少应包含两个分布在不同可用区的EIP。您仅在创建公网ALB时需要使用EIP,在创建私网ALB时无需配置。

VIP(Virtual IP address)
ALB实施流量分发的实体。每个VIP都是专有网络VPC(Virtual Private Cloud)中的一个私网IP地址。
ALB组成

在这里插入图片描述
ALB包含以下基本组成部分。
实例
面向七层,提供了超强七层负载均衡能力,通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力。单实例可处理高达100万QPS。

监听
监听是ALB最小业务单元,监听上需要配置协议与端口以告知ALB需要处理什么流量,例如HTTP协议,80端口。每个ALB至少有一个监听,才能开始流量处理与分发。每个ALB最多可以配置50个监听,用于处理不同的业务流量。

转发规则
确定ALB实例如何将请求路由到一个或多个后端服务器组中的后端服务器。ALB具备强大的高级路由能力,在传统的路由规则基础上,还可以基于Cookie、Header和Host等多种规则进行转发,实现基于业务的灵活调度。

服务器组
服务器组是一个逻辑组,包含多个后端服务器(ECS实例)用于处理ALB分发的业务请求。ALB中服务器组独立于ALB存在,可以将同一服务器组挂载在不同ALB内。服务器组最大可以包含1000个后端服务器。ALB服务器组支持云ECS、ECI、ENI等多种类型的后端服务器。

健康检查
ALB通过健康检查来判断后端服务器(ECS实例)的业务可用性。ALB探测服务器组中不健康的服务器组,并避免将流量分发给不健康的服务器组。ALB支持丰富灵活的健康检查配置,如协议、端口、以及各种健康检查阈值。同时ALB提供健康检查模板,可将健康检查模板快速的应用到不同的服务器组。

二.传统型负载均衡CLB在这里插入图片描述

负载均衡基础架构是采用集群部署,提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。

负载均衡作为流量转发服务,将来自客户端的请求通过负载均衡集群转发至后端服务器,后端服务器再将响应通过内网返回给负载均衡。

基础架构说明
阿里云当前提供四层和七层的负载均衡服务。

        a.  四层采用开源软件LVS(Linux Virtual Server)+ keepalived的方式实现负载均衡,并根据云计算需求对其进行了个性化定制。
        b.  七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能和特性。

在这里插入图片描述
如下图所示,各个地域的四层负载均衡实际上是由多台LVS机器部署成一个LVS集群来运行的。采用集群部署模式极大地保证了异常情况下负载均衡服务的可用性、稳定性与可扩展性。在这里插入图片描述

LVS集群内的每台LVS都会进行会话,通过组播报文同步到该集群内的其它LVS机器上,从而实现LVS集群内各台机器间的会话同步。如下图所示,当客户端向服务端传输三个数据包后,在LVS1上建立的会话A开始同步到其它LVS机器上。图中实线表示现有的连接,图中虚线表示当LVS1出现故障或进行维护时,这部分流量会走到一台可以正常运行的机器LVS2上。因而负载均衡集群支持热升级,并且在机器故障和集群维护时最大程度对用户透明,不影响用户业务。在这里插入图片描述

入网流量路径
对于入网流量,负载均衡会根据用户在控制台或API上配置的转发策略,对来自前端的访问请求进行转发和处理,数据流转如下图所示。在这里插入图片描述
1.TCP/UDP协议和HTTP/HTTPS协议的流量都需要经过LVS集群进行转发。
2.LVS集群内的每一台节点服务器均匀地分配海量访问请求,并且每一台节点服务器之间都有会话同步策略,以保证高可用。
出网流量路径
在这里插入图片描述
总体原则:流量从哪里进来,就从哪里出去。

        通过负载均衡进入的流量在负载均衡SLB上限速或计费,仅收取出方向流量费用,入方向流量不收取(在未来可能会改变),SLB到ECS之间是阿里云内网通信,不收取流量费用。
        来自弹性公网IP或NAT网关的流量,分别在弹性公网IP或NAT网关上进行限速或计费。如果在购买ECS时选择了公网带宽,限速/计费点在ECS上。
        负载均衡SLB仅提供被动访问公网的能力,即后端ECS只能在收到通过负载均衡SLB转发来的公网的请求时,才能访问公网回应该请求,如后端ECS希望主动发起公网访问,则需要配置或购买ECS公网带宽、弹性公网IP或NAT网关来实现。
        ECS公网带宽(购买ECS时配置)、弹性公网IP、NAT网关均可以实现ECS的双向公网访问(访问或被访问),但没有流量分发和负载均衡的能力。

阿里云官方文档

以上是关于负载均衡SLB的主要内容,如果未能解决你的问题,请参考以下文章

负载均衡SLB

服务器负载均衡SLB详解及配置

负载均衡SLB

负载均衡SLB

阿里云自建k8s集群使用slb负载均衡

Nodejs负载均衡:haproxy,slb以及node-slb