Nginx Ingress、ALB Ingress和MSE Ingress對比
ACK托管集群和ACK Serverless集群均支持使用Nginx Ingress、ALB Ingress和MSE Ingress對外暴露容器服務(wù)和管理路由。Nginx Ingress需要自行維護(hù),ALB Ingress和MSE Ingress使用的網(wǎng)關(guān)為全托管模式。本文比較了Nginx Ingress、ALB Ingress和MSE Ingress在典型應(yīng)用場景、工作流程和功能等方面的差異,幫助您選擇合適的Ingress類型。
背景信息
Nginx Ingress:基于開源社區(qū)Ingress NGINX Controller提供七層流量處理能力與豐富的高級路由功能,與上游社區(qū)完全兼容,支持?jǐn)U展能力。該組件由您自主運維,無SLA保障,支持豐富定制化能力。
ALB Ingress:阿里云自研云原生Ingress網(wǎng)關(guān),兼容Nginx Ingress,采用全托管一體化設(shè)計,支持SSL硬件加速,具備自動彈性、低時延、處理復(fù)雜業(yè)務(wù)路由的能力。單個ALB實例支持100萬QPS,提供更強大的Ingress流量管理功能。關(guān)于ALB Ingress云原生網(wǎng)關(guān)的詳細(xì)介紹,請參見ALB Ingress概述。
MSE Ingress:阿里云開源Higress企業(yè)版,兼容Nginx Ingress,適用于微服務(wù)場景,支持多種服務(wù)發(fā)現(xiàn)、認(rèn)證鑒權(quán)以及多語言插件擴展,提供灰度發(fā)布、預(yù)熱和限流等核心能力。單個MSE云原生網(wǎng)關(guān)實例支持100萬QPS,提供更為強大的Ingress流量管理功能。關(guān)于MSE云原生網(wǎng)關(guān)的詳細(xì)介紹,請參見云原生網(wǎng)關(guān)概述。
典型應(yīng)用場景
類型 | 典型應(yīng)用場景 |
Nginx Ingress |
|
ALB Ingress |
|
MSE Ingress |
|
工作示意圖
通過從請求域名www.example.net/app
到轉(zhuǎn)發(fā)并訪問具體容器服務(wù)的工作示意圖,對比Nginx Ingress、ALB Ingress和MSE Ingress之間工作方式的差異。
Nginx Ingress
Nginx Ingress Controller是一個集控制面和數(shù)據(jù)面于一體的實現(xiàn)方案。每個Nginx Ingress Controller Pod中有一個Controller進(jìn)程(控制面),同時也包含Nginx相關(guān)進(jìn)程(數(shù)據(jù)面),因此配置流量和用戶請求流量都會由Nginx Ingress Controller Pod處理。
ALB Ingress
ALB Ingress Controller通過API Server動態(tài)地獲取Ingress資源和AlbConfig資源的變化,然后更新ALB實例。與Nginx Ingress Controller不同,ALB Ingress Controller是托管組件,作為ALB實例的控制面,不直接處理用戶請求流量,用戶流量的轉(zhuǎn)發(fā)由ALB實例來實現(xiàn)。
MSE Ingress
MSE Ingress Controller負(fù)責(zé)監(jiān)聽集群中的MseIngressConfig資源,協(xié)調(diào)MSE云原生網(wǎng)關(guān)實例用于實施Ingress資源描述的流量管理規(guī)則。與Nginx Ingress Controller不同,MSE Ingress Controller是管理MSE云原生網(wǎng)關(guān)實例以及配置的控制面,MSE Ingress Controller Pod不直接處理用戶請求流量,用戶流量的路由和轉(zhuǎn)發(fā)由MSE云原生網(wǎng)關(guān)實例來實現(xiàn)。
功能對比
比較項 | Nginx Ingress | ALB Ingress | MSE Ingress |
產(chǎn)品定位 |
|
|
|
產(chǎn)品架構(gòu) | 基于Nginx+Lua插件擴展。 |
|
|
基礎(chǔ)路由 |
|
|
|
支持協(xié)議 |
|
|
|
配置變更 |
|
|
|
認(rèn)證鑒權(quán) |
| 支持TLS身份認(rèn)證。 |
|
性能 |
|
|
|
可觀測能力 |
|
|
|
運維能力 |
|
| 網(wǎng)關(guān)全托管,免運維。 |
安全 |
|
|
|
費用成本 |
|
| |
組件管理 | |||
服務(wù)治理 |
|
|
|
擴展性 | 使用Lua腳本。 | 使用AScript自研腳本。更多信息,請參見可編程腳本AScript概述。 |
|
云原生集成 | 自行運維組件,與阿里云ACK或ACK Serverless等容器服務(wù)結(jié)合使用。更多信息,請參見Ingress概述。 |
| 用戶側(cè)組件,與阿里云ACK或ACK Serverless等容器服務(wù)結(jié)合使用,且支持Nginx Ingress核心 Annotation無縫轉(zhuǎn)換,關(guān)于MSE Ingress支持的Annotation,請參見MSE Ingress支持的Annotation。 |
相關(guān)文檔
關(guān)于如何從Nginx Ingress遷移到其他類型Ingress或ASM網(wǎng)關(guān)的詳細(xì)內(nèi)容,請參見: