ALB Ingress除了支持在容器服務ACK/ACK Serverless等Kubernetes產品中使用,還支持與企業級分布式應用服務EDAS(Enterprise Distributed Application Service)、Serverless應用引擎SAE(Serverless App Engine)、云上自建Kubernetes集群等相結合使用,以滿足您多樣化的業務需求。本文為您介紹ALB Ingress的基礎功能、高級功能以及與其他產品集成使用的操作指導。
基礎功能
AlbConfig是由ALB Ingress Controller提供的CRD資源,ALB Ingress Controller使用AlbConfig來配置ALB實例和監聽。下表為您介紹如何在容器ACK系列產品中安裝和卸載ALB Ingress Controller、如何創建與修改AlbConfig以及開啟日志服務等操作。
對象 | 功能 | 描述 | 容器服務ACK文檔鏈接 | 容器服務ACK Serverless文檔鏈接 |
ALB Ingress Controller | ALB Ingress Controller組件管理 | 容器服務基于ALB提供了托管的ALB Ingress Controller。 您可以通過在創建集群時安裝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配置等。 配置完成保存后,新配置自動生效。 | |||
開啟日志服務訪問日志 | 當您需要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安全策略。 |
高級功能
在容器服務ACK集群中,ALB Ingress對集群服務(Service)中外部可訪問的API對象進行管理,提供七層負載均衡能力。下表為您介紹如何通過ALB Ingress將來自不同域名或URL路徑的請求轉發給不同的后端服務器組、將HTTP訪問重定向至HTTPS、灰度發布等功能。
功能 | 描述 | 容器服務ACK文檔鏈接 | 容器服務ACK Serverless文檔鏈接 |
基于域名轉發請求 | 創建一個簡單的Ingress,根據指定的正常域名或空域名轉發請求。 | ||
基于URL路徑轉發請求 | ALB Ingress支持按照URL轉發請求,可以通過 | ||
自定義轉發規則 | ALB Ingress支持自定義轉發規則。轉發規則包含轉發條件和轉發動作。通過ALB Ingress您可以
重要
| ||
配置健康檢查 | ALB Ingress支持通過設置注解來配置健康檢查,配置項包括path/protocol/method/httpcode/timeout/interval/threshold等。 | ||
配置自動發現HTTPS證書功能 | ALB Ingress Controller提供證書自動發現功能。您需要首先在數字證書管理服務控制臺創建證書,然后ALB Ingress Controller會根據Ingress中TLS配置的域名自動匹配發現證書。 | ||
配置HTTP重定向至HTTPS | ALB Ingress通過設置注解 | ||
支持HTTPS和gRPC協議 | 當前ALB Ingress后端協議支持HTTPS和gRPC協議,通過ALB Ingress只需要在注解中配置 說明 后端協議不支持修改,如果您需要變更協議,請刪除重建Ingress。 | ||
支持Rewrite重寫 | 當前ALB Ingress支持Rewrite重寫,通過ALB Ingress只需要在注解中配置 說明
| ||
配置自定義監聽端口 | 支持Ingress配置自定義監聽端口。通過該方式,可以將服務同時暴露80端口和443端口。 | ||
配置轉發規則優先級 | 通過配置Ingress注解可以定義ALB Ingress轉發規則優先級。 說明 同一個監聽內規則優先級必須唯一。 | ||
通過注解實現灰度發布 | ALB Ingress提供復雜路由處理能力,支持基于Header、Cookie以及權重的灰度發布功能。灰度發布功能可以通過設置注解來實現。 為了啟用灰度發布功能,需要設置注解 | ||
通過注解實現會話保持 | ALB Ingress支持通過 | ||
指定服務器組負載均衡算法 | ALB Ingress支持通過設置Ingress注解 | ||
跨域配置 | ALB Ingress支持通過設置注解項配置跨域。 | ||
后端長鏈接 | 當使用短鏈接的方式訪問后端服務器組時,每一條請求都需要經歷TCP層面的建立連接和斷開連接,使網絡連接成為高性能系統的瓶頸。ALB支持開啟后端長鏈接,能夠極大的減少處理連接層面的資源消耗,從而大幅度提高處理性能。當前在ALB Ingress中可以通過注解 | ||
支持QPS限速 | ALB本身支持轉發規則的QPS限速功能,QPS限速值取值范圍為1~100000。當前在ALB Ingress只需要設置 | ||
后端慢啟動 | ALB Ingress支持通過 說明 時間越長,流量增加的速度越慢。 | ||
連接優雅中斷 | ALB Ingress支持通過 | ||
|
|
ALB Ingress生態集成
云產品集成
云產品 | 功能 | 描述 | 文檔鏈接 |
WAF | 為ALB Ingress開啟WAF防護 | Web應用防火墻WAF(Web Application Firewall)可以為網站或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數據的應用彈性伸縮。 | |
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路由,實現集群內服務的自動發現和負載均衡。 |