在 Azure Kubernetes Service (AKS) 中以使用者定義的路由表自訂叢集輸出

您可以自訂 Azure Kubernetes Service (AKS) 叢集的輸出,以符合特定案例。 AKS 預設會為輸出佈建 Standard SKU 負載平衡器。 不過,如果不允許公用 IP,或者案例要求額外的躍點來輸出,則預設設定可能不會符合所有案例的需求。

本文將逐步解說如何自訂叢集的輸出路由,以支援自訂網路案例。 這些案例包括不允許公用 IP,並要求叢集位於網路虛擬設備 (NVA) 後方的案例。

必要條件

  • Azure CLI 2.0.81 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI
  • API 2020-01-01 版或更新版本。

需求和限制

使用連出類型是一個進階的網路案例,且需要適當的網路設定。 下列需求和限制適用於使用輸出類型:

  • 設定 outboundType 需要具有 VirtualMachineScaleSetsvm-set-typeStandardload-balancer-sku 的 AKS 叢集。
  • outboundType 設定為 UDR 值,需要使用者定義的路由,以及適用於叢集的有效連出連線能力。
  • outboundType 設定為 UDR 值,表示路由傳送到負載平衡器的輸入來源 IP,可能會與叢集的連出輸出目的地位址不相符

使用使用者定義的路由表自訂輸出的概觀

如果設定 userDefinedRouting,AKS 就不會自動設定輸出路徑,這表示您必須設定輸出。

當您未使用標準負載平衡器 (SLB) 結構時,您必須建立明確的輸出。 您必須將 AKS 叢集部署到先前已設定子網路的現有虛擬網路中。 此結構要求將輸出流量明確傳送到防火牆、閘道或 Proxy 等設備,如此一來,指派給標準負載平衡器或設備的公用 IP 就能處理網路位址轉譯 (NAT)。

使用 userDefinedRouting 來建立負載平衡器

只有在部署 loadBalancer 類型的第一個 Kubernetes 服務時,具有 UDR 輸出類型的 AKS 叢集才能取得標準負載平衡器。 負載平衡器會設定輸入要求的公用 IP 位址,以及輸入要求的後端集區。 Azure 雲端提供者會設定輸入規則,但不會設定輸出公用 IP 位址或輸出規則。 您的 UDR 是輸出流量的唯一來源。

注意

Azure 負載平衡器在放置規則前不會產生費用

部署具有 UDR 和 Azure 防火牆連出類型的叢集

若要檢視使用使用者定義路由之輸出類型叢集的應用程式,請參閱使用 Azure 防火牆範例限制輸出流量 (部分機器翻譯)。

重要

UDR 輸出類型在路由表中需要有路由 0.0.0.0/0,以及 NVA 的下一個躍點目的地。 路由表已經具備連到網際網路的預設 0.0.0.0/0。 如果沒有公用 IP 位址可供 Azure 用於來源網路位址轉譯 (SNAT),只新增此路由,將不會為您提供輸出網際網路連線能力。 AKS 會驗證您並未建立指向網際網路的 0.0.0.0/0 路由,而是指向閘道、NVA 等。使用 UDR 的輸出類型時,除非您設定 loadbalancer 類型的服務,否則不會建立用於輸入要求的負載平衡器公用 IP 位址。 如果您設定了 UDR 的輸出類型,則 AKS 永遠都不會建立用於輸出要求的公用 IP 位址。

下一步

如需使用者定義路由和 Azure 網路的詳細資訊,請參閱: