什麼是適用於容器的應用程式閘道?

容器的應用程式閘道是新的應用程式 (第 7 層) 負載平衡和動態流量管理產品,適用於在 Kubernetes 叢集中執行的工作負載。 它會延伸 Azure 的應用程式負載平衡組合,並且是應用程式閘道產品系列下的新供應項目。

適用於容器的應用程式閘道是應用程式閘道輸入控制器 (AGIC) 的演進,Kubernetes 應用程式,可讓 Azure Kubernetes Service (AKS) 客戶使用 Azure 的原生應用程式閘道應用程式負載平衡器。 AGIC 會以目前的形式監視 Kubernetes 資源的子集,以取得變更,並將它們套用至應用程式閘道,並利用 Azure Resource Manager(ARM)。

如何運作?

容器的應用程式閘道由三個元件組成:

  • 容器的應用程式閘道
  • 前端
  • 關聯

在容器部署的應用程式閘道中也會參考下列相依性:

  • 私人 IP 位址
  • 子網路委派
  • 使用者指派的受控識別

下圖摘要說明適用於容器的應用程式閘道架構:

圖表描述從因特網輸入到容器的 應用程式閘道 流量,並傳送至 AKS 中的後端 Pod。

如需適用於容器的應用程式閘道如何接受傳入要求並將其路由傳送至後端目標的詳細資訊,請參閱容器應用程式閘道元件

功能與優點

適用於容器的應用程式閘道在發行時提供一些全新的功能,例如:

  • 流量分割/加權循環配置資源
  • 對後端目標的相互驗證
  • 輸入和閘道 API 的 Kubernetes 支援
  • 彈性部署策略
  • 提升效能,提供近即時的更新,以新增或移動 Pod、路由及探查

適用於容器的應用程式閘道提供彈性且可調整的 AKS 叢集輸入,並包含新的資料平面,以及具有新 ARM API 集的控制平面,與現有的應用程式閘道不同。 這些 API 與應用程式閘道目前的實作不同。 容器的應用程式閘道位於 AKS 叢集資料平面之外,並負責輸入。 此服務是由 AKS 叢集內執行的 ALB 控制器元件所管理,並遵守 Kubernetes 閘道 API。

負載平衡功能

適用於容器的應用程式閘道支援下列流量管理功能:

  • 自動重試
  • 自動調整規模
  • 可用性區域復原
  • 預設和自訂健康情況探查
  • 標頭重寫
  • HTTP/2
  • HTTPS 流量管理:
    • SSL 終止
    • 端對端 SSL
  • 輸入和閘道 API 支援
  • 基於前置詞/完全相符的第 7 層 HTTP/HTTPS 要求轉接:
    • 主機名稱
    • 路徑
    • 頁首
    • 查詢字串
    • 方法
    • 連接埠 (80/443)
  • 相互驗證 (mTLS) 至後端目標
  • 流量分割/加權迴圈配置資源
  • TLS 原則
  • URL 重新導向
  • URL 重寫

部署策略

管理適用於容器的應用程式閘道有兩種部署策略:

  • 攜帶您自己的 (BYO) 部署:在此部署策略中,容器資源、關聯和前端資源的 應用程式閘道 部署和生命週期是透過 Kubernetes 內的組態 Azure 入口網站、CLI、PowerShell、Terraform 等來假設。
    • 在閘道 API 中:每次您想要在 Kubernetes 中建立新的閘道資源時,都應該在 Azure 中佈建前端資源,並由閘道資源參考。 前端資源的刪除由 Azure 系統管理員負責,並且在 刪除 Kubernetes 中的閘道資源時不會被刪除。
  • 由 ALB 控制器管理:在此部署策略中,部署在 Kubernetes 中的 ALB 控制器負責容器資源及其子資源的應用程式閘道生命週期。 ALB 控制器會在叢集上定義 ApplicationLoadBalancer 自訂資源時,建立容器資源的應用程式閘道,而其生命週期是以自訂資源的生命週期為基礎。
    • 在閘道 API 中:每次建立參考 ApplicationLoadBalancer 資源的閘道資源時,ALB 控制器會佈建新的前端資源,並依據閘道資源的生命週期來管理其生命週期。

支援的區域

容器的應用程式閘道目前在下列區域中提供:

  • 澳大利亞東部
  • 加拿大中部
  • 印度中部
  • 美國中部
  • 東亞
  • 美國東部
  • 美國東部 2
  • 法國中部
  • 德國中西部
  • 南韓中部
  • 美國中北部
  • 北歐
  • 挪威東部
  • 美國中南部
  • 東南亞
  • 瑞士北部
  • 阿拉伯聯合大公國北部
  • 英國南部
  • 美國西部
  • 西歐

閘道 API 的實作

ALB 控制器會實作閘道 API 第 v1

閘道 API 資源 支援 註解
GatewayClass Yes
閘道 Yes 支援接聽程式上的 HTTP 和 HTTPS 通訊協定。 接聽程式上允許的唯一連接埠是 80 和 443。
HTTPRoute Yes
ReferenceGrant Yes 目前支援此 API v1alpha1 版

輸入 API 的實作

ALB 控制器會實作輸入的支援。

輸入 API 資源 支援 註解
輸入 Yes 支援接聽程式上的 HTTP 和 HTTPS 通訊協定。

回報問題並提供意見反應

如需意見反應,請在 feedback.azure.com 針對問題張貼新想法,請在適用於容器的應用程式閘道資源上透過 Azure 入口網站提出支援要求。

定價和 SLA

如需適用於容器的應用程式閘道定價資訊,請參閱應用程式閘道定價

如需容器 SLA 資訊的 應用程式閘道,請參閱在線服務的服務等級協定(SLA)。

最新功能

若要瞭解適用於容器的應用程式閘道的新功能,請參閱 Azure 更新

下一步