首页 > 其他分享 >ELB Ingress网关助力云原生应用轻松管理流量

ELB Ingress网关助力云原生应用轻松管理流量

时间:2024-07-09 09:53:13浏览次数:16  
标签:网关 容器 Ingress ELB 负载 流量 集群

本文分享自华为云社区《ELB Ingress网关助力云原生应用轻松管理流量》,作者:云容器大未来。

背景

通常情况下,K8s集群的容器网络平面和外部网络是隔离的,外部网络无法直接访问到集群内部的容器业务,如何为容器提供并管理统一的外部流量入口?社区提供的常见方式是使用Nodeport Service,Loadbalancer Service,Ingress等K8s资源对象来暴露集群内部的容器原生应用。Service对象提供了四层负载均衡能力,Ingress对象则提供了面向应用层访问(HTTP/HTTPS等)的七层负载均衡能力。

而随着云原生架构在企业内的普遍落地,容器作为云原生微服务应用的载体,需要面对更多挑战,如面对微服务的复杂组网,业务请求在云服务之间转发往往需要做源地址转换而导致流量分发损耗;游戏类、电商抢购类等业务在短时间内会进行频繁扩缩容,必须应对高并发的网络流量;网关入口流量应对互联网的安全攻击,如灰产、异常流量,需提供流量安全防护能力;此外,支持更加复杂的路由规则配置、多种应用层协议(HTTP、HTTPS、GRPC等)、应用蓝绿发布、流量可观测性等七层高级转发能力也逐渐成为了云原生应用的普遍诉求。Ingress Nginx,Ingress Kong,Traefik等开源社区方案虽然提供了丰富的七层流量治理功能, 但对于关键生产业务上云,企业在选择Ingress方案时,除了考虑功能性,还需要充分权衡安全性、可维护性和可靠性等方面的需求,以找到最佳平衡点。专业的云服务提供商提供托管的Ingress解决方案,能够较好的应对这些挑战。

华为云CCE服务提供了基于应用型负载均衡ELB(Elastic Load Balance)的全托管免运维的企业级 Ingress 流量治理,让用户轻松应对云原生应用流量管理。

ELB Ingress 介绍

在K8s集群中,容器网络平面通常是独立于集群主机网络的一个隔离的网络平面,工作负载在滚动升级或者重新调度后容器的地址会有变化,这就带来一个问题:如何实现某组Pod的服务发现,并提供固定的外部访问入口?Service和Ingress对象就是K8s中实现集群内外应用统一访问入口的一种机制。

K8s社区对集群外部的流量暴露提供了三种方式:Nodeport Service、Loadbalancer Service、Ingress,前两者Service对象主要提供集群四层流量入口,Ingres对象提供七层流量治理能力。两者相互配合,共同实现K8s集群应用的对外访问机制。如下图一所示,客户端通过Ingress管理的负载均衡器,访问Ingress申明的路由,由负载均衡器将流量经过后端Service导入至后端容器。

1.png

图一:Ingress示例

ELB Ingress是华为云CCE服务提供的七层流量治理功能,基于社区标准Ingress API实现,提供高可用、高性能、高安全、多协议的全托管免运维负载均衡能力。同时具备弹性能力,在流量突发时支持快速扩展计算资源,支持千万级并发连接,百万级新建连接,是云原生应用流量治理的理想选择。

ELB Ingress工作原理

ELB Ingress部署于CCE集群的master节点上,与ELB实例对接,可将Ingress申明的容器后端地址、转发策略、路由等信息配置至ELB实例,并且支持动态更新。

图二是基于Nodeport中转的ELB Ingress工作流图,CCE Standard集群使用该方案的原理如下:

  • 用户为集群创建Ingress资源,在Ingress中配置流量访问规则,如负载均衡器实例、URL路由、SSL证书等监听信息,以及访问的后端Service等,控制器通过标签选择器选中工作负载,将工作负载所在节点和Nodeport端口挂载至负载均衡器实例的后端;

  • Ingress Controller监听到Ingress资源发生变化时,会根据其中定义的流量访问规则,在ELB侧重新配置监听器以及后端服务器路由;

  • 用户通过ELB访问应用程序,流量根据ELB中配置的转发策略转发到对应的Node节点,再经过Nodeport二次转发访问到关联的工作负载(Nodeport转发机制参见k8s官方文档说明)

2.png

图二: Nodeport中转的ELB Ingress流程图

该方案中流量经过节点、IPTables/IPVS规则多次转发,网络性能存在损耗。在大流量场景下,网络转发效率、网络连通速度的挑战尤为突出。为此,我们推出了基于CCE Turbo集群的网络加速方案:容器直接使用VPC网络实现直通容器的ELB Ingress,将原有的“容器网络 + 虚拟机网络“两层模型简化为一层。如图三所示,集群中的Pod IP直接从VPC中分配,支持北向ELB直通容器,外部流量可以不经过节点端口转发直接访问集群中的Pod,达到流量分发零损耗的效果。

