Nginx Ingress、MSE Ingress网关对比

当前 ACK 托管版、ACK Serverless 集群或ACS 集群支持Nginx Ingress和MSE Ingress作为入口网关,但是两者之间的功能特性和应用场景等均有所不同。本文通过产品定位、产品架构、性能、基础路由等几个维度的对比,帮助您快速了解两者之间的差异以便您选择合适的Ingress网关。

网关对比

类型

Nginx Ingress

MSE Ingress

产品定位

  • 七层处理能力与丰富的高级路由功能

  • 自有组件,可根据需求高度定制化

  • 传统流量网关、微服务网关和安全网关三合一,通过硬件加速、WAF本地防护和Wasm插件市场等功能,帮助用户构建一个低成本、高性能、高扩展、高集成的网关中间件

  • 支持多种服务发现模式和多种服务灰度策略,包括金丝雀、A/B Test、蓝绿和自定义流量比例分发

  • 聚焦HTTP和HTTPS七层应用协议处理且提供丰富的高级路由功能

  • 专门面向应用层负载场景,与容器深度集成,网关转发请求时直连后端Pod IP

产品架构

  • Nginx + Lua插件扩展

  • 手动配置合适的副本数和资源限制

  • Istiod + Envoy

  • 每个用户使用各自独享实例

性能

  • 性能依赖手动调优

  • 使用Lua脚本支持了部分配置的热更新,但Lua脚本的大量使用对性能影响非常大

  • 启用硬件加速后HTTPS性能提升约80%,结合OS与内部调优性能相比自建提升约40%

  • 相比开源Nginx Ingress在CPU 水位30~40%时TPS高出约90%

基础路由

  • 基于内容的路由

  • HTTP标头改写、重定向、重写和限速等

  • 基于内容的路由

  • HTTP标头改写、重定向、重写、限速、跨域、超时和重试等

  • 负载均衡除支持标准的轮询、随机、最小请求数和一致性Hash外,还支持预热,即在指定时间窗口转发到后端某机器的流量逐步平滑递增

运维能力

  • 用户侧组件维护

  • 通过配置HPA扩缩容

  • 需要主动配置规格调优

  • 全托管

  • 通过配置HPA扩缩容(研发中)

云原生集成

用户侧组件,与阿里云 ACK 托管版、ACK Serverless 集群或ACS 集群等容器服务结合使用

用户侧组件,与阿里云 ACK 托管版、ACK Serverless 集群或ACS 集群等容器服务结合使用,且支持Nginx Ingress Annotation无缝转换

典型应用场景

  • 网关高度定制化场景

  • 云原生应用金丝雀蓝绿发布场景

  • 南北向流量场景,后端服务发现支持传统注册中心Nacos、K8s、DNS和固定IP多种模式

  • 东西向流量场景,支持混合云、多数据中心和多业务域的内部互通,且可以与Service Mesh系统无缝整合

支持主流协议

  • HTTP

  • HTTPS

  • HTTP

  • HTTPS

协议转换

不支持

  • HTTP转换为Dubbo

  • HTTPS转换为Dubbo

Ingress支持

支持Ingress

配置变更

  • 证书变更需要Reload进程,对长连接有损

  • 非证书变更使用Lua做到热更新

  • Lua插件变更需Reload进程

  • 配置热更新

  • 证书热更新

  • 采用List-Watch机制,配置变更准实时

  • Wasm插件热更新

服务治理

  • 服务发现支持K8s

  • 服务灰度支持金丝雀

  • 服务高可用支持限流

  • 服务发现支持K8s、Nacos、Eureka、DNS和固定IP

  • 服务灰度支持金丝雀、标签路由。

  • 服务高可用集成AHAS,支持限流、熔断和降级。

  • 服务测试支持服务Mock。

安全

  • HTTPS

  • 黑白名单

认证鉴权

  • BasicAuth

  • OAuth

  • BasicAuth

  • OAuth

  • JWT

  • OIDC

  • IDaas

  • 自定义认证

扩展性

Lua脚本

  • Wasm插件,可使用多语言编写

  • Lua插件(研发中)

可观测能力

  • Access Log

  • Prometheus

生态集成

Nginx Service Mesh

Istio Service Mesh(事实标准)

总结

  • Nginx Ingress是基于开源Nginx构建的K8s Ingress网关,得益于Nginx的广泛使用,Nginx Ingress也成为了K8s默认的入口网关,其提供了基础的安全、路由及可观测等能力。如果您的业务流量低、对安全、扩展性和稳定性要求低,且可以接受手工运维网关,Nginx Ingress可能会比较适合。

  • MSE Ingress基于阿里云微服务引擎MSE的子产品云原生网关构建的高性能、高扩展和高集成的Ingress网关,通过硬件加速、WAF本地防护和Wasm插件市场等帮助用户构建一个低成本、高性能、高扩展和高集成的托管网关中间件,支持多种服务发现模式及多种服务灰度策略,在可观测方面为用户带来一站式的Access Log、Tracing、Metrics及报警的全栈能力。如果您的业务流量高、对安全、扩展性和稳定性有一定要求,建议使用MSE Ingress作为入口网关。