全部產品
Search
文件中心

:Nginx Ingress、ALB Ingress和MSE Ingress對比

更新時間:Dec 10, 2024

ACK託管叢集ACK Serverless叢集均支援使用Nginx Ingress、ALB Ingress和MSE Ingress對外暴露Container Service和管理路由。Nginx Ingress需要自我維護,ALB Ingress和MSE Ingress使用的網關為全託管模式。本文比較了Nginx Ingress、ALB Ingress和MSE Ingress在典型應用情境、工作流程和功能等方面的差異,協助您選擇合適的Ingress類型。

背景資訊

  • Nginx Ingress:基於開源社區Ingress NGINX Controller提供七層流量處理能力與豐富的進階路由功能,與上遊社區完全相容,支援擴充能力。該組件由您自主營運,無SLA保障,支援豐富定製化能力。

  • ALB Ingress:阿里雲自研雲原生Ingress網關,相容Nginx Ingress,採用全託管一體化設計,支援SSL硬體加速,具備自動彈性、低時延、處理複雜業務路由的能力。單個ALB執行個體支援100萬QPS,提供更強大的Ingress流量管理功能。關於ALB Ingress雲原生網關的詳細介紹,請參見ALB Ingress概述

  • MSE Ingress:阿里雲開源Higress企業版,相容Nginx Ingress,適用於微服務情境,支援多種服務發現、認證鑒權以及多語言外掛程式擴充,提供灰階發布、預熱和限流等核心能力。單個MSE雲原生網關執行個體支援100萬QPS,提供更為強大的Ingress流量管理功能。

典型應用情境

類型

典型應用情境

Nginx Ingress

  • 網關高度定製化。

  • 雲原生應用金絲雀發布、藍綠髮布。

ALB Ingress

  • 網關和組件全託管、免營運。

  • 互連網應用七層高效能自動彈性。

  • 多級高可用,服務等級協議SLA高達99.995%。

  • 雲原生應用金絲雀發布、藍綠髮布。

  • 多種雲端服務混合掛載,共用一個ALB執行個體。

  • 混合雲、雲上跨地區等多情境容災。

  • 超大QPS、超大並發串連。

MSE Ingress

  • 網關全託管、免營運。

  • 微服務架構,Nacos與ZooKeeper服務發現、Sentinel限流、HTTP到Dubbo協議轉換、整合OpenTelemetry。

  • 南北向流量情境,後端服務發現支援傳統註冊中心Nacos、K8s、DNS和固定IP等多種模式。

  • 東西向流量情境,支援混合雲、多資料中心和多業務域的內部互連,且可以與Service Mesh系統無縫整合。

  • 多個容器叢集、PaaS平台、ECS服務共用一個網關執行個體。

  • 混合雲、多資料中心、多業務域的內部互連。

  • 認證鑒權,靈活設定,安全防護要求高。

  • 超大流量、高並發業務。

工作示意圖

通過從請求網域名稱www.example.net/app到轉寄並訪問具體Container Service的工作示意圖,對比Nginx Ingress、ALB Ingress和MSE Ingress之間工作方式的差異。

Nginx Ingress

Nginx Ingress Controller是一個集控制面和資料面於一體的實現方案。每個Nginx Ingress Controller Pod中有一個Controller進程(控制面),同時也包含Nginx相關進程(資料面),因此配置流量和使用者請求流量都會由Nginx Ingress Controller Pod處理。

ALB Ingress

ALB Ingress Controller通過API Server動態地擷取Ingress資源和AlbConfig資源的變化,然後更新ALB執行個體。與Nginx Ingress Controller不同,ALB Ingress Controller是託管組件,作為ALB執行個體的控制面,不直接處理使用者請求流量,使用者流量的轉寄由ALB執行個體來實現。

MSE Ingress

MSE Ingress Controller負責監聽叢集中的MseIngressConfig資源,協調MSE雲原生網關執行個體用於實施Ingress資源描述的流量管理規則。與Nginx Ingress Controller不同,MSE Ingress Controller是管理MSE雲原生網關執行個體以及配置的控制面,MSE Ingress Controller Pod不直接處理使用者請求流量,使用者流量的路由和轉寄由MSE雲原生網關執行個體來實現。

