共用方式為


在 Azure Kubernetes Service (AKS) 中使用輸出類型自訂叢集輸出

您可以自訂 AKS 叢集的輸出,以符合特定情節。 根據預設,AKS 會佈建要設定並用於輸出的標準 SKU 負載平衡器。 不過,如果不允許公用 IP 或輸出需要額外的躍點,則預設設定可能不符合所有案例的需求。

本文將涵蓋 AKS 叢集中可用的各種類型輸出連線。

注意

您現在可以在叢集建立之後更新 outboundType

重要

在非私人叢集中,API 伺服器叢集流量會透過叢集輸出類型路由和處理。 若要防止 API 伺服器流量以公用流量處理,請考慮使用 私人叢集,或查看 API Server VNet 整合 功能。

限制

  • 設定 outboundType 需要具有 vm-set-type VirtualMachineScaleSetsload-balancer-sku Standard 的 AKS 叢集。

AKS 中的輸出類型

您可以使用下列輸出類型來設定 AKS 叢集:負載平衡器、NAT 閘道或使用者定義的路由。 輸出類型只會影響叢集的輸出流量。 如需詳細資訊,請參閱設定輸入控制器

loadBalancer 的輸出類型

負載平衡器可透過 AKS 指派的公用 IP 來用於輸出。 連出類型的 loadBalancer 支援 loadBalancer 類型的 Kubernetes 服務,其會預期 AKS 資源提供者所建立之負載平衡器的輸出。

若已設定 loadBalancer,AKS 會自動完成下列設定:

  • 公用 IP 位址會針對叢集輸出來佈建。
  • 此公用 IP 位址會指派給負載平衡器資源。
  • 針對叢集中的代理程式節點,設定負載平衡器的後端集區。

此圖顯示輸入 IP 和輸出 IP,即輸入 IP 將流量導向負載平衡器後,負載平衡器會將流量導入或導出內部叢集,並將其他流量導向輸出 IP,而輸出 IP 將流量導向網際網路、MCR、Azure 要求的服務和 AKS 控制平面。

如需詳細資訊,請參閱在 AKS 中使用標準負載平衡器

managedNatGatewayuserAssignedNatGateway 的輸出類型

如果已針對 outboundType 選取 managedNatGatewayuserAssignedNatGateway,AKS 會依賴 Azure 網路 NAT 閘道 (部分機器翻譯) 進行叢集輸出。

  • 使用受控虛擬網路時,選取 [managedNatGateway]。 AKS 會佈建 NAT 閘道,並將其連結至叢集子網路。
  • 使用自備虛擬網路時,選取 [userAssignedNatGateway]。 此選項要求您在叢集建立之前已佈建 NAT 閘道。

如需詳細資訊,請參閱搭配 AKS 使用 NAT 閘道

userDefinedRouting 的輸出類型

注意

userDefinedRouting 輸出類型是一個進階的網路情節,且需要適當的網路設定。

若已設定 userDefinedRouting,AKS 將不會自動設定輸出路徑。 輸出設定須由您完成。

您必須將 AKS 叢集部署到先前已設定子網路的現有虛擬網路中。 由於您並未使用標準負載平衡器 (SLB) 結構,您必須建立明確的輸出。 此結構要求您將輸出流量明確傳送到防火牆、閘道、Proxy 等設備,或者允許透過指派給標準負載平衡器或設備的公用 IP 來完成 NAT。

如需詳細資訊,請參閱透過使用者定義的路由設定叢集輸出 (部分機器翻譯)。

輸出類型 none (預覽)

重要

輸出 none 類型需要仔細規劃,以確保叢集如預期般運作,而不需要對外部服務進行非預期的相依性。 如需完全隔離的叢集,請參閱 隔離的叢集考慮

如果 none 已設定,AKS 將不會自動設定輸出路徑。 此選項類似於 userDefinedRouting ,但不需要預設路由作為驗證的一部分。

none 自備虛擬網路案例和受控 VNet 案例中都支持輸出類型。 不過,您必須確定 AKS 叢集已部署到需要定義明確輸出路徑的網路環境。 針對 BYO VNet 案例,叢集必須部署到具有先前設定之子網的現有虛擬網路。 由於 AKS 不會佈建標準負載平衡器或任何輸出基礎結構,因此如有必要,您必須建立明確的輸出路徑。 這包括將流量路由傳送至防火牆、Proxy、閘道或其他自定義網路組態。

