在 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 閘道或使用者定義的路由。 輸出類型只會影響叢集的輸出流量。 如需詳細資訊,請參閱設定輸入控制器。
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。
如需詳細資訊,請參閱透過使用者定義的路由設定叢集輸出 (部分機器翻譯)。
輸出類型 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 | 不支援 |
只有在 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 概觀 (部分機器翻譯)
- 管理路由表 (部分機器翻譯)