ALB Ingress功能操作指導
ALB Ingress除了支援在Container ServiceACK/ACK Serverless等Kubernetes產品中使用,還支援與Enterprise Distributed Application Service(Enterprise Distributed Application Service)、Serverless應用引擎SAE(Serverless App Engine)、雲上自建Kubernetes叢集等相結合使用,以滿足您多樣化的業務需求。本文為您介紹ALB Ingress的基礎功能、進階功能以及與其他產品整合使用的操作指導。
基礎功能
AlbConfig是由ALB Ingress Controller提供的CRD資源,用於配置ALB執行個體和監聽。下表為您介紹如何在容器ACK系列產品中安裝和卸載ALB Ingress Controller、如何建立與修改AlbConfig以及開啟Log Service等操作。
|
對象 |
功能 |
描述 |
Container ServiceACK文檔連結 |
Container ServiceACK Serverless文檔連結 |
|
ALB Ingress Controller |
ALB Ingress Controller組件管理 |
Container Service基於ALB提供了託管的ALB Ingress Controller。 您可以在建立叢集或組件管理頁面安裝ALB Ingress Controller。 |
||
|
執行個體管理 |
建立AlbConfig |
AlbConfig是在ALB Ingress Controller提供的CRD資源,使用AlbConfig CRD來配置ALB執行個體和監聽。 一個AlbConfig對應一個ALB執行個體,如果您需要使用多個ALB執行個體,可以通過建立多個AlbConfig實現。 |
||
|
關聯Ingress |
AlbConfig通過K8s中標準的IngressClass資源與Ingress進行關聯。您需要先建立IngressClass,然後關聯AlbConfig。 |
|||
|
修改AlbConfig |
您可以修改AlbConfig的屬性,比如名稱、vSwitch配置等。 配置完成儲存後,新配置自動生效。 |
|||
|
開啟Log Service訪問日誌 |
當您需要ALB Ingress能夠收集訪問日誌Access Log,您需要在AlbConfig中指定 說明
|
|||
|
複用已有ALB執行個體 |
當您需要複用已有ALB執行個體,您只需要在建立AlbConfig時指定ALB執行個體ID即可。 |
|||
|
使用多個ALB執行個體 |
當您需要使用多個ALB執行個體時,您可以在Ingress中通過 |
|||
|
刪除ALB執行個體 |
一個ALB執行個體對應一個AlbConfig, 刪除AlbConfig即可刪除ALB執行個體,但需先刪除AlbConfig關聯的所有Ingress。 |
|||
|
監聽管理 |
指定HTTPS認證 |
通過ALBConfig可以指定ALB認證,您可以通過配置ALBConfig的 |
||
|
支援TLS安全性原則 |
當前ALBConfig配置HTTPS監聽時,支援指定TLS安全性原則。TLS安全性原則包含自訂策略和系統預設策略,更多資訊,請參見TLS安全性原則。 |
進階功能
在Container ServiceACK叢集中,ALB Ingress對叢集服務(Service)中外部可訪問的API對象進行管理,提供七層負載平衡能力。下表為您介紹如何通過ALB Ingress將來自不同網域名稱或URL路徑的請求轉寄給不同的後端伺服器組、將HTTP訪問重新導向至HTTPS、灰階發布等功能。
|
功能 |
描述 |
Container ServiceACK文檔連結 |
Container ServiceACK Serverless文檔連結 |
|
基於網域名稱轉寄請求 |
建立一個簡單的Ingress,根據指定的正常網域名稱或空網域名稱轉寄請求。 |
||
|
基於URL路徑轉寄請求 |
ALB Ingress支援按照URL轉寄請求,可以通過匹配規則( |
||
|
自訂轉寄規則 |
ALB Ingress支援自訂轉寄規則。轉寄規則包含轉寄條件和轉寄動作。通過ALB Ingress您可以:
重要
|
||
|
配置健全狀態檢查 |
ALB Ingress支援通過設定註解配置健全狀態檢查,確保服務可用性。 |
||
|
配置自動探索HTTPS認證功能 |
ALB Ingress Controller提供認證自動探索功能。您需要首先在數位憑證管理服務控制台建立認證,然後ALB Ingress Controller會根據Ingress中TLS配置的網域名稱自動匹配發現認證。 |
||
|
配置HTTP重新導向至HTTPS |
ALB Ingress通過配置以下註解,實現將 HTTP 要求重新導向至 HTTPS 443 連接埠。 |
||
|
支援HTTPS和gRPC協議 |
當前ALB後端協議支援HTTPS和gRPC協議,通過ALB Ingress只需要在註解中配置 說明
後端協議不支援修改,如果您需要變更協議,請刪除重建Ingress。 |
||
|
支援Rewrite重寫 |
當前ALB Ingress支援Rewrite重寫,通過ALB Ingress只需要在註解中配置 說明
|
||
|
配置自訂監聽連接埠 |
ALB Ingress支援配置自訂監聽連接埠。通過該方式,可以將服務同時暴露80連接埠和443連接埠。 |
||
|
配置轉寄規則優先順序 |
ALB Ingress通過配置註解可以定義轉寄規則的優先順序。 說明
同一個監聽內規則優先順序必須唯一。 |
||
|
通過註解實現灰階發布 |
ALB Ingress提供複雜路由處理能力,支援基於Header、Cookie以及權重的灰階發布功能。灰階發布功能可以通過設定註解來實現。為了啟用灰階發布功能,需要設定註解 |
||
|
通過註解實現會話保持 |
ALB Ingress支援通過 |
||
|
指定伺服器組負載平衡演算法 |
ALB Ingress支援通過設定Ingress註解 |
||
|
跨網域設定 |
ALB Ingress支援通過設定註解項配置跨域。 |
||
|
後端長連結 |
ALB支援開啟後端長連結,能夠減少處理串連層面的資源消耗,從而提高處理效能。當前在ALB Ingress中可以通過註解 |
||
|
支援QPS限速 |
ALB本身支援轉寄規則的QPS限速功能,QPS限速值取值範圍為1~100000。當前在ALB Ingress只需要設定 |
||
|
後端慢啟動 |
ALB Ingress支援通過 說明
時間越長,流量增加的速度越慢。 |
||
|
串連優雅中斷 |
ALB Ingress支援通過 |
||
|
支援K8s與ECS混合掛載 |
ALB Ingress支援使用 |
||
|
支援通過雲企業網轉寄路由器等產品的組合配置來掛載跨地區和線下IDC資源 |
通過ALB和雲企業網CEN(Cloud Enterprise Network)、轉寄路由器等產品的組合配置,可以使ALB將請求轉寄至其他地區VPC內的伺服器或者本地IDC伺服器。 |
Ingress註解中的JSON值必須使用英文半形標點符號,中英文標點混用會導致調諧報錯
invalid character,請確保在英文IME下編輯。
ALB Ingress生態整合
雲產品整合
|
雲產品 |
功能 |
描述 |
文檔連結 |
|
WAF |
為ALB Ingress開啟WAF防護 |
Web Application FirewallWAF可以為網站或App提供安全防護,防止資料泄密和惡意CC攻擊,阻止木馬上傳和網頁篡改,提供虛擬補丁。當ALB Ingress開啟WAF防護後,ALB執行個體監聽的連接埠流量將受到Web應用安全防護。 |
|
|
EDAS |
建立應用路由(ALB Ingress) |
EDAS支援ALB Ingress應用路由,ALB Ingress基於阿里雲應用型負載平衡 ALB(Application Load Balancer)提供更有效Ingress流量管理方式,同時相容Nginx Ingress,具備處理複雜業務路由和認證自動探索的能力。 |
|
|
SAE |
基於Ingress網關實現全鏈路灰階 |
您可以通過ALB Ingress網關,在不需要修改您的任何業務代碼的情況下,為您的SAE應用實現全鏈路流量控制。 |
|
|
ASM |
支援以Ingress方式與應用型負載平衡ALB整合。 |
阿里雲服務網格(Alibaba Cloud Service Mesh,簡稱ASM)支援以Ingress方式與應用型負載平衡 ALB(Application Load Balancer)整合,滿足ALB使用者使用ASM的訴求。 |
|
|
HPA |
支援以Ingress方式與應用型負載平衡ALB整合。 |
容器水平伸縮(Horizontal Pod Autoscaler,簡稱 HPA)是 Kubernetes 中實現 Pod 水平自動調整的功能。HPA支援以Ingress方式與應用型負載平衡 ALB(Application Load Balancer)整合,實現基於QPS資料的應用Auto Scaling。 |
|
|
Knative |
支援在安裝了Knative組件的ACK或ACK Serverless叢集中,通過ALB來訪問服務。 |
Knative是一款基於Kubernetes的Serverless架構。支援通過Knative的方式配置ALB服務發現,實現Header和Cookie灰階發布功能。 |
|
|
ACK One |
支援以Ingress的方式建立應用型負載平衡ALB多叢集網關 |
分布式雲容器平台ACK One(Distributed Cloud Container Platform for Kubernetes)是阿里雲面向混合雲、多叢集、分散式運算、容災等情境推出的企業級雲原生平台。ACK One ALB多叢集網關是ALB Ingress的多叢集模式,可以快速實現同城多活、異地多活容災、流量多叢集負載平衡、基於Header路由流量到指定叢集等功能。 |
開源產品整合
|
開源產品 |
功能 |
描述 |
文檔連結 |
|
雲上自建K8s |
支援在雲上自建的Kubernetes叢集中,通過Ingress方式使用ALB產品。 |
利用購置的ECS計算資源搭建的Kubernetes叢集,可以通過Ingress的方式編排ALB路由,實現叢集內服務的自動探索和負載平衡。 |