輸出類型 block (預覽)

重要

輸出 block 類型需要仔細規劃,以確保沒有任何非預期的網路相依性存在。 如需完全隔離的叢集,請參閱 隔離的叢集考慮

如果 block 已設定,AKS 會設定網路規則,以 主動封鎖來自叢集的所有輸出流量 。 這個選項適用於必須限制輸出連線的高度安全環境。

使用 block時:

  • AKS 可確保沒有任何公用因特網流量可以透過網路安全組 (NSG) 規則離開叢集。 VNet 流量不會受到影響。
  • 您必須透過其他網路設定明確允許任何必要的輸出流量。

此選項 block 提供額外的網路隔離層級,但需要仔細規劃,以避免中斷工作負載或相依性。

叢集建立之後更新 outboundType

在叢集建立之後變更輸出類型,將視需要部署或移除資源,以將叢集放入新的輸出設定中。

下表顯示適用於受控和 BYO 虛擬網路的輸出類型之間支援的移轉路徑。

受控 VNet 支援的移轉路徑

每個數據列都會顯示輸出類型是否可以移轉至頂端所列的類型。 「支援」表示移轉是可能的,而「不支援」或「N/A」則表示不是。

From|自 loadBalancer managedNATGateway userAssignedNATGateway userDefinedRouting none block
loadBalancer N/A 支援 不支援 不支援 支援 支援
managedNATGateway 支援 N/A 不支援 不支援 支援 已支援
userAssignedNATGateway 不支援 不支援 N/A 不支援 不支援 不支援
none 支援 已支援 不支援 不支援 N/A 支援
block 支援 已支援 不支援 不支援 支援 N/A

BYO VNet 支援的移轉路徑

From|自 loadBalancer managedNATGateway userAssignedNATGateway userDefinedRouting none block
loadBalancer N/A 不支援 支援 支援 已支援 不支援
managedNATGateway 不支援 N/A 不支援 不支援 不支援 不支援
userAssignedNATGateway 支援 不支援 N/A 支援 已支援 不支援
userDefinedRouting 支援 不支援 支援 N/A 支援 不支援
none 支援 不支援 支援 支援 N/A 不支援

只有在 loadBalancermanagedNATGateway (如果使用受控虛擬網路)、userAssignedNATGatewayuserDefinedRouting (如果使用自訂虛擬網路) 之間才支援移轉。

警告

將輸出類型移轉至使用者受控類型 (userAssignedNATGatewayuserDefinedRouting) 將會變更叢集的輸出公用 IP 位址。 如果啟用已授權的 IP 範圍,請確定已將新的輸出 IP 範圍附加至已授權的 IP 範圍。

警告

變更叢集上的輸出類型會對網路連線造成干擾,並導致叢集的輸出 IP 位址變更。 如果已設定任何防火牆規則以限制來自叢集的流量,則您必須更新它們,以符合新的輸出 IP 位址。

更新叢集以使用新的輸出類型

注意

您必須使用 >= 2.56 的 Azure CLI 版本來移轉輸出類型。 使用 az upgrade 更新至最新版的 Azure CLI。

  • 使用 az aks update (部分機器翻譯) 命令來更新叢集的輸出設定。

將叢集從 loadbalancer 更新為 managedNATGateway

az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type managedNATGateway --nat-gateway-managed-outbound-ip-count <number of managed outbound ip>

將叢集從 managedNATGateway 更新為 loadbalancer

az aks update --resource-group <resourceGroup> --name <clusterName> \
--outbound-type loadBalancer \
<--load-balancer-managed-outbound-ip-count <number of managed outbound ip>| --load-balancer-outbound-ips <outbound ip ids> | --load-balancer-outbound-ip-prefixes <outbound ip prefix ids> >

警告

請勿重複使用已在先前輸出設定中使用的 IP 位址。

將叢集從 managedNATGateway 更新為 userDefinedRouting

az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userDefinedRouting

在 BYO vNAT 情節中,將叢集從 loadbalancer 更新為 userAssignedNATGateway

az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userAssignedNATGateway

下一步