功能對比

比較項

Nginx Ingress

ALB Ingress

MSE Ingress

產品定位

  • 提供七層流量處理能力與豐富的進階路由功能。

  • 自有組件,可根據需求進行高度定製化。

  • 提供七層流量處理能力與豐富的進階路由功能。

  • 專門面嚮應用層負載情境,與容器深度整合,支援多種服務灰階策略,包括金絲雀發布、A/B Test、藍綠部署、自訂流量比例分發等。

  • 支援超大容量、自動彈性和免營運。

  • 支援與多種雲產品結合,例如WAF、FC、PrivateLink、TR等。

  • 支援與多種網路產品組合實現混合掛載、跨地區掛載和本地IDC掛載

  • 將傳統流量網關、微服務網關和安全網關三合一,通過硬體加速、WAF本地防護和外掛程式市場等功能,構建一個高整合、高效能、易擴充、熱更新的雲原生網關。

  • 提供七層流量處理能力與豐富的進階路由功能。支援多種服務發現模式和多種服務灰階策略,包括金絲雀發布、A/B Test、藍綠部署和自訂流量比例分發。

  • 專門面嚮應用層負載情境,與容器深度整合,網關轉寄請求時直連後端Pod IP。

產品架構

基於Nginx+Lua外掛程式擴充。

  • 基於阿里洛神雲網路平台。

  • 基於CyberStar自研平台,支援自動Auto Scaling。

  • 基於開源Higress專案,控制面使用Istiod,資料面使用Envoy。關於開源Higress專案的詳細介紹,請參見Higress專案

  • 使用者獨享執行個體。

基礎路由

  • 基於內容、源IP的路由。

  • 支援HTTP標題改寫、重新導向、重寫、限速、跨域、會話保持等。

  • 支援要求方向轉寄規則和回應程式向轉寄規則,其中回應程式向轉寄規則可以通過擴充Snippet配置實現。

  • 轉寄規則按照最長路徑匹配,匹配到多條路徑時,轉寄路徑最長的優先匹配。

  • 基於內容、源IP的路由。

  • 支援HTTP標題改寫、重新導向、重寫、限速、跨域、會話保持等。

  • 支援要求方向轉寄規則和回應程式向轉寄規則。

  • 轉寄規則按照優先順序從高到低開始匹配,匹配到多條路徑時,轉寄規則編號的數值越小優先順序越高。

  • 支援標準的輪詢、最小串連數、根據源IP及URL參數的一致性Hash等負載平衡模式。

  • 根據訊息內容決定路由。

  • 支援HTTP標題改寫、重新導向、重寫、限速、跨域、逾時和重試等。

  • 支援標準的輪詢、隨機、最小請求數、一致性Hash和預熱等負載平衡模式。預熱是指在指定時間視窗轉寄到後端某機器的流量逐步平滑遞增。

  • 支援千層級的路由規則。

支援協議

  • 支援HTTP和HTTPS協議。

  • 支援WebSocket、WSS和gRPC協議。

  • 支援HTTP和HTTPS協議。

  • 支援HTTP3.0、WebSocket、WSS和gRPC協議。

  • 支援HTTP和HTTPS協議。

  • 支援HTTP 3.0、WebSocket和gRPC協議。

  • 支援HTTP/HTTPS轉Dubbo協議。

配置變更

  • 非後端端點變更需要Reload進程,對長串連有損。

  • 端點變更使用Lua實現熱更新。

  • Lua外掛程式變更需要Reload進程。

  • 支援配置熱更新。

  • 採用OpenAPI機制變更配置,配置變更即時生效。

  • 支援配置、認證、外掛程式熱更新。

  • 採用List-Watch機制,配置變更即時生效。

認證鑒權

  • 支援Basic Auth認證方式。

  • 支援OAuth協議。

支援TLS身份認證。

  • 支援Basic Auth、OAuth、JWT、OIDC認證。

  • 整合阿里雲IDaaS。

  • 支援自訂認證。

