容器應用閘道是一種管理式應用層(第7層) 負載平衡 與入口服務,適用於 Kubernetes 工作負載。 它將 HTTP、HTTPS、gRPC 和 AI 推論流量路由到 Azure Kubernetes Service (AKS) 中的應用程式,而 Azure 則在叢集外運作底層資料平面。
你可以透過支援的 Ingress 和 Gateway API 資源,從 Kubernetes 設定容器應用閘道。 此配置模型允許平台團隊提供共享的 Azure 管理入口層,而應用團隊則使用 Kubernetes 原生資源描述其服務如何接收流量。
針對 AI 工作負載,Application Gateway for Containers 推論閘道支援需要模型感知路由與請求時端點選擇的自架模型伺服器。 欲了解更多資訊,請參閱 容器應用閘道 - 推論閘道。
容器應用閘道是一個獨立的應用閘道,從零開始為 Kubernetes 打造,擁有專用的控制平面與資料平面,這些平面是從 應用閘道入口控制器(AGIC)中學習而形成的。 ALB Controller 在叢集中執行,並將 Kubernetes 設定轉換為 Azure 中 Application Gateway for Containers 的設定。
產品摘要
從高層次來看,容器應用閘道提供:
- Kubernetes 原生配置:使用 Ingress 與 Gateway API 資源來定義請求如何抵達叢集中的服務。
- Azure 管理的入口資料平面:讓入口流量保持在 AKS 叢集外,而 Azure 則負責處理用戶端請求的資料平面。
- 共享入口平台:將平台擁有的入口基礎設施與應用程式擁有的路由配置分開。
- 漸進式採用:使用入口或閘道 API 資源,讓工作負載能隨時間遷移到 Application Gateway for Containers。
- AI 推論支援:透過 Gateway API 推論擴充套件,將推論流量路由至自架模型伺服器,具備模型感知路由與請求時端點選擇功能。
- 應用程式交付控制:使用第 7 層路由、流量分割、健康探針、重試、TLS、互助認證及 Web 應用程式防火牆(WAF)政策。
運作方式
Application Gateway for Containers 將 Kubernetes 配置與 Azure 流量處理分離。 ALB Controller 監控 Kubernetes 資源,如 Ingress、Gateway、HTTPRoute 和 ApplicationLoadBalancer,並將所需的配置套用到 Azure 容器的應用閘道。
容器應用閘道部署由四個組成部分組成:
- 適用於容器的應用程式閘道資源
- 前端
- 關聯
- 安全性原則
部署也參考以下相依關係:
- 子網路委派
- 使用者指派的受控識別
下圖摘要說明適用於容器的應用程式閘道架構:
如需適用於容器的應用程式閘道如何接受傳入要求並將其路由傳送至後端目標的詳細資訊,請參閱容器應用程式閘道元件。
支援的流量管理功能
適用於容器的應用程式閘道支援下列流量管理功能:
- AI 閘道功能
- Gateway API 推論擴充支援
- 以受控本文型路由器 (BBR) 進行模型感知路由
- 使用端點選擇器(EPP)進行負載感知路由,將流量導向負載最低的模型副本,以降低延遲
- 使用 Web 應用程式防火牆(WAF)進行安全推理
- AKS 受控附加元件
- 自動重試
- 自動調整
- 可用性區域復原
- 自訂和預設健康情況探查
- ECDSA 和 RSA 憑證支援
- 彈性負載平衡策略
- 最少要求
- 負載感知路由
- 環狀雜湊
- 循環配置資源
- 加權循環配置資源
- gRPC
- 標頭重寫
- HTTP/2
- HTTPS 流量管理:
- SSL 終止
- 端對端 SSL
- 輸入和閘道 API 支援
- 基於前置詞/完全符合的第 7 層 HTTP/HTTPS 要求轉接:
- 主機名稱
- Path
- 頁首
- 查詢字串
- 方法
- 連接埠 (80/443)
- 前端、後端或端對端的相互驗證 (mTLS)
- 請求鏡射
- 伺服器傳送的事件 (SSE) 支援
- TLS 原則
- URL 重新導向
- URL 重寫
- Web 應用程式防火牆 (WAF)
- WebSocket 支援
部署策略
管理適用於容器的應用程式閘道有兩種部署策略:
-
自備(BYO)部署:你可以透過 Azure 入口網站、Azure CLI、Azure PowerShell 或 Terraform 來管理容器應用閘道資源、關聯資源和前端資源的部署與生命週期。 你在 Kubernetes 的設定中參考這些資源。
- 在閘道 API:每次你在 Kubernetes 中建立新的閘道資源時,首先會在 Azure 中配置一個前端資源,並從該閘道資源中引用它。 Azure 管理員負責管理前端資源的刪除。 當 Kubernetes 的閘道資源被刪除時,前端資源並不會被刪除。
-
由 ALB 主管管理: 在 Kubernetes 中部署的 ALB 控制器負責容器應用閘道資源及其子資源的生命週期。 當叢集上定義了 ApplicationLoadBalancer 的自訂資源時,ALB 控制器會建立容器的應用閘道資源。 其生命週期是根據自訂資源的生命週期來決定的。
- 在閘道 API: 每當你建立一個參考 ApplicationLoadBalancer 資源的閘道資源時,ALB 控制器會根據閘道資源的生命週期來配置一個新的前端資源,並管理其生命週期。
支援區域
容器應用閘道目前可在以下地區提供:
- 澳大利亞中部 2
- 澳大利亞東部
- Australia Southeast
- 巴西南部
- 加拿大中部
- 加拿大東部
- 印度中部
- 美國中部
- 東亞
- 美國東部
- 美國東部 2
- 法國中部
- 德國中西部
- 義大利北部
- 日本西部
- 南韓中部
- 美國中北部
- 北歐
- 挪威東部
- 美國中南部
- 東南亞
- 瑞典中部
- 瑞士北部
- 阿拉伯聯合大公國北部
- 英國南部
- 美國西部
- 美國西部 2
- 美國西部 3
- 西歐
閘道 API 支援
ALB Controller 實作了閘道 APIv1.5 版本。
| 閘道 API 資源 | 支援 | 註解 |
|---|---|---|
| GatewayClass | 是 | |
| 閘道 | 是 | 支援接聽程式上的 HTTP 和 HTTPS 通訊協定。 接聽程式上允許的唯一連接埠是 80 和 443。 |
| HTTPRoute | 是 | |
| GRPCRoute | 是 | |
| ReferenceGrant | 是 | 目前支援此 API v1alpha1 版 |
| InferencePool | 是 | |
| 推論目標 | 是 | 目前實作此 API 版本為 v1alpha1 |
Ingress API 支援
ALB 控制器實作對輸入的支援。
| 輸入 API 資源 | 支援 | 註解 |
|---|---|---|
| 輸入 | 是 | 支援接聽程式上的 HTTP 和 HTTPS 通訊協定。 |
回報問題並提供意見反應
歡迎在 feedback.azure.com 發表新點子以獲得回饋。 遇到問題時,可以透過 Azure 入口網站在你的容器應用閘道資源中提出支援請求。
價格和 SLA
有關容器應用閘道的價格資訊,請參閱 應用閘道定價。
關於容器應用閘道的 SLA 資訊,請參閱線上服務的服務等級協議(SLA)。
新功能
若要瞭解適用於容器的應用程式閘道的新功能,請參閱 Azure 更新。