负载均衡SLB

Posted 悬剑成歌

tags:

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

一、定义

1.概述

负载均衡默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力


2.组成部分

1)负载均衡实例

一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例

2)监听

监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查

3)后端服务器

一组接收前端请求的ECS实例。您可以单独添加ECS实例到服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理


3.产品优势

1)高可用

采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。

根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务

2)可扩展

您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力

3)低成本

与传统硬件负载均衡系统高投入相比,成本可下降60%

4)安全

结合云盾,可提供5Gbps的防DDOS攻击能力


二、应用场景

1.应用于高访问量的业务

如果您的应用访问量很高,您可以通过配置监听规则将流量分发到不同的ECS实例上。

此外,您可以使用会话保持功能将同一客户端的请求转发到同一台后端ECS,提高访问效率


2.扩展应用程序

您可以根据业务发展的需要,随时添加和移除ECS实例来扩展应用系统的服务能力,适用于各种Web服务器和App服务器


3.消除单点故障

您可以在负载均衡实例下添加多台ECS实例。当其中一部分ECS实例发生故障后,负载均衡会自动屏蔽故障的ECS实例,将请求分发给正常运行的ECS实例,保证应用系统仍能正常工作


4.同城容灾(多可用区容灾)

为了提供更加稳定可靠的负载均衡服务,阿里云负载均衡已在各地域部署了多可用区以实现同地域容灾

当主可用区出现机房故障或不可用时,负载均衡仍然有能力在非常短的时间内(大约30s中断)切换到另外一个备可用区恢复服务能力;当主可用区恢复时,负载均衡同样会自动切换到主可用区提供服务

负载均衡SLB

负载均衡SLB

5.跨地域容灾

当某个地域出现不可用时,暂停对应解析即可实现所有用户访问不受影响

负载均衡SLB


三、产品架构

1.基础架构说明

四层采用开源软件LVS(Linux Virtual Server)+ keepalived的方式实现负载均衡,并根据云计算需求对其进行了个性化定制

七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能和特性

负载均衡SLB

负载均衡SLB

负载均衡SLB

2.入网流量路径

1)TCP/UDP协议和HTTP/HTTPS协议的流量都需要经过LVS集群进行转发

2)LVS集群内的每一台节点服务器均匀地分配海量访问请求,并且每一台节点服务器之间都有会话同步策略,以保证高可用

a.如果相应的负载均衡实例服务端口使用的是四层协议(TCP或UDP),那么LVS集群内每个节点都会根据负载均衡实例负载均衡策略,将其承载的服务请求按策略直接分发到后端ECS服务器

b.如果相应的负载均衡实例服务端口使用的是七层HTTP协议,那么LVS集群内每个节点会先将其承载的服务请求均分到Tengine集群,Tengine集群内的每个节点再根据负载均衡策略,将服务请求按策略最终分发到后端ECS服务器

c.如果相应的负载均衡实例服务端口使用的是七层HTTPS协议,与上述HTTP处理过程类似,差别是在按策略将服务请求最终分发到后端ECS服务器前,先调用Key Server进行证书验证及数据包加解密等前置操作

负载均衡SLB


3.出网流量路径

1)通过负载均衡进入的流量在负载均衡SLB上限速/计费,仅收取出方向流量费用,入方向流量不收取(在未来可能会改变),SLB到ECS之间是阿里云内网通信,不收取流量费用

2)来自弹性公网IP/NAT网关的流量,分别在弹性公网IP/NAT网关上进行限速/计费,如果在购买ECS时选择了公网带宽,限速/计费点在ECS上

3)负载均衡SLB仅提供被动访问公网的能力,即后端ECS只能在收到通过负载均衡SLB转发来的公网的请求时,才能访问公网回应该请求,如后端ECS希望主动发起公网访问,则需要配置/购买ECS公网带宽、弹性公网IP或NAT网关来实现

4)ECS公网带宽(购买ECS时配置)、弹性公网IP、NAT网关均可以实现ECS的双向公网访问(访问或被访问),但没有流量分发和负载均衡的能力

负载均衡SLB


四、产品优势

