在本文中,您會了解如何將 Basic Load Balancer 執行個體升級至 Azure Kubernetes Services (AKS) 上的 Standard Load Balancer。 我們建議對所有生產執行個體使用標準負載平衡器。 它為您的基礎架構提供了許多 關鍵差異 。 如需從基本負載平衡器升級至 AKS 外部標準負載平衡器的指引,請參閱 基本負載平衡器升級的官方指引。
這很重要
自 2025 年 9 月 30 日起,Azure Kubernetes 服務(AKS)不再支援基本負載平衡器。 為避免潛在服務中斷,我們建議新部署使用標準負載平衡器,並將 現有部署升級為標準負載平衡器。 欲了解更多退休資訊,請參閱 退休 GitHub 問題 及 Azure 更新退休公告。 想隨時掌握公告與更新,請參考 AKS 發布公告。
備註
對於同時使用可用性設定組和基本負載平衡器的叢集,您必須執行個別 az aks update 的命令,才能一次執行這兩個移轉 (可用性設定組至虛擬機器節點集區,以及基本負載平衡器至標準負載平衡器)。 如需執行此移轉的步驟,請參閱 可用性設定組移轉 指引。
開始之前
開始移轉之前,請檢閱下列資訊:
- 在遷移期間會發生停機。 相應地計劃停機時間。
- 移轉流程一旦開始,即無法復原。
- 此流程也會將您的基本 IP 移轉到標準 IP,同時保持與負載平衡器相關聯的傳入 IP 地址維持不變。 系統會建立新的公用 IP,並與標準 Standard Load Balancer 輸出規則建立關聯,以提供叢集輸出流量。
先決條件
您的叢集必須符合下列先決條件,才能執行移轉:
- 此指令碼的最低 Kubernetes 版本為 1.27。 如果您需要升級 AKS 叢集,請參閱 升級 AKS 叢集。
- 您需要安裝 Azure CLI。 您需要的最低版本是 2.76.0。
- 如果叢集使用私密金鑰保存庫執行金鑰管理服務,您必須先停用金鑰管理服務,才能執行移轉。 如需詳細資訊,請參閱 關閉 KMS。
- 您必須先停用任何
ValidatingAdmissionWebhooks或MutatingAdmissionWebhooks,才能執行移轉。
將基本負載平衡器升級至標準負載平衡器
使用命令
az aks update及旗標--load-balancer-sku設為Standard,將 Basic Load Balancer 升級至 Standard Load Balancer。az aks update \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --load-balancer-sku=Standard使用命令
az aks show驗證移轉是否成功。az aks show \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP在輸出中,確認將
load-balancer類型設為Standard。確認所有 Pods 和服務都使用
kubectl get pods和kubectl get svc命令正常運行。kubectl get svc -A kubectl get pods -A
確認新的輸出 IP 位址
您可以先確認與出埠規則相關聯的新 IP 位址的資源 ID,然後列出這些 IP 位址。
使用命令
az aks show取得輸出 IP 位址的資源 ID。az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query networkProfile.loadBalancerProfile.effectiveOutboundIPs[].id使用命令
az network public-ip show取得每個資源 ID 的新 IP 位址。az network public-ip show --ids $IP_RESOURCE_ID --query ipAddress -o tsv
FAQ
為什麼在建立新的 AKS 叢集或升級時會收到 Error: “Load Balancer SKU 'basic' is invalid; must use 'standard'. ?
Microsoft 已棄用特定 AKS 作業的 Basic Load Balancer SKU,並且目前已在某些區域封鎖新建。
若要解決此問題,請務必在建立新叢集時指定 --load-balancer-sku standard 。 例如:
az aks create \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--load-balancer-sku standard
為什麼我無法就地將基本負載平衡器變更為標準負載平衡器?
負載平衡器 SKU 在 AKS 中建立之後是不可變的,因為它是叢集所擁有的受控資源。
您可以使用下列其中一個選項來解決此問題:
-
選項 1:使用命令
az aks update run將 Basic Load Balancer 升級為 Standard。 如需詳細資訊,請參閱 升級 Azure Kubernetes Service (AKS) 上的基本負載平衡器。 - 選項 2:使用標準負載平衡器 (藍綠移轉) 建立新的 AKS 叢集,並移動任何現有的工作負載。
為什麼從基本升級至標準負載平衡器後找不到公用 IP 地址?
負載平衡器物件在移轉期間遺失了對公用 IP 資源的參考。 如果 IP 已繫結至基本 SKU Load Balancer,且未重新繫結,則可能會發生這種情況。
若要解決此問題:
請確定新的標準公用 IP 存在於正確的資源群組中。
使用下列組態在服務資訊清單中重新建立關聯:
annotations: service.beta.kubernetes.io/azure-load-balancer-ipv4: <your-ip>
在沒有公用 IP 的私有叢集上移轉負載平衡器時,為什麼在移轉期間仍會建立公用 IP?
如果 outboundType 是 LoadBalancer,則 AKS 會自動佈建公用 IP (PIP),而不論負載平衡器 SKU 為何。
若要解決此問題:
- 將
outboundType變更為userDefinedRouting用於完全私人的叢集。 - 請確定自訂輸出路由是透過 Azure 防火牆/NVA 設定。
為什麼我的內部負載均衡器配置中的遷移會失敗?
目前的移轉工具不支援將內部虛擬網路 (VNet) 負載平衡器就地從基本移轉到標準。
若要解決此問題:
- 在具有標準負載平衡器的相同 VNet 中重新建立叢集。
- 部署工作負載並驗證內部名稱解析功能。
我的節點集區正在使用可用性設定組。 即使在 Load Balancer 移轉之後,我仍然會遇到問題嗎?
是的。 如果您的節點集區使用可用性設定組,這些組也將在 2025 年 9 月 30 日之後在 AKS 中停止支援。
若要解決此問題:
- 對於同時使用可用性設定組和基本負載平衡器的叢集,您必須執行個別
az aks update的命令,才能一次執行這兩個移轉 (可用性設定組至虛擬機器節點集區,以及基本負載平衡器至標準負載平衡器)。 如需執行此移轉的步驟,請參閱 可用性設定組移轉 指引。 - 升級之後,必須使用 Azure CLI 或 REST API 來執行 CRUD 作業或管理集區。 檢查 限制。
升級前需要刪除預設的 Webhook 嗎?
否。 如果叢集中沒有其他 ValidatingAdmissionWebhooks 或 MutatingAdmissionWebhooks 存在,則控制平面中的預設 Webhook 應該可以在移轉期間保留。
預設 Webhook 包括:
aks-node-mutating-webhookwebhook-admission-controllernode-validating-webhook
執行移轉命令需要哪些存取權?
若要執行移轉命令,您需要:
- 訂用帳戶或資源群組上的 參與者 或是 擁有者 角色。
- Azure CLI 版本必須≥ 2.72.0。
- AKS 預覽延伸模組版本必須≥ 0.5.170。
如何查看金鑰管理服務 (KMS) 加密是否已停用?
您可以使用命令 az aks list 來檢查 AKS 叢集上是否已啟用 KMS 加密。
az aks list --query "[].{Name:name, KmsEnabled:securityProfile.azureKeyVaultKms.enabled, KeyId:securityProfile.azureKeyVaultKms.keyId}"
如果輸出顯示
"KmsEnabled": null,則表示未為該叢集啟用 KMS 加密,您可以略過任何步驟來停用它。 例如:{ "KeyId": null, "KmsEnabled": null, "Name": "myAKSCluster" }, ...如果已啟用 KMS,但您想要停用它,請參閱 關閉 KMS 加密。
後續步驟
如需 AKS 網路的詳細資訊,請參閱 Azure Kubernetes Service (AKS) 的網路概念。