负载均衡的前世今生 | 揭秘阿里云 ALB Ingress 云原生网关
ALB Ingress 是阿里云官方推出的云原生 Ingress 网关,基于洛神云网络平台,具备超大容量、自动弹性、功能丰富、免运维、高可靠等特点,在特定场景下相比 Nginx Ingress 有明显优势,适用于阿里云 ACK/ASK 和自建 K8S 环境,覆盖多种业务场景。...
ALB Ingress 是阿里云官方推出的云原生 Ingress 网关,基于洛神云网络平台,具备超大容量、自动弹性、功能丰富、免运维、高可靠等特点,在特定场景下相比 Nginx Ingress 有明显优势,适用于阿里云 ACK/ASK 和自建 K8S 环境,覆盖多种业务场景。
初识负载均衡
负载均衡,英文名称为 Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如 FTP 服务器、Web 服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
负载均衡的前世今生
一项技术的兴起后,还要看它的应用发展空间有多大。网络负载均衡技术也是随着网络发展而兴起的。现在让我们回过头来看看它的发展历史,同时,也会对网络的发展有一个侧面的认识。首先我们要弄清楚负载均衡从何而来,在什么基础上才被研发出来的。
网络负载均衡的诞生
1996 年,由美国华盛顿大学的几个学生创立了 F5 公司,一个新的网络负载均衡企业诞生了。F5 为何会选择网络负载均衡作为创业点呢?根据 JohnMcAdam 介绍,Internet 的规模每一百天就会增长一倍,网络应用流量也越来越大。网络各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担。
在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升,又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量的需求。于是,网络负载均衡机制应运而生,这是一个巨大的市场机会。
挑战和机遇
网络负载均衡的机会在于网络应用的扩张和网络流量的增大,所以,它非常依赖于网络的发展。然而,在 2000 年里,当海外互联网的泡沫破裂时,所有的网络负载均衡厂商都面临了生存的考验。因此各大厂商将业务重心从互联网转移到大企业,专门针对电信、银行以及政府等相关领域的大企业做网络负载均衡。此时的负载均衡聚焦于四层网络负载均衡技术。
2003 年非典爆发,这是一个灾难,却也带来了国内互联网的发展机会。网上看新闻、网上订餐、电话问候等等,使得网络应用快速发展起来。在全球海外市场上,众多的企业也开始走向理性化的发展方向。在前面一轮基础设施建设的基础上,开始更加重视增值业务、数据业务的建设工作。
此外,客户经济也在这个时间开始体现出了真正的经济效益,各种增值业务如网上银行、电信运营商的短信增值业务,在这个时期开始蓬勃发展,并产生出了巨大的经济效益。接踵而至的,是各种各样的网络应用流量瓶颈问题开始凸显,网络游戏这个典型的互联网经济在这个时候也开始进入爆发式增长阶段。加上国内的电信、网通南北分拆,导致南北互通问题,这导致不少企业的网络流量瓶颈问题更显突出。
这时候面临的各种问题,并不是单纯靠升级传统的路由、交换设备就能解决的。而网络负载均衡设备正好能解决这些问题。在这个时期,包括 F5、Netscaler 在内的网络负载均衡设备厂商,都得到了快速的发展,提供了针对网络访问、数据中心同步访问、远程办公、应用防火墙等多种为了提升关键业务访问效率的解决方案。
负载均衡面向应用交付
从 2006 年开始,国内股市开始火爆起来,随着上交所、深交所的股票交易量不断创新高,证券交易的“堵单”现象越来越严重。
企业电子商务的网络应用越来越多,彩信应用的推广,对网络带宽也有了新的要求。此时,国内视频网站开始纷纷出现,流媒体形成的巨大访问量,需要提供更高的网络流量处理能力,对于四层负载均衡交换机的压力会更大。在这种情况下,普通的负载均衡设备已经难以满足网络应用流量增长的需求。
此时,以应用为导向的方案越来越明显了,综合多种技术手段的需求越来越强。我们可以这样形象地理解:基于网络二层、三层的是路由交换,而基于网络七层的则是“应用交换”,应用交付是完全基于网络应用的系统解决方案,它将关键应用与基础网络设备关联起来。
网络负载均衡“L4-7LoadBalance”和应用交付“AdvancedADC”是两个独立的设备市场。其中,网络负载均衡“L4-7LoadBalance”指具有传统的网络负载均衡机制的设备,而“AdvancedADC”则是传统的网络负载均衡的升级和扩展,它是一种综合的交付平台设备,综合了负载平衡、TCP 优化管理、链接管理、SSLVPN、压缩优化、智能网络地址转换、高级路由、智能端口镜像等各种技术手段的综合平台。
事实证明,综合了多种交付手段的应用交付设备(包括有 L4-7LoadBalance 功能)俨然成为了主流的技术,更符合企业级用户多样化的流量业务需求。
流量为王时代,负载均衡拥抱云原生
随着云原生发展如火如荼,拥抱云原生成为业界共识,为了更好地支持云原生场景,ALB 与 ACK/ASK 等云原生服务深度集成,阿里云推出了 ALB Ingress——云原生 Ingress 网关。
ALB Ingress 技术原理
我们知道 Kubernetes 集群通过 Ingress 可以把集群外部的流量路由到集群内部的 Service,以此实现七层负载均衡功能。Ingress 工作在 7 层,为 Service 做业务选路。
阿里云 ACK/ASK 等 Kubernetes 产品,可以借助云原生的应用型负载均衡产品 ALB,把集群外部流量路由到集群内部的 Service,实现七层负载均衡功能。此时 K8S 集群中部署了 ALB Ingress Controller,负责监听 API Server 中 AlbConfig/Ingress/Service 等资源的变化,动态地转换为 ALB 所需的配置。
ALB 基于洛神云网络平台,具备超大规模、超强性能和开放可编程等特点。通过多级负载和多级调度,单实例支持 100w QPS;通过软硬件一体化和硬件加密卡,具备超强转发性能;通过自动弹性让运维更简单,SLA 高达 99.995%;通过自定义转发平台,提供丰富的高级路由特性。
ALB Ingress 使用简介
ALB Ingress 与云原生服务做了深度集成,在具备丰富功能的同时也保证了易用性,在 ACK/ASK 中只需以下操作即可使用 ALB Ingress 网关(详细可见官网文档):
ALB Ingress 在兼容 K8S 原生功能的基础上,通过 AlbConfig CRD 和 Ingress 注解项,还提供了丰富的高级特性(详细见官网文档)。用户通过 AlbConfig CRD,可以方便地在 K8S 中配置 ALB 的实例和监听;通过 Ingress 注解项,可以方便地在 K8S 中配置 ALB 的转发规则和服务器组。ALB 和 K8S 中资源的映射如下:
ALB Ingress 优势
阿里云 ACK/ASK 等 Kubernetes 产品中,支持使用 Nginx Ingress 和 ALB Ingress。Nginx Ingress 需要用户自行运维,一般用于用户对网关定制有强烈需求的场景。ALB Ingress 为全托管模式,具备超大容量、自动弹性、高可靠和免运维等特性,提供更强大的 Ingress 流量管理能力。我们从以下几个维度来看看它们之间的差异:
在用户实际使用过程中,我们发现在一些场景下,ALB Ingress 相比 Nginx Ingress 具有明显的优势。
- 长连接场景:长连接适用于交互频繁的业务场景,如物联网 IOT、互联网金融和在线游戏等。当用户进行配置变更时,Nginx Ingress 由于需要 Reload Nginx 进程,会导致长连接闪断,这对有些应用来说是不可接受的。以下是 Nginx Ingress 和 ALB Ingress 在长连接场景下的对比测试,可以看到 Nginx 存在读写失败,ALB 无异常。
- 高QPS场景:互联网业务往往具有高 QPS 的特点,比如预期内的大促活动和突发的热点事件。以下是我们打满单台 Nginx 和 ALB 单个 VIP 时的测试数据。可以看到一方面 ALB 的处理延迟要比 Nginx 的低。另一方面 Nginx 在处理 HTTPS 短连接时由于没有使用硬件加速卡,单机性能较低,高 QPS 下需要较多机器;虽然 ALB 单个 VIP 的 QPS 限制为 5 万左右,但是 ALB 支持自动弹性,高 QPS 时会自动弹出更多 VIP,通过一个 ALB 实例即可支持百万 QPS。
- 高并发连接场景:物联网业务由于终端设备数量大,往往具有高并发连接的特点。ALB Ingress 基于洛神云网络平台,支持对用户 session 进行收敛,单个 ALB 实例支持千万级连接数;Nginx Ingress 需要用户自行运维,单台设备支持的 session 数有限,即使使用网络增强型虚拟机,依然存在容量风险,需要维护大量设备。
- 业务存在峰谷的场景:费用方面 ALB 也存在优势,特别是对于有波峰波谷的业务,比如电商和游戏。因为 ALB 按量计费,波谷期间消耗的 LCU 少,且支持自动弹性,用户无需关注和应对自身业务流量模型。而 Nginx 在波谷期间往往有闲置成本,用户需要根据业务流量调整机器到合适的数量和规格。另外考虑到容灾需要,Nginx 通常还需要有资源 buffer,这些都会产生额外的成本。
ALB Ingress 应用场景
ALB Ingress 是阿里云官方提供的云原生 Ingress 网关,适用于以下 K8S 环境:
- 阿里云容器服务 ACK(包括专有版和托管版)
- 阿里云 Serverless 容器集群 ASK
- 阿里云上自建 K8S 集群(ALB Ingress Controller 已集 成到开源版 CCM)
ALB Ingress 由于具备超大容量、自动弹性、功能丰富、高可靠、免运维等特性,加上前文介绍的优势,自发布以来吸引了多个行业的客户,覆盖多种业务场景,以下是几个常见的应用场景:
更多推荐
所有评论(0)