從 Azure Kubernetes Service (AKS) 上的 Basic Load Balancer 升級

在本文中,您會了解如何將 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,才能執行移轉。

將基本負載平衡器升級至標準負載平衡器

  1. 使用命令 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
    
  2. 使用命令 az aks show 驗證移轉是否成功。

    az aks show \
      --name $CLUSTER_NAME \
      --resource-group $RESOURCE_GROUP
    

    在輸出中,確認將load-balancer類型設為Standard。

  3. 確認所有 Pods 和服務都使用 kubectl get pods 和 kubectl get svc 命令正常運行。

    kubectl get svc -A
    kubectl get pods -A
    

確認新的輸出 IP 位址

您可以先確認與出埠規則相關聯的新 IP 位址的資源 ID,然後列出這些 IP 位址。

  1. 使用命令 az aks show 取得輸出 IP 位址的資源 ID。

    az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query networkProfile.loadBalancerProfile.effectiveOutboundIPs[].id
    
  2. 使用命令 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 中建立之後是不可變的,因為它是叢集所擁有的受控資源。

您可以使用下列其中一個選項來解決此問題:

為什麼從基本升級至標準負載平衡器後找不到公用 IP 地址?

負載平衡器物件在移轉期間遺失了對公用 IP 資源的參考。 如果 IP 已繫結至基本 SKU Load Balancer,且未重新繫結,則可能會發生這種情況。

若要解決此問題:

  1. 請確定新的標準公用 IP 存在於正確的資源群組中。

  2. 使用下列組態在服務資訊清單中重新建立關聯:

    annotations:
      service.beta.kubernetes.io/azure-load-balancer-ipv4: <your-ip>
    

在沒有公用 IP 的私有叢集上移轉負載平衡器時,為什麼在移轉期間仍會建立公用 IP?

如果 outboundType 是 LoadBalancer,則 AKS 會自動佈建公用 IP (PIP),而不論負載平衡器 SKU 為何。

若要解決此問題:

  1. 將outboundType變更為userDefinedRouting用於完全私人的叢集。
  2. 請確定自訂輸出路由是透過 Azure 防火牆/NVA 設定。

為什麼我的內部負載均衡器配置中的遷移會失敗?

目前的移轉工具不支援將內部虛擬網路 (VNet) 負載平衡器就地從基本移轉到標準。

若要解決此問題:

  1. 在具有標準負載平衡器的相同 VNet 中重新建立叢集。
  2. 部署工作負載並驗證內部名稱解析功能。

我的節點集區正在使用可用性設定組。 即使在 Load Balancer 移轉之後,我仍然會遇到問題嗎?

是的。 如果您的節點集區使用可用性設定組,這些組也將在 2025 年 9 月 30 日之後在 AKS 中停止支援。

若要解決此問題:

  1. 對於同時使用可用性設定組和基本負載平衡器的叢集,您必須執行個別 az aks update 的命令,才能一次執行這兩個移轉 (可用性設定組至虛擬機器節點集區,以及基本負載平衡器至標準負載平衡器)。 如需執行此移轉的步驟,請參閱 可用性設定組移轉 指引。
  2. 升級之後,必須使用 Azure CLI 或 REST API 來執行 CRUD 作業或管理集區。 檢查 限制。

升級前需要刪除預設的 Webhook 嗎?

否。 如果叢集中沒有其他 ValidatingAdmissionWebhooks 或 MutatingAdmissionWebhooks 存在,則控制平面中的預設 Webhook 應該可以在移轉期間保留。

預設 Webhook 包括:

  • aks-node-mutating-webhook
  • webhook-admission-controller
  • node-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) 的網路概念。