分享方式:


在 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 閘道或使用者定義的路由。 輸出類型只會影響叢集的輸出流量。 如需詳細資訊,請參閱設定輸入控制器

注意

您可以將自己的 [路由表][byo-route-table] 與 UDR 和 kubenet 網路搭配使用。 請確定叢集身分識別 (服務主體或受控識別) 具有自訂路由表的參與者權限。

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。

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

叢集建立之後更新 outboundType

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

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

受控 VNet 支援的移轉路徑

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

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

BYO VNet 支援的移轉路徑

From|自 loadBalancer managedNATGateway userAssignedNATGateway userDefinedRouting
loadBalancer N/A 不支援 支援 已支援
managedNATGateway 不支援 N/A 不支援 不支援
userAssignedNATGateway 支援 不支援 N/A 支援
userDefinedRouting 已支援 不支援 支援 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

下一步