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) |
产品定位 |
|
|
|
产品架构 | 基于Nginx+Lua插件扩展。 |
|
|
典型应用场景 | 网关高度定制化场景。 | 超大QPS、超大并发连接场景。 |
|
性能 |
|
|
|
基础路由 |
|
|
|
运维能力 |
|
|
|
支持协议 |
|
|
|
配置变更 |
| 采用OpenAPI机制变更配置,时效高于List-Watch机制。 |
|
认证鉴权 |
| 支持TLS身份认证。 |
|
可观测能力 |
|
|
|
服务治理 |
|
|
|
安全 |
|
|
|
扩展性 | Lua脚本。 | 使用AScript自研脚本。 | Wasm插件,可使用多语言编写。 |