应用路由选型

EDAS支持为K8s应用配置Nginx Ingress、ALB Ingress、云原生网关(MSE Ingress)类型应用路由作为应用的外部访问入口。本文介绍Nginx Ingress、ALB Ingress和云原生网关/MSE Ingress的适用场景和具体差异。

适用场景说明

Nginx Ingress网关

基于Nginx构建的K8s Ingress网关,是K8s默认的入口网关,提供安全、路由及可观测等基础能力。Nginx Ingress网关最易接入,通过创建基础Ingress资源,可以轻松对外暴露K8s集群内服务。同时,通过扩展Lua插件或注解配置Snippet,Nginx能够支持网关定制化请求方向转发规则或响应方向转发规则。

在EDAS中使用Nginx Ingress,您可以轻松提供EDAS应用对外访问能力。面对高QPS场景,通过为Nginx Ingress Controller配置多个LoadBalancer Service,可以拓展网关带宽。结合HPA弹性伸缩,能够支持根据内存或CPU使用量进行网关实例的弹性伸缩,以横向拓展网关性能。

ALB Ingress

基于阿里云ALB实例,支持超大QPS、超大并发连接数,并支持自动弹性。通过ALB Ingress暴露K8s服务后,无需手工进行网关运维。

在EDAS中使用ALB Ingress,您只需要预先创建ALB实例,在EDAS控制台就能够轻松配置ALB Ingress应用路由,提供EDAS应用对外访问能力。此外,结合ALB实例免运维特性,只需要考虑实际提供服务的应用,无需手工调优或维护网关。

云原生网关(MSE Ingress)

支持多种服务来源发现,包括K8s Service、微服务注册中心、固定IP和DNS。MSE Ingress具有更丰富的流量治理能力,例如单机限流、服务预热、服务Fallback容灾和微服务标签路由等。

在EDAS中使用MSE Ingress网关不仅可以为K8s Servcie应用提供对外访问能力,还能够创建云原生网关路由,为EDAS注册中心或MSE注册中心中的服务提供路由转发能力。

对比差异

对比项

Nginx Ingress

ALB Ingress

云原生网关(MSE Ingress)

产品定位

  • 提供七层流量处理能力与丰富的高级路由功能。

  • 自有组件,可根据需要进行高度定制化。

  • 提供七层流量处理能力与丰富的高级路由功能。

  • 支持超大容量、自动弹性和免运维能力。

  • 提供七层流量处理能力与丰富的高级路由功能。

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

产品架构

基于Nginx+Lua插件扩展。

  • 基于阿里洛神云网络平台。

  • 基于CyberStar自研平台,支持自动弹性伸缩。

  • Istiod+Envoy。

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

典型应用场景

网关高度定制化场景。

超大QPS、超大并发连接场景。

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

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

性能

  • 性能依赖手动调优,需要进行系统参数调优和Nginx参数调优。

  • 需要配置合理的副本数和资源限制。

  • 单实例支持100万QPS。

  • 单实例支持千万级最大连接。

  • 默认使用SSL硬件进行加速。

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

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

基础路由

  • 基于内容和源IP的路由。

  • 支持HTTP标头改写、重定向、重写、限速、跨域和会话保持等。

  • 支持请求方向转发规则和响应方向转发规则,其中响应方向转发规则可以通过扩展Snippet配置实现。

  • 基于内容、源IP的路由。

  • 支持HTTP标头改写、重定向、重写、限速、跨域和会话保持等。

  • 支持请求方向转发规则和响应方向转发规则。

  • 基于内容的路由。

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

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

运维能力

  • 用户侧组件维护。

  • 通过配置HPA扩缩容。

  • 需要主动配置规格调优。

  • 全托管、免运维。

  • 自动弹性,免配置支持超大容量。

  • 处理能力随业务峰值自动伸缩。

  • 全托管。

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

支持协议

  • 支持HTTP和HTTPS协议。

  • 支持WebSocket、WSS和gRPC协议。

  • 支持HTTP和HTTPS协议。

  • 支持WebSocket、WSS和gRPC协议。

  • 支持HTTP和HTTPS协议。

  • 支持协议转换:

    • HTTP转换为Dubbo。

    • HTTPS转换为Dubbo。

配置变更

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

  • 非证书变更使用Lua实现热更新。

  • Lua插件变更需要Reload进程。

采用OpenAPI机制变更配置,时效高于List-Watch机制。

  • 配置热更新。

  • 证书热更新。

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

  • Wasm插件热更新。

认证鉴权

  • 支持Basic Auth认证方式。

  • 支持oAuth协议。

支持TLS身份认证。

  • BasicAuth。

  • oAuth。

  • JWT。

  • OIDC。

  • IDaas。

  • 自定义认证。

可观测能力

  • 支持通过Access Log采集日志。

  • 支持通过Prometheus进行监控和告警配置。

  • EDAS支持对流量注入Trace ID,集成ARMS链路追踪能力。

  • 支持通过EDAS集成的Loki日志分析。

  • 支持通过Access Log采集日志(对接SLS)。

  • 支持使用Metrics输出监控指标(集成云监控)。

  • 支持报警配置(对接云监控)。

  • Access Log。

  • Metrics。

  • Tracing。

  • 报警。

服务治理

  • 服务发现支持K8s。

  • 服务灰度支持金丝雀。

  • 服务高可用支持限流。

  • 服务发现支持K8s。

  • 服务灰度支持金丝雀。

  • 服务高可用支持限流。

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

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

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

安全

  • 支持HTTPS协议。

  • 支持黑白名单功能。

  • HTTPS(集成SSL)支持全链路HTTPS、SNI多证书、RSA、ECC双证、TLS 1.3协议和TLS算法套件选择。

  • 支持WAF防护(对接阿里云Web应用防火墙。

  • 支持DDos防护(对接阿里云DDoS防护服务)。

  • 支持黑白名单功能。

  • HTTPS(集成SSL)。

  • WAF防护(对接阿里云Web防护墙)。

  • 支持黑白名单功能。

扩展性

Lua脚本。

使用AScript自研脚本。

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