共用方式為


Azure Kubernetes Service (AKS) 中的輸入

AKS 中的輸入是 Kubernetes 資源,可管理叢集內服務的外部類似 HTTP 流量存取。 AKS 輸入可以提供負載平衡、SSL 終止和名稱型虛擬裝載等服務。 如需 Kubernetes 輸入的詳細資訊,請參閱 Kubernetes 輸入文件

輸入控制器

管理應用程式流量時,輸入控制器會藉由在第 7 層運作來提供進階功能。 這些控制器可以根據輸入 URL 將 HTTP 流量路由傳送至不同的應用程式,以允許更智慧且彈性的流量分配規則。 例如,輸入控制器可以根據 URL 路徑將流量導向至不同的微服務,以增強服務的效率與組織。

另一方面,建立 LoadBalancer 類型服務時,會設定基礎 Azure 負載平衡器資源。 此負載平衡器可在第 4 層運作,將流量分散到您服務中指定連接埠上的 Pod。 不過,第 4 層服務並不知道實際的應用程式,而且無法實作這些類型的複雜路由規則。

了解這兩種方法之間的差異有助於為您的流量管理需求選取正確的工具。

此圖顯示 AKS 叢集中的輸入流量

比較輸入選項

下表列出不同輸入控制器選項之間的功能差異:

功能 應用程式路由附加元件 容器的應用程式閘道 Azure 服務網格/Istio 型服務網格
輸入/閘道控制器 NGINX 輸入控制器 適用於容器的 Azure 應用程式閘道 Istio 輸入閘道
API 輸入 API 輸入 API 和閘道 API Istio 輸入 API
裝載 叢集中 Azure 裝載 叢集中
調整大小 自動調整 自動調整 自動調整
負載平衡 內部/外部 外部 內部/外部
SSL 終止 叢集中 是:卸載和 E2E SSL 叢集中
mTLS N/A 對後端為是 N/A
靜態 IP 位址 N/A FQDN N/A
Azure Key Vault 已儲存 SSL 憑證 Yes N/A
DNS 區域管理的 Azure DNS 整合 Yes N/A

下表列出您可以使用各個輸入控制器的不同案例:

輸入選項 使用時機
受控 NGINX - 應用程式路由附加元件 • 叢集中裝載、可自訂且可調整 NGINX 輸入控制器。
• 基本負載平衡和路由功能。
• 內部與外部負載平衡器組態。
• 靜態 IP 位址組態。
• 與 Azure Key Vault 整合以進行憑證管理。
• 與 Azure DNS 區域整合以進行公用和私人 DNS 管理。
• 支援輸入 API。
容器的應用程式閘道 • Azure 裝載的輸入閘道。
• 控制器所管理的彈性部署策略,或自備適用於容器的應用程式閘道。
• 進階流量管理功能,例如自動重試、可用性區域復原、相互驗證 (mTLS) 至後端目標、流量分割/加權循環配置資源,以及自動調整。
• 與 Azure Key Vault 整合以進行憑證管理。
• 與 Azure DNS 區域整合以進行公用和私人 DNS 管理。
• 支援輸入和閘道 API。
Istio 輸入閘道 • 根據 Envoy,搭配 Istio 用於服務網格時。
• 進階流量管理功能,例如速率限制和斷路。
• 支援 mTLS

注意

Istio 附加元件尚不支援適用於 Istio 輸入流量 的閘道 API,但目前處於作用中開發狀態。

建立輸入資源

應用程式路由附加元件是在 AKS 中設定輸入控制器的建議方式。 應用程式路由附加元件是適用於 Azure Kubernetes Service (AKS) 的完全受控輸入控制器,可提供下列功能:

  • 根據 Kubernetes NGINX 輸入控制器,輕鬆設定受控 NGINX 輸入控制器。

  • 與 Azure DNS 整合,以進行公用和私人區域管理。

  • 使用儲存於 Azure Key Vault 中的憑證進行 SSL 終止。

如需應用程式路由附加元件的詳細資訊,請參閱使用應用程式路由附加元件的受控 NGINX 輸入 (部分機器翻譯)。

用戶端來源 IP 保留

設定輸入控制器,以在 AKS 叢集中容器的要求上保留用戶端來源 IP。 當您的輸入控制器將用戶端的要求路由傳送至 AKS 叢集中的容器時,該要求的原始來源 IP 無法提供給目標容器。 當您啟用用戶端來源 IP 保留時,用戶端的來源 IP 可在 X-Forwarded-For 下的要求標頭中取得。

如果您在輸入控制器上使用用戶端來源 IP 保留,則無法使用 TLS 傳遞。 用戶端來源 IP 保留和 TLS 傳遞可以與其他服務搭配使用,例如 LoadBalancer 類型。

若要深入了解用戶端來源 IP 保留,請參閱用戶端來源 IP 保留如何適用於 AKS 中的 LoadBalancer 服務 (英文)。