K8s 网关选型初判:Nginx 还是 Envoy?

为了避免混淆,我们先对一些关键定义做一些厘清:

  • 传统网关:未作容器化改造,未启用 K8s,通过流量网关与业务网关两层网关来构建,流量网关提供全局性的、与后端业务无关的策略配置,例如 Tengine 就是典型的流量网关;业务网关提供独立业务域级别的、与后端业务紧耦合策略配置,随着应用架构模式从单体演进到现在的分布式微服务,业务网关也有了新的叫法 - 微服务网关。
  • K8s 网关:即云原生网关,也被称为下一代网关,Ingress 成为 K8s 生态的网关标准,促使流量网关和业务网关,合二为一。基于 Ingress 规范的实现主要分为基于 Nginx 和基于 Envoy 两大阵营,基于 Nginx 的 Nginx Ingress Controller 是目前大多数 K8s 集群的选择,基于 Envoy 的实现作为后起之秀,大有赶超之势。
  • MSE 云原生网关:是基于 Envoy,做了深度优化的云上服务。

本文将从性能和成本、可靠性、安全性 3 方面,对两大开源实现进行比对,希望对正在做 K8s 网关选型的企业有所借鉴。

性能和成本

MSE 云原生网关的吞吐性能几乎是 Nginx Ingress Controller 的一倍,尤其是传输小文本时性能优势会更明显,如下图所示,网关 CPU 使用率达到 30% 时的吞吐对比:

网关规格:16 核 32 G * 4 节点

ECS 型号:ecs.c7.8xlarge

当 CPU 负载升高时,吞吐差距会更加明显,下图是 CPU 使用率达到 70% 时的情况:

高负载下 Nginx Ingress Controller 吞吐下降原因是出现了 pod 重启,详情见下一节“可靠性”中的分析。

随着网络安全愈加受重视,现在互联网上已经普遍使用 HTTPS 进行传输加密,在网关侧,用于实现 HTTPS 的 TLS 非对称加密算法是占用 CPU 资源的大头。针对此场景,MSE 云原生网关使用了 CPU SIMD 技术实现了 TLS 加解密算法的硬件加速:

从上图压测数据可以看出使用 TLS 硬件加速后,相比普通 HTTPS 请求 TLS 握手时延降低一倍,极限 QPS 提升 80%以上。

基于以上数据,使用 MSE 云原生网关,只需一半的资源,就能达到 Nginx Ingress Controller 的吞吐,在做过硬件加速优化的 HTTPS 场景下,吞吐还能进一步提升。

可靠性

前文提到高负载下,Nginx Ingress Controller 会出现 pod 重启导致吞吐下降,导致 pod 重启的原因主要有 2 点:

  • 存活健康检查(livenessProbe)在高负载时容易超时失败,社区在 0.34 版本通过减少冗余检测进行了一定的优化,但问题仍然存在。
  • 在开启了 prometheus 采集监控指标的情况下,高负载时会出现 OOM,导致容器被 kill,详细原因见相关 issue:https://github.com/kubernetes/ingress-nginx/pull/8397

这两个问题,本质上皆是由于 Nginx Ingress Controller 的部署架构不合理导致。其控制面(Go 实现的 Controller)和数据面(Nginx)进程混跑在一个容器内,高负载下,数据面进程和控制面进程出现了 CPU 抢占。其中控制面进程负责了健康检查和监控指标采集,因为没有足够的 CPU 导致请求积压引起 OOM 以及健康检查超时。

这种情况是极危险的,会在高负载下引发网关的雪崩效应,对业务造成严重影响。MSE 云原生网关使用了数据面和控制面隔离的架构,在架构上具备可靠性优势:

从上图可以看到,MSE 云原生网关并不部署在用户的 K8s 集群中,而是纯托管的模式,这种模式在可靠性上还有更多优势:

  • 不会与业务容器混跑在一个 ECS 节点上
  • 网关的多个实例不会混跑在一个 ECS 节点上
  • 提供网关可用性的 SLA 保障

如果使用 Nginx Ingress Controller 要实现高可靠部署,一般需要独占 ECS 节点,同时还需要部署多个 ECS 节点,来避免单点故障,这种情况下资源成本会直线上升。此外,Nginx Ingress Controller 因为部署在用户集群中,也无法提供网关可用性的 SLA 保障。

安全性

Nginx Ingress Controller 的不同版本都还存在着一些 CVE 漏洞隐患,具体影响版本见下表:

从 Nginx Ingress Controller 迁移到 MSE 云原生网关后,将一次性修复所有 CVE 漏洞隐患;并且,MSE 云原生网关提供了平滑升级方案,一旦出现新的安全漏洞,可以快速对网关版本进行升级,同时确保升级过程对业务影响最小化。

