ELB Ingress閘道器助力雲原生應用輕鬆管理流量

华为云开发者联盟發表於2024-07-09

本文分享自華為雲社群《ELB Ingress閘道器助力雲原生應用輕鬆管理流量》,作者:雲容器大未來。

背景

通常情況下,K8s叢集的容器網路平面和外部網路是隔離的,外部網路無法直接訪問到叢集內部的容器業務,如何為容器提供並管理統一的外部流量入口?社群提供的常見方式是使用Nodeport Service,Loadbalancer Service,Ingress等K8s資源物件來暴露叢集內部的容器原生應用。Service物件提供了四層負載均衡能力,Ingress物件則提供了面向應用層訪問(HTTP/HTTPS等)的七層負載均衡能力。

而隨著雲原生架構在企業內的普遍落地,容器作為雲原生微服務應用的載體,需要面對更多挑戰,如面對微服務的複雜組網,業務請求在雲服務之間轉發往往需要做源地址轉換而導致流量分發損耗;遊戲類、電商搶購類等業務在短時間內會進行頻繁擴縮容,必須應對高併發的網路流量;閘道器入口流量應對網際網路的安全攻擊,如灰產、異常流量,需提供流量安全防護能力;此外,支援更加複雜的路由規則配置、多種應用層協議(HTTP、HTTPS、GRPC等)、應用藍綠髮布、流量可觀測性等七層高階轉發能力也逐漸成為了雲原生應用的普遍訴求。Ingress Nginx,Ingress Kong,Traefik等開源社群方案雖然提供了豐富的七層流量治理功能, 但對於關鍵生產業務上雲,企業在選擇Ingress方案時,除了考慮功能性,還需要充分權衡安全性、可維護性和可靠性等方面的需求,以找到最佳平衡點。專業的雲服務提供商提供託管的Ingress解決方案,能夠較好的應對這些挑戰。

華為雲CCE服務提供了基於應用型負載均衡ELB(Elastic Load Balance)的全託管免運維的企業級 Ingress 流量治理,讓使用者輕鬆應對雲原生應用流量管理。

ELB Ingress 介紹

在K8s叢集中,容器網路平面通常是獨立於叢集主機網路的一個隔離的網路平面,工作負載在滾動升級或者重新排程後容器的地址會有變化,這就帶來一個問題:如何實現某組Pod的服務發現,並提供固定的外部訪問入口?Service和Ingress物件就是K8s中實現叢集內外應用統一訪問入口的一種機制。

K8s社群對叢集外部的流量暴露提供了三種方式:Nodeport Service、Loadbalancer Service、Ingress,前兩者Service物件主要提供叢集四層流量入口,Ingres物件提供七層流量治理能力。兩者相互配合,共同實現K8s叢集應用的對外訪問機制。如下圖一所示,客戶端透過Ingress管理的負載均衡器,訪問Ingress申明的路由,由負載均衡器將流量經過後端Service匯入至後端容器。

1.png

圖一:Ingress示例

ELB Ingress是華為雲CCE服務提供的七層流量治理功能,基於社群標準Ingress API實現,提供高可用、高效能、高安全、多協議的全託管免運維負載均衡能力。同時具備彈效能力,在流量突發時支援快速擴充套件計算資源,支援千萬級併發連線,百萬級新建連線,是雲原生應用流量治理的理想選擇。

ELB Ingress工作原理

ELB Ingress部署於CCE叢集的master節點上,與ELB例項對接,可將Ingress申明的容器後端地址、轉發策略、路由等資訊配置至ELB例項,並且支援動態更新。

圖二是基於Nodeport中轉的ELB Ingress工作流圖,CCE Standard叢集使用該方案的原理如下:

  • 使用者為叢集建立Ingress資源,在Ingress中配置流量訪問規則,如負載均衡器例項、URL路由、SSL證書等監聽資訊,以及訪問的後端Service等,控制器透過標籤選擇器選中工作負載,將工作負載所在節點和Nodeport埠掛載至負載均衡器例項的後端;

  • Ingress Controller監聽到Ingress資源發生變化時,會根據其中定義的流量訪問規則,在ELB側重新配置監聽器以及後端伺服器路由;

  • 使用者透過ELB訪問應用程式,流量根據ELB中配置的轉發策略轉發到對應的Node節點,再經過Nodeport二次轉發訪問到關聯的工作負載(Nodeport轉發機制參見k8s官方文件說明)

2.png

圖二: Nodeport中轉的ELB Ingress流程圖

該方案中流量經過節點、IPTables/IPVS規則多次轉發,網路效能存在損耗。在大流量場景下,網路轉發效率、網路連通速度的挑戰尤為突出。為此,我們推出了基於CCE Turbo叢集的網路加速方案:容器直接使用VPC網路實現直通容器的ELB Ingress,將原有的“容器網路 + 虛擬機器網路“兩層模型簡化為一層。如圖三所示,叢集中的Pod IP直接從VPC中分配,支援北向ELB直通容器,外部流量可以不經過節點埠轉發直接訪問叢集中的Pod,達到流量分發零損耗的效果。

