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插件,可使用多語言編寫。 |