效能

  • 效能依賴手動調優,需要進行系統參數調優和Nginx參數調優。

  • 需要配置合理的副本數和資源限制。更多資訊,請參見Nginx Ingress Controller使用建議

  • 單一實例支援100萬QPS。

  • 單一實例支援千萬級最大串連。

  • 預設使用SSL硬體進行加速。

  • 相比開源Nginx Ingress,在CPU水位30~40%時,TPS高出約90%。

  • 啟用硬體加速後,提升HTTPS效能約80%。

可觀測能力

  • 支援通過Access Log採集日誌。

  • 支援通過Prometheus進行監控和警示配置。

  • 支援通過Access Log採集日誌(對接SLS)。

  • 支援使用Metrics輸出監控指標(整合CloudMonitor)。

  • 支援警示配置(對接CloudMonitor)。

  • 支援Tracing(整合TracingAnalysis和SkyWalking)。

  • 支援通過Access Log採集日誌(整合SLS和阿里雲Prometheus)。

  • 支援通過阿里雲Prometheus配置監控和警示。

  • 支援Tracing(整合TracingAnalysis和SkyWalking)。

營運能力

  • 自我維護組件。

  • 通過配置HPA進行擴縮容。

  • 需要主動配置規格進行調優。

  • 網關和組件全託管、免營運。

  • 自動彈性,免配置支援超大容量。

  • 處理能力隨業務峰值自動調整。

網關全託管,免營運。

安全

  • 支援HTTPS協議。

  • 支援黑白名單功能。

  • HTTPS(整合SSL)支援全鏈路HTTPS、SNI多認證、RSA、ECC雙證、TLS 1.3協議和TLS演算法套件選擇。

  • 支援WAF防護(對接阿里雲Web防火牆)。

  • 支援DDoS防護(對接阿里雲DDoS防護服務)。

  • 支援黑白名單功能。

  • 支援全鏈路HTTPS、SNI多認證(整合SSL),可配置TLS版本。

  • 支援路由級WAF防護(對接阿里雲Web防火牆)。

  • 支援路由級黑白名單功能。

費用成本

  • CLB執行個體:CLB計費概述

  • nginx-ingress-controller資源開銷,0.2 vCPU,200 MiB記憶體起。

    說明

    請以實際資源佔用及ECS節點費用為準,計費詳情請參見ECS計費概述

  • ALB執行個體:ALB計費概述

  • alb-ingress-controller為託管組件,不佔用資源開銷。

組件管理

請參見管理Nginx Ingress Controller組件

請參見管理ALB Ingress Controller組件

請參見管理MSE Ingress Controller組件

服務治理

  • 服務發現支援K8s。

  • 服務灰階支援金絲雀發布、藍綠髮布。

  • 服務高可用支援限流。

  • 服務發現支援K8s。

  • 服務灰階支援金絲雀發布、藍綠髮布。

  • 服務高可用支援限流。

  • 服務發現支援K8s、Nacos、ZooKeeper、EDAS、SAE、DNS、固定IP。

  • 支援2個以上版本的金絲雀發布、標籤路由,與MSE服務治理結合可實現全鏈路灰階發布。

  • 內建整合MSE服務治理中的Sentinel,支援限流、熔斷、降級。

  • 服務測試支援服務Mock。

擴充性

使用Lua指令碼。

使用AScript自研指令碼。更多資訊,請參見可程式化指令碼AScript概述

  • 使用Wasm外掛程式,實現多語言編寫。

  • 使用Lua指令碼。

雲原生整合

自行營運組件,與阿里雲ACK或ACK Serverless等Container Service結合使用。更多資訊,請參見Ingress概述

  • 與多種雲產品結合,如Web Application Firewall(WAF)、Function Compute(FC)、私網串連(PrivateLink)和雲企業網轉寄路由器(TR)等。

  • 託管組件,與阿里雲ACK或ACK Serverless等Container Service結合使用。

使用者側組件,與阿里雲ACK或ACK Serverless等Container Service結合使用,且支援Nginx Ingress核心 Annotation無縫轉換,關於MSE Ingress支援的Annotation,請參見MSE Ingress支援的Annotation

相關文檔