在 Azure Kubernetes Service (AKS) 中使用輸出類型自訂叢集輸出
您可以自訂 AKS 叢集的輸出,以符合特定情節。 根據預設,AKS 會佈建要設定並用於輸出的標準 SKU 負載平衡器。 不過,如果不允許公用 IP 或輸出需要額外的躍點,則預設設定可能不符合所有案例的需求。
本文將涵蓋 AKS 叢集中可用的各種類型輸出連線。
注意
您現在可以在叢集建立之後更新 outboundType
。
重要
在非私人叢集中,API 伺服器叢集流量會透過叢集輸出類型路由和處理。 若要防止 API 伺服器流量以公用流量處理,請考慮使用 私人叢集,或查看 API Server VNet 整合 功能。
限制
- 設定
outboundType
需要具有vm-set-type
VirtualMachineScaleSets
和load-balancer-sku
Standard
的 AKS 叢集。
AKS 中的輸出類型
您可以使用下列輸出類型來設定 AKS 叢集:負載平衡器、NAT 閘道或使用者定義的路由。 輸出類型只會影響叢集的輸出流量。 如需詳細資訊,請參閱設定輸入控制器。
注意
您可以將自己的 [路由表][byo-route-table] 與 UDR 和 kubenet 網路搭配使用。 請確定叢集身分識別 (服務主體或受控識別) 具有自訂路由表的參與者權限。
loadBalancer
的輸出類型
負載平衡器可透過 AKS 指派的公用 IP 來用於輸出。 連出類型的 loadBalancer
支援 loadBalancer
類型的 Kubernetes 服務,其會預期 AKS 資源提供者所建立之負載平衡器的輸出。
若已設定 loadBalancer
,AKS 會自動完成下列設定:
- 公用 IP 位址會針對叢集輸出來佈建。
- 此公用 IP 位址會指派給負載平衡器資源。
- 針對叢集中的代理程式節點,設定負載平衡器的後端集區。
如需詳細資訊,請參閱在 AKS 中使用標準負載平衡器。
managedNatGateway
或 userAssignedNatGateway
的輸出類型
如果已針對 outboundType
選取 managedNatGateway
或 userAssignedNatGateway
,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 |
只有在 loadBalancer
、managedNATGateway
(如果使用受控虛擬網路)、userAssignedNATGateway
與 userDefinedRouting
(如果使用自訂虛擬網路) 之間才支援移轉。
警告
將輸出類型移轉至使用者受控類型 (userAssignedNATGateway
和 userDefinedRouting
) 將會變更叢集的輸出公用 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
- 將路由
0.0.0.0/0
新增至預設路由表。 請參閱在 Azure Kubernetes Service (AKS) 中以使用者定義的路由表自訂叢集輸出 (部分機器翻譯)
az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userDefinedRouting
在 BYO vNAT 情節中,將叢集從 loadbalancer 更新為 userAssignedNATGateway
- 將 NAT 閘道關聯至與工作負載相關聯的子網路。 請參閱建立受控或使用者指派的 NAT 閘道
az aks update --resource-group <resourceGroup> --name <clusterName> --outbound-type userAssignedNATGateway
下一步
- 在 AKS 叢集中設定標準負載平衡
- 在 AKS 叢集中設定 NAT 閘道
- 在 AKS 叢集中設定使用者定義的路由 (部分機器翻譯)
- NAT 閘道文件
- Azure 網路 UDR 概觀 (部分機器翻譯)
- 管理路由表 (部分機器翻譯)