当前ACK或ASK支持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或ASK等容器服务结合使用 用户侧组件,与阿里云ACK或ASK等容器服务结合使用,且支持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作为入口网关。