此外,MSE 云原生网关内置了阿里云 Web 应用防火墙(WAF),相比传统 WAF 用户请求链路更短、RT 更低,且相比Nginx Ingress Controller 可以做到细粒度路由级防护,使用成本是目前阿里云 Web 应用防火墙架构的 2/3。

MSE 云原生网关

阿里云容器服务应用市场已经上架 MSE 云原生网关,可用于替代默认安装的网关组件 Nginx Ingress Controller。

MSE 云原生网关在阿里集团内部作为网关中间件已经大规模使用,其强劲的性能和可靠的稳定性已被多年双十一流量所验证。

在 K8s 容器服务场景下,对比默认安装的 Nginx Ingress Controller,主要有以下优势:

  • 更强劲的性能,更合理的架构,可以将网关资源成本降低至少 50%
  • 更好的可靠性和 SLA 保障,纯托管免运维,背靠阿里云技术团队提供支持
  • 更优的安全性保障,一次性解决现存 CVE 安全漏洞隐患,且内置 WAF 防护功能

同时在路由策略、灰度治理、可观测等方面提供了更丰富的功能,并且支持使用多种语言开发自定义的扩展插件,详细对比请参考:
https://help.aliyun.com/document_detail/424833.html

平滑迁移方案

部署 MSE 云原生网关并不直接影响原有网关流量,通过 DNS 权重配置可以实现业务流量的平滑迁移,对后端业务完全无感知,核心的流量迁移过程如下图所示:

完整步骤如下:

  • 步骤一:在容器服务的应用市场中找到 mse-ingress-controller,并安装到目标 ACK 集群
  • 步骤二:在 K8s 中配置 MseIngressConfig (配置指引),自动创建指定规格的 MSE 云原生网关
  • 步骤三:从 Ingress 的 address 字段中获取 MSE 云原生网关的 IP,本地绑定 host,将业务域名解析到该 IP,完成业务测试
  • 步骤四:修改业务域名的 DNS 权重配置,添加云原生网关 IP,并逐步调高权重,进行流量灰度
  • 步骤五:完成灰度后,将业务域名原先的 IP 从 DNS 配置中移除,实现全部流量切到云原生网关

作者:张添翼(澄潭)

原文链接

 

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从原理到操作,让你在 Apache APISIX 中代理 Dubbo3 服务更便捷

本文为大家介绍了如何借助 Apache APISIX 实现 Dubbo Service 的代理,通过引入 dubbo-proxy 插件便可为 Dubbo 框架的后端系统构建更简单更高效的流量链路。 背景 Apache Dubbo 是由阿里巴巴开源并捐赠给 Apache 的微服务开发框架,它提供了 RPC 通信与…

阿里云数据库走向“四化”:深度融合自研软硬件体系,AllinServerless

11月3日,在2022云栖大会上,阿里云宣布PolarDB、AnalyticDB(简称ADB)、RDS、Lindorm等核心数据库产品已与自研CPU、CIPU、飞天操作系统进行深度融合创新,并全面Serverless化,对外更好地提供一站式数据管理与服务。 阿里云智能数据库…

RocketMQ 5.0: 存储计算分离新思路

Apache RocketMQ 自 2012 年开源以来,因其架构简单,业务功能丰富,具备极强的可扩展性等特点被广泛采用。RocketMQ 在阿里巴巴集团内部有着数千台的集群规模,每天十万亿消息的规模。在阿里云上,RocketMQ 的商业化产品也…

谈谈技术能力

技术人成长的悖论 在程序员界有一个悖论持续在困惑着很多技术人:在写代码的人的困惑是一直写代码是不是会丧失竞争力,会不会被后面年轻的更能加班写代码的人汰换。典型代表就是工作 5 年左右的核心技术骨干,此时正处于编码正嗨但也开始着手规…

阿里云ODPS升级为一体化大数据平台 满足用户多元化数据计算需求

11月3日,2022云栖大会上,阿里巴巴集团副总裁、阿里云计算平台事业部负责人贾扬清表示,为满足用户多元化数据计算需求,阿里云ODPS升级为一体化大数据平台。 升级后的ODPS支持大规模批量计算、实时分析等服务,提供实时流…

上篇:技术架构的设计方法

上周我写的一篇文章《谈谈技术能力》引起了大家的关注,好多读者的评论“以写代想、以想促真、以讲验真”,大家的感受很深刻,基于上次的文章,这篇文章我其实更想跟大家聊聊一些常用的思考方法,思考问题的方式对了&#…

下篇:技术 Leader 的思考方式

技术 Leader 是一个对综合素质要求非常高的岗位,不仅要有解具体技术问题的架构能力,还要具备团队管理的能力,更需要引领方向带领团队/平台穿越迷茫进阶到下一个境界的能力。所以通常来说技术 Leader 的技能是虚实结合的居多,繁杂的…

阿里进入“全面云原生深度用云”阶段 PaaS支出占用云总成本43%