3.png

圖三:容器網路直通的ELB Ingress流程圖

ELB Ingress流量治理核心優勢

ELB Ingress基於原生Kubernetes Ingress,透過宣告式API指定Ingress的路由、對接的後端服務,或者透過Annotation配置監聽側的高階選項,由系統保證最終一致性。ELB Ingress為開發者和運維人員提供了極大的開發靈活性和維護便利性,其核心優勢包括:

  • 高吞吐、高可用、高彈性

ELB Ingress搭配獨享型ELB例項,最高支援2千萬併發連線;透過完善的健康檢查機制,保障業務實時線上,支援多可用區的同城雙活容災,無縫實時切換;彈性規格ELB例項支援根據流量負載自動彈性擴縮例項規格,適用於業務用量波動較大的場景,例如遊戲、影片等行業,能滿足瞬時流量同時成本最小化。

  • 高安全性

ELB Ingress提供了端到端的全鏈路安全策略,如下圖四是外部流量經過ELB訪問CCE Turbo叢集的簡單示例:在訪問端可配置接入WAF引擎檢測並攔截惡意攻擊流量,而正常流量轉發至後端雲伺服器。透過Ingress的Annotation配置可輕鬆為ELB例項配置自定義安全策略,例如設定黑白名單,雙向認證等。從ELB轉發至後端也支援HTTPS加密通道,進一步增強整體安全性。

4.png

圖四: 外部流量訪問CCE Turbo安全示例

  • 可移植性

完全相容社群Ingress語義,從開源Nginx Ingress等方案遷移過來僅需改造annotation即可輕鬆適配。

  • 可觀測性

雲監控可以按時間軸檢視ELB的網路流量和訪問日誌,動態分析並告警潛在風險;雲審計可以實時監控ELB資源更新日誌,針對風險動作實時告警,動態監控雲上資源安全;Ingress Controller也支援豐富的普羅監控指標,如介面呼叫時延,reload次數等。

  • 免維護性

ELB Ingress元件執行在叢集的Master節點,使用者無需關注運維問題,元件在叢集升級時會自動更新,且對業務無感。

ELB Ingress流量治理核心功能

在社群基礎功能之上,華為雲ELB Ingress在負載均衡、路由規則、流量控制、安全性和可觀測性等方面都有較大增強,滿足了更復雜的生產環境需求。下面介紹ELB Ingress流量治理核心功能:

  • 灰度釋出

灰度釋出是業界常用的版本升級平滑過渡的一種方式。在版本升級時,先讓部分使用者使用新版本,其他使用者繼續使用老版本。待新版本穩定後,再逐步擴大新版本的使用範圍,直到所有使用者流量都遷移到新版本上。這樣可以最大限度地控制新版本釋出帶來的業務風險,降低故障影響範圍,同時支援快速回滾。

我們提供了基於Header/Cookie/Weight的灰度釋出策略,前兩種策略透過將使用者分成若干組,在不同的時間段內逐步引入新版本,最終擴大新版本的影響範圍;基於Weight的策略則是透過控制新版本的權重,在不同時間段內逐步增加新版本的流量比例,直到完全替代舊版本。

ELB Ingress閘道器助力雲原生應用輕鬆管理流量

  • 高階轉發策略

隨著雲原生應用組網的日益複雜,傳統的基於路由轉發的七層流量治理已經難以滿足需求。我們提供的高階轉發策略可以很好地解決傳統方案面臨的侷限性:

  • 基於請求頭的負載均衡:根據客戶端請求頭的不同值,將請求分配到不同的後端伺服器。

  • HTTP重定向到HTTPS:系統自動將HTTP監聽器流量轉發至HTTPS監聽,提升網站安全性,防止內容篡改等。

  • URL重定向和重寫:支援將URL永久或臨時對映到另一個URL。同時,支援正規表示式匹配和實現不同路徑的重寫規則。

  • 慢啟動

在應用滾動升級時,ELB Ingress會自動更新負載均衡器後端,並且根據後端容器例項副本數自動設定後端權重。但是,在後端健康檢查透過後的上線過程中,可能面臨流量突增,導致後端容器的CPU或記憶體資源瞬間高負荷,從而影響業務穩定性。在開啟慢啟動模式後,系統可以在指定時間內,逐步將流量匯入到目標容器後端。這樣可以緩解業務容器突增的流量壓力,保護系統免受過度負載的影響,實現優雅過渡。

小結

華為雲CCE服務的ELB Ingress基於華為雲應用型負載均衡ELB(Elastic Load Balance)提供強大的Ingress流量管理能力,相容Nginx Ingress,具備處理複雜業務路由和證書自動發現的能力,支援HTTP、HTTPS和GRPC等協議,滿足在雲原生應用場景下對超強彈性和大規模七層流量處理能力的需求。

後續我們還將釋出系列文章,詳細介紹基於ELB Ingress的流量管理最佳實踐,歡迎各位讀者繼續關注。

相關連結:

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章