什麼是應用程式閘道輸入控制器?

應用程式閘道入口控制器 (AGIC) 是 Kubernetes 應用程式,讓 Azure Kubernetes Service (AKS) 客戶可以利用 Azure 的原生應用程式閘道 L7 負載平衡器,將雲端軟體公開到網際網路上。 AGIC 會監視其裝載的 Kubernetes 叢集,並持續更新應用程式閘道,讓選取的服務公開到網際網路。

輸入控制器會在客戶的 AKS 上,於自己的 Pod 中執行。 AGIC 會監視 Kubernetes 資源的子集是否有變更。 AKS 叢集的狀態會轉譯為針對應用程式閘道的設定,並套用至 Azure Resource Manager (ARM)

提示

另請參閱什麼是適用於容器的應用程式閘道?,其目前為公開預覽版。

應用程式閘道輸入控制器的優點

AGIC 有助於消除在 AKS 叢集前設定另一個負載平衡器/公用 IP 位址的需求,並避免要求在到達 AKS 叢集之前在資料路徑中設定多個躍點。 應用程式閘道會使用其私人 IP 位址直接與 Pod 通訊,而且不需要 NodePort 或 KubeProxy 服務。 這項功能也會為您的部署帶來更佳的效能。

輸入控制器是由 Standard_v2 和 WAF_v2 SKU 獨佔支援,這也能提供自動調整的優點。 應用程式閘道可以回應流量負載增加或減少,並據以調整規模,而不需要從 AKS 叢集取用任何資源。

在使用 AGIC 的同時使用應用程式閘道,便可藉由提供 TLS 原則和 WEB 應用程式防火牆 (WAF) 功能,來協助保護您的 AKS 叢集。

Azure Application Gateway + AKS

AGIC 是透過 Kubernetes 輸入資源以及服務和部署/Pod 來設定。 使用 Azure 的原生應用程式閘道 L7 負載平衡器,其提供了許多功能。 以下提供幾個範例:

  • URL 路由
  • 以 Cookie 為依據的親和性
  • TLS 終止
  • 端對端 TLS
  • 支援公用、私人和混合式網站
  • 整合式 Web 應用程式防火牆

Helm 部署與 AKS 附加元件之間的差異

有兩種方式可以為您的 AKS 叢集部署 AGIC。 第一種方式是透過 Helm;第二個是透過 AKS 作為附加元件。 將 AGIC 部署為 AKS 附加元件的主要優點是,這會比透過 Helm 部署更簡單。 針對新的安裝,您可以在使用 Azure CLI 中的一行時,部署新的應用程式閘道和新的 AKS 叢集 (並啟用 AGIC 作為附加元件)。 附加元件也是完全受控的服務,可提供自動更新和增加的支援等額外優點。 Microsoft 完全支援這兩種部署 AGIC 的方式 (Helm 和 AKS 附加元件)。 此外,附加元件還可讓您以一級附加元件的方式,與 AKS 進行更好的整合。

AGIC 附加元件仍部署為客戶 AKS 叢集中的 Pod,不過 Helm 部署版本與 AGIC 附加元件版本之間有些差異。 以下是兩個版本之間的差異清單:

  • 無法在 AKS 附加元件上修改 Helm 部署值:
    • verbosityLevel 預設設定為 5
    • usePrivateIp 預設設定為 false;可以藉由 use-private-ip 註釋覆寫此設定
    • 附加元件不支援 shared
    • 附加元件不支援 reconcilePeriodSeconds
    • 附加元件不支援 armAuth.type
  • 透過 Helm 部署的 AGIC 支援 ProhibitedTargets,這表示 AGIC 可以明確地針對 AKS 叢集設定應用程式閘道,而不會影響其他現有的後端。 AGIC 附加元件目前不支援此功能。
  • 由於 AGIC 附加元件是受管理的服務,因此會為客戶自動更新為最新版本的 AGIC 附加元件,不同於透過 Helm 部署的 AGIC,客戶必須手動更新 AGIC。

注意

客戶只能針對每個 AKS 叢集部署一個 AGIC 附加元件,而每個 AGIC 附加元件目前只能以一個應用程式閘道為目標。 針對每個叢集需要一個以上 AGIC 的部署,或多個 AGIC 以一個應用程式閘道作為目標的部署,請繼續使用透過 Helm 部署的 AGIC。

下一步

  • AKS Add-On 綠地部署:從頭開始在基礎結構上安裝 AGIC 附加元件、AKS 和應用程式閘道的指示。
  • AKS Add-On 棕地部署:在具有現有應用程式閘道的 AKS 叢集上安裝 AGIC 附加元件。
  • Helm 綠地部署:透過 Helm、新的 AKS 叢集和新的應用程式閘道,從頭開始在基礎結構上的安裝 AGIC。
  • Helm Brownfield 部署:透過 Helm 在現有的 AKS 叢集和應用程式閘道上部署 AGIC。