全部產品
Search
文件中心

:ALB Ingress概述

更新時間:Jul 26, 2024

ALB Ingress基於阿里雲應用型負載平衡ALB(Application Load Balancer)服務,為叢集中的Service提供統一的入口。與Nginx Ingress相比,ALB Ingress的特點是全託管服務,您無需進行維護操作。它能自動檢測Kubernetes叢集中Ingress資源的變化,並根據預設規則將流量分配至後端服務。此外,ALB Ingress設計有較強的Auto Scaling機制,能夠自動適應流量的動態變化,確保系統穩定運行。

閱讀前提示

為了讓您能更好地瞭解ALB Ingress的各種功能,建議您在使用ALB Ingress前閱讀本文檔。

閱讀本文前,推薦您閱讀Kubernetes官方Ingress文檔瞭解Ingress及Ingress Class的基本概念。

ALB Ingress工作原理

ALB Ingress涉及到以下基本概念:

  • ALB Ingress Controller:負責管理Ingress資源的組件。它通過API Server動態地擷取Ingress資源和AlbConfig資源的變化,然後更新ALB執行個體。與Nginx Ingress Controller不同,ALB Ingress Controller 是 ALB 執行個體的控制面,負責管理 ALB 執行個體,但不直接處理使用者流量。使用者流量的轉寄由 ALB 執行個體來實現。ALB Ingress Controller會通過叢集API Server動態地擷取Ingress資源的變化,並依照Ingress所描述的轉寄規則動態地更新ALB執行個體。

  • AlbConfig(CRD):AlbConfig是由ALB Ingress Controller建立的一種CRD (Custom Resource Definition) 。AlbConfig中的參數決定了ALB執行個體的配置。一個AlbConfig對應一個ALB執行個體。ALB執行個體是使用者請求流量的入口,負責將使用者請求轉寄到後端Service中。它由應用型負載平衡ALB完全託管。相比起Nginx Ingress Controller,ALB Ingress免於營運,並且擁有更強大的彈性。

  • IngressClass:IngressClass定義了某一個Ingress與某一個AlbConfig的關聯。

  • Ingress:Ingress是Kubernetes中用於定義外部流量路由規則和訪問規則的資來源物件,ALB Ingress Controller通過監測Ingress資源的變化並更新ALB執行個體以實現流量轉寄。

  • Service:在Kubernetes中,Pod被認為是臨時資源,是不穩定而多變的。Service為具有相同功能的Pod提供了一個穩定、統一的入口。其他應用程式或服務可以通過訪問Service的虛擬IP和連接埠來與後端Pod進行通訊,而無需關注Pod可能發生的變化。關於Service的詳細介紹,請參見Service快速入門

您可參照下圖,理解ALB執行個體與ALB Ingress之間的邏輯關係:

ALB Ingress使用流程

ALB Ingress與雲原生服務做了深度整合,在具備豐富功能的同時也保證了易用性。使用ALB Ingress的操作流程如下:

您可以參見建立ALB Ingress,完成以上流程。

ALB Ingress的優勢

ALB Ingress為全託管模式,提供更強大的Ingress流量管理能力。Nginx Ingress一般用於使用者對網關定製有強烈需求的情境,需要您自我維護。Nginx Ingress和ALB Ingress在產品定位、架構、效能、安全等方面均存在差異。關於Nginx Ingress和ALB Ingress的差異對比,請參見Nginx Ingress和ALB Ingress對比

基於ALB Ingress和Nginx Ingress的差異,使用者在實際使用過程中,這幾種業務情境下ALB Ingress相比Nginx Ingress具有明顯的優勢。

  • 使用長串連的情境

    長串連適用於互動頻繁的業務情境,如物聯網IoT、互連網金融和線上遊戲等。當使用者進行配置變更時,Nginx Ingress由於需要Reload Nginx進程,會導致長串連閃斷,ALB Ingress配置變更支援熱更新,保持長串連穩定,有效避免此問題。

  • 高並發串連情境

    物聯網業務由於終端裝置數量大,往往具有高並發串連的特點。ALB Ingress依託洛神雲網路平台,能高效管理會話(session),單個ALB執行個體即支援千萬級串連數。Nginx Ingress支援的會話數有限,同時需要使用者自行營運。Nginx Ingress擴容時需要消耗叢集內的資源,並且還需要使用者手動操作,擴容成本較高。

  • 高QPS情境

    互連網業務往往具有高QPS的特點,比如預期內的大促活動和突發的熱時間點事件。ALB Ingress支援自動彈性,高QPS時會自動彈出更多VIP,通過一個ALB執行個體即可支援百萬QPS,因此ALB Ingress擁有比Nginx Ingress更低的延遲。同時Nginx Ingress依賴叢集內的資源,在高QPS情境中更可能會遭遇效能瓶頸。

  • 業務存在流量峰穀的情境

    對於有波峰波穀的業務,比如電商和遊戲,ALB Ingress擁有費用優勢。ALB Ingress隨用隨付,流量波穀期間消耗較少的LCU,產生的費用更低,且因為自動彈性,使用者無需關注和應對自身業務流量模型。而使用Nginx Ingress時則需要預留一部分叢集資源,在波穀時會產生閑置成本,並且還需要手動設定與預留資源。

ALB Ingress地區與可用性區域

ALB Ingress支援的地區與可用性區域,請參見ALB支援的地區與可用性區域

ALB Ingress配額限制

ALB Ingress的配額限制,請參見ALB配額計算方式

ALB Ingress Controller變更記錄

ALB Ingress的功能變更記錄,請參見ALB Ingress Controller