3.png

图三:容器网络直通的ELB Ingress流程图

ELB Ingress流量治理核心优势

ELB Ingress基于原生Kubernetes Ingress,通过声明式API指定Ingress的路由、对接的后端服务,或者通过Annotation配置监听侧的高级选项,由系统保证最终一致性。ELB Ingress为开发者和运维人员提供了极大的开发灵活性和维护便利性,其核心优势包括:

  • 高吞吐、高可用、高弹性

ELB Ingress搭配独享型ELB实例,最高支持2千万并发连接;通过完善的健康检查机制,保障业务实时在线,支持多可用区的同城双活容灾,无缝实时切换;弹性规格ELB实例支持根据流量负载自动弹性扩缩实例规格,适用于业务用量波动较大的场景,例如游戏、视频等行业,能满足瞬时流量同时成本最小化。

  • 高安全性

ELB Ingress提供了端到端的全链路安全策略,如下图四是外部流量经过ELB访问CCE Turbo集群的简单示例:在访问端可配置接入WAF引擎检测并拦截恶意攻击流量,而正常流量转发至后端云服务器。通过Ingress的Annotation配置可轻松为ELB实例配置自定义安全策略,例如设置黑白名单,双向认证等。从ELB转发至后端也支持HTTPS加密信道,进一步增强整体安全性。

4.png

图四: 外部流量访问CCE Turbo安全示例

  • 可移植性

完全兼容社区Ingress语义,从开源Nginx Ingress等方案迁移过来仅需改造annotation即可轻松适配。

  • 可观测性

云监控可以按时间轴查看ELB的网络流量和访问日志,动态分析并告警潜在风险;云审计可以实时监控ELB资源更新日志,针对风险动作实时告警,动态监控云上资源安全;Ingress Controller也支持丰富的普罗监控指标,如接口调用时延,reload次数等。

  • 免维护性

ELB Ingress组件运行在集群的Master节点,用户无需关注运维问题,组件在集群升级时会自动更新,且对业务无感。

ELB Ingress流量治理核心功能

在社区基础功能之上,华为云ELB Ingress在负载均衡、路由规则、流量控制、安全性和可观测性等方面都有较大增强,满足了更复杂的生产环境需求。下面介绍ELB Ingress流量治理核心功能:

  • 灰度发布

灰度发布是业界常用的版本升级平滑过渡的一种方式。在版本升级时,先让部分用户使用新版本,其他用户继续使用老版本。待新版本稳定后,再逐步扩大新版本的使用范围,直到所有用户流量都迁移到新版本上。这样可以最大限度地控制新版本发布带来的业务风险,降低故障影响范围,同时支持快速回滚。

我们提供了基于Header/Cookie/Weight的灰度发布策略,前两种策略通过将用户分成若干组,在不同的时间段内逐步引入新版本,最终扩大新版本的影响范围;基于Weight的策略则是通过控制新版本的权重,在不同时间段内逐步增加新版本的流量比例,直到完全替代旧版本。

  • 高级转发策略

随着云原生应用组网的日益复杂,传统的基于路由转发的七层流量治理已经难以满足需求。我们提供的高级转发策略可以很好地解决传统方案面临的局限性:

  • 基于请求头的负载均衡:根据客户端请求头的不同值,将请求分配到不同的后端服务器。

  • HTTP重定向到HTTPS:系统自动将HTTP监听器流量转发至HTTPS监听,提升网站安全性,防止内容篡改等。

  • URL重定向和重写:支持将URL永久或临时映射到另一个URL。同时,支持正则表达式匹配和实现不同路径的重写规则。

  • 慢启动

在应用滚动升级时,ELB Ingress会自动更新负载均衡器后端,并且根据后端容器实例副本数自动设置后端权重。但是,在后端健康检查通过后的上线过程中,可能面临流量突增,导致后端容器的CPU或内存资源瞬间高负荷,从而影响业务稳定性。在开启慢启动模式后,系统可以在指定时间内,逐步将流量导入到目标容器后端。这样可以缓解业务容器突增的流量压力,保护系统免受过度负载的影响,实现优雅过渡。

小结

华为云CCE服务的ELB Ingress基于华为云应用型负载均衡ELB(Elastic Load Balance)提供强大的Ingress流量管理能力,兼容Nginx Ingress,具备处理复杂业务路由和证书自动发现的能力,支持HTTP、HTTPS和GRPC等协议,满足在云原生应用场景下对超强弹性和大规模七层流量处理能力的需求。