11月4日,2022杭州云栖大会《互联网产业与飞天技术创新》峰会上,阿里技术风险与效能负责人张瓅玶表示,经过持续多年上云用云,今年阿里巴巴集团在PaaS(包括大数据、机器学习平台、数据库中间件等)支持的业务形…

Apache ShenYu 网关正式支持 Dubbo3 服务代理

Apache Dubbo 在去年发布了下一代的云原生微服务版本 Dubbo3,目前最新版本 Dubbo3 已在阿里经济体完成对 HSF2 框架的全面替换与升级,Dubbo3 目前已成为社区企业实践推荐版本。Apache Shenyu 网关在这个背景下发布了对 Dubbo3 服务代理的支持。 本文介绍…

支持中英文自由说、访谈自动整理,新一代会议AI助理“听悟”升级发布

“你只需专注会议,其余一切交给听悟。”11月4日,2022杭州云栖大会,阿里巴巴达摩院研发的智能产品“听悟”进阶版亮相大会现场。仅需一台个人电脑,观众和媒体记者们即可体验全面集成达摩院语音语言智能的最新AI助理,感受…

成本节省 50%,9人团队使用函数计算开发 wolai 在线文档应用

我们的日常工作场景几乎离不开“云文档”。目前,人们对于文档的需求再不仅仅是简单的记录,而扩展到办公协同、信息组织、知识分享等。在国内众多在线文档中,wolai 因为功能新、迭代快、流畅的异地协同体验、高效的信息组织方式以及“信息块”…

阿里云“汽车云”亮相云栖大会,小鹏、一汽、长城、地平线等均已上云

11月3日,阿里云“汽车云”在2022云栖大会上正式亮相。基于云、钉钉、达摩院、瓴羊等核心技术能力,通过与客户、伙伴紧密共创,阿里云在研发、制造、流通三个业务场景形成了“自动驾驶云”“智造云”“营销云”解决方案,提供“产研供…

阿里云架构师梁旭:MES on 云盒,助力客户快速构建数字工厂

2022年5月18日,在“云上数字工厂与中小企业数字化转型创新论坛”暨“鼎捷MES & 阿里云云盒云上数字工厂解决方案发布会”上,阿里云智能弹性计算产品解决方案架构师梁旭为大家带来了《MES on 云盒,助力客户快速构建数字工厂》的主题分享&a…

如视技术副总裁杨永林:当传统产业遇到“数字空间”

图:2022阿里云视觉计算私享会现场 5月11日,在“2022阿里云视觉计算私享会”上,如视技术副总裁杨永林为大家带来了题为《当传统产业遇到“数字空间”》的主题分享。以下内容根据他的演讲整理而成。 随着互联网的发展,我们不断地将…

第二届上汽零束SOA平台开发者大会揭幕,智能汽车生态加速落地

重磅发布一览: 上汽、OPPO联合发布《生态域白皮书》,率先打通不同品牌硬件、操作系统和产品之间的交互壁垒,构建广泛兼容的生态域底层协议,并向全行业开放技术标准和开发资源。上汽、地平线联合发布基于征程5芯片的智驾解决方案。…

从 Redis7.0 发布看 Redis 的过去与未来

前言 经历接近一年的开发、三个候选版本,Redis 7.0终于正式发布,这是Redis历史上改变最多的一个大版本,它不仅包含了50多个新命令,还有大量核心新特性与改进,这些不仅能够解决用户使用中的诸多问题,还进一…

聊一聊并行文件系统的客户端优化之道

并行文件系统作为文件存储的一个高性能分支,自出现以来已经走过了二十个年头,一直被大规模应用于气象预测、石油勘探、高能物理、汽车制造、芯片制造、自动驾驶、影视渲染等高性能计算领域。在AI时代下,GPU并行计算如火如荼,阿里云…

马斯克“灭霸式”裁员,多个部门遭“团灭”!结果火速打脸,开始“跪求”被裁工程师复职?...

整理 | 郑丽媛出品 | 程序人生(ID:coder_life)“为了使 Twitter 走上健康的道路,我们将在周五经历裁减全球员工的艰难过程。我们清楚,这势必会影响到一些为 Twitter 做出宝贵贡献的人,但不幸的是&#xff0…

辛辛苦苦原创的网站,被抄袭了怎么办?

几个月前,某公司A针对网站被恶意抄袭发布了一则严正声明。A公司是一家网站设计公司,该公司网站精巧的设计、美观的排版,总会让人眼前一亮。可某天A公司却发现,另外一家B公司在没有任何授权的情况下,其网站照搬了A公司网…

IT人才能嗑到的这对CP,甜!

提到文件存储,相信大家都不陌生,在浩瀚的存储发展史中,文件存储无疑是璀璨的,耀眼的。那么,在性能已经成为刚需,自动驾驶行业风起云涌的当下,文件存储与GPU这对CP又有怎样的含糖量呢&#xff1f…