1.SLB系统的高可用

四层负载均衡通过LVS(Linux Virtual Server)+ keepalived的方式实现,七层负载均衡通过Tengine(淘宝网发起的Web服务器项目,在Nginx的基础上,针对有大访问量的网站需求进行了优化)实现来自公网的请求通过等价多路径路由(ECMP)到达LVS集群,LVS集群内的每台LVS通过组播报文将会话同步到该集群内的其它LVS机器上,从而实现LVS集群内各台机器间的会话同步。同时,LVS集群会对Tengine集群进行健康检查,将异常机器从Tengine集群移除,保证七层负载均衡的可用性


2.单SLB实例的高可用

为了向广大用户提供更稳定可靠的负载均衡服务,阿里云负载均衡已在大部分地域部署了多可用区以实现同地域下的跨机房容灾。当主可用区出现故障或不可用时,负载均衡有能力在非常短的时间内(约30秒)切换到备可用区并恢复服务;当主可用区恢复时,负载均衡同样会自动切换到主可用区提供服务


3.多SLB实例的高可用

如果您对可用性的要求特别高,负载均衡实例自身的可用性保障机制可能无法满足您的需求。例如当网络攻击或配置错误等情况导致负载均衡实例不可用时,由于未出现可用区级故障,不会触发负载均衡实例的可用区切换。此时,您可以创建多个SLB实例,通过云解析DNS对访问进行调度,或通过全球负载均衡解决方案实现跨地域容灾备份


4.后端ECS实例的高可用

开启健康检查功能后,当后端某个ECS实例健康检查出现异常时,负载均衡会自动将新的请求分发到其他健康检查正常的ECS实例上;而当该ECS实例恢复正常运行时,负载均衡会将其自动恢复到负载均衡服务中


五、功能特性

1.调度算法

负载均衡支持轮询、加权轮询(WRR)、加权最小连接数(WLC)和一致性哈希(CH)调度算法


2.健康检查

负载均衡会检查后端服务器的运行状况。当探测到后端服务器运行状况不佳时,会停止向其发送流量,然后将流量转发给其他正常运行的后端服务器


3.会话保持

负载均衡提供会话保持功能。在会话的生命周期内,可以将同一客户端的请求转发到同一台后端服务器上


4.访问控制

负载均衡支持添加黑名单和白名单,灵活控制客户端访问


5.高可用

负载均衡可以将流量转发给多个可用区的后端服务器。并且,负载均衡已经在大部分地域支持了多可用区部署,当主可用区出现故障时,负载均衡可自动切换到备可用区上提供服务


6.安全防护

结合云盾,可提供5Gbps的防DDoS攻击能力


7.网络类型支持

负载均衡提供公网和私网类型的负载均衡服务。您可以创建一个私网类型的负载均衡实例来均衡专有网络内的流量,或创建一个公网负载均衡实例来均衡来自公网的流量


8.监控

结合阿里云云监控服务,您可以查看负载均衡的连接数、流量等信息


负载均衡支持转发来自IPv6客户端的请求


10.域名URL转发

负载均衡7层监听支持配置域名和URL转发规则,可以将来自不同域名和URL的请求转发到不同的后端服务器上


11.证书管理

针对HTTPS协议,提供统一的证书管理服务。证书无需上传到后端服务器,解密处理在负载均衡上进行,降低后端服务器的CPU开销


12.SNI支持

负载均衡HTTPS监听支持挂载多个证书,将来自不同访问域名的请求转发至不同的后端服务器组


13.重定向

负载均衡支持HTTP访问重定向至HTTPS


14.WS/WSS支持

WebSocket是html5一种新的协议,在客户端与服务器间提供双向通信渠道,能更好地节省服务器资源和带宽并达到实时通讯


15.HTTP/2支持

HTTP/2(Hypertext Transfer Protocol Version 2)是超文本传输协议的第二版,向下兼容HTTP1.X协议版本,同时带来性能的大幅提升


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

洛神云网络SLB负载均衡新姿势

负载均衡SLB

负载均衡SLB

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

阿里云ECS服务器SLB负载均衡实践

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