后续我们还将发布系列文章,详细介绍基于ELB Ingress的流量管理最佳实践,欢迎各位读者继续关注。

相关链接:

点击关注,第一时间了解华为云新鲜技术~

 

标签:网关,容器,Ingress,ELB,负载,流量,集群
From: https://www.cnblogs.com/huaweiyun/p/18291152

相关文章

  • PN转232网关模块接扫码枪与CPU通讯
    在现代物流、汽车生产线等领域,广泛使用条码扫码枪快速扫描产品条码,提高工作效率。为了保证条码扫码枪与CPU之间的准确通信,PN转232网关模块成为关键部件。本文将深入研究PN转232网关模块(BT-PNR20)的作用和原理,以及如何实现条码扫码枪与CPU之间的高效通信。一、PN转232网关模块的功......
  • RS232转PN协议网关模块连接PLC和霍尼韦尔条码扫描器通信
    为了更快地输入信息,许多设备都配备了条码扫描器,但条码扫描器不能直接与CPU通信。最直接和方便的方法是加RS232转PN协议网关模块(BT-PNR20)。本文将深入研究如何利用巴图自动化的RS232转PN协议网关模块,在PLC和条码扫描器之间搭建通信桥梁,从而提高生产效率,降低人工干预成本。一、设......
  • 实施OPC UA网关以加速设备与MES系统之间的连接
         在现代工业自动化中,信息化和智能化已成为企业提升竞争力的关键因素,为了实现生产过程的自动化和管理的高效化,工业自动化系统(如OPCUA)与制造执行系统(MES)的集成变得尤为重要。OPCUA(统一架构)是一种平台无关的工业通信协议,旨在促进不同设备和系统之间的互操作性。而MES......
  • 【无人机通信】Stackelberg算法无人机边缘计算抗干扰信道分配【含Matlab源码 4957期】
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信或扫描文章底部QQ二维码。......
  • EtherCAT转Profinet网关配置说明第二讲:上位机软件配置
    EtherCAT协议转Profinet协议网关模块(XD-ECPNS20),不仅可以实现数据之间的通信,还可以实现不同系统之间的数据共享。EtherCAT协议转Profinet协议网关模块(XD-ECPNS20)具有高速传输的特点,因此通过EtherCAT转Profinet网关实现数据传输和控制时速度的提升。在大规模的工业自动化生产过程中,......
  • EtherCAT转Profinet网关配置说明第一讲:配置软件安装及介绍
     网关XD-ECPNS20为EtherCAT转Profinet协议网关,使EtherCAT协议和Profinet协议两种工业实时以太网网络之间双向传输IO数据。适用于具有EtherCAT协议网络与Profinet协议网络跨越网络界限进行数据交换的解决方案。本网关通过上位机来进行配置。首先安装上位机软件一、上位机......
  • CAN转PN网关模块连接激光切割机的配置方法
    激光切割机在工业生产中被广泛应用,而激光发射器与控制设备常以不同的协议存在两者之间,CAN总线和Profinet以各自的特点被广泛用于设备当中。本文将介绍介绍兴达易控CAN转Profinet网关模块(XD-PN_CAN20)连接CAN激光切割机的使用方法。一、功能及优势CAN转Profinet网关模块(XD-PN_C......
  • 利用 STM32 实现多协议物联网网关:Modbus/Zigbee 到以太网/Wi-Fi 的数据桥接
    摘要: 随着物联网技术的飞速发展,不同通信协议之间的互联互通成为了构建智能化系统的一大挑战。本文将以实战项目为例,详细介绍如何利用STM32微控制器实现Modbus/Zigbee与以太网/Wi-Fi之间的协议转换,从而打通传感器数据上传至服务器的“最后一公里”。关键词: STM32,协议......
  • 智能分析网关V4人员区域徘徊AI检测:算法原理介绍及技术应用场景
    一、引言在现代社会,随着科技的不断发展,视频监控系统已广泛应用于各个领域,如公共安全、商业管理、交通监控等。其中,区域徘徊检测算法作为一种重要的视频分析技术,能够有效地识别出特定区域内人员的徘徊行为,为安全管理和事件预防提供了有力支持。本文将以TSINGSEE青犀AI智能分析网关......
  • 巴图自动化Modbus转PN网关模块连智能仪表与PLC通讯
    一、现场要求:PLC作为控制器,仪表设备作为执行设备。执行设备可以实时响应PLC传送的指令,并将数据反馈给PLC,从而实现PLC对仪表设备的控制和监控,实现对生产过程的精确控制。二、解决方案:通过巴图自动化Modbus协议转Profinet协议网关模块(BT-MDPN100),实现PLC或控制器对仪表设备的远......