共用方式為


升級 Azure Kubernetes Service (AKS) 叢集

適用於:Azure 本機版本 23H2

在管理應用程式和叢集生命週期時,您可能想要升級至最新可用的 Kubernetes 版本。 升級牽涉到移至較新版本的 Kubernetes、套用作業系統 (OS) 版本更新或兩者。 AKS Arc 支援使用最新的OS和運行時間更新,升級工作負載叢集中的節點(或修補) 節點。

所有升級都會以連續滾動的方式執行,以確保工作負載的不間斷可用性。 將具有較新組建的新 Kubernetes 背景工作節點帶入叢集時,會將資源從舊節點移至新節點。 成功完成之後,舊的節點就會解除委任,並從叢集中移除。

開始之前

如果您使用 Azure CLI,本文會要求您使用 Azure CLI 2.34.1 以上版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級 CLI,請參閱 安裝 Azure CLI

檢查可用升級

使用下列命令檢查叢集可用的 Kubernetes 版本:

az aksarc get-upgrades --resource-group myResourceGroup --name myAKSCluster

下列範例輸出顯示目前的版本為 1.24.11 ,並列出 下 upgrades可用的版本:

{  
  "agentPoolProfiles": [  
    {  
      "kubernetesVersion": "1.24.11",  
      "upgrades": [  
        {  
          "kubernetesVersion": "1.25.7"  
        }  
      ]  
    }  
  ],  
  "controlPlaneProfile": {  
    "kubernetesVersion": "1.24.11",  
    "name": "aksarc-testupgrade",  
    "osType": "Linux",  
    "upgrades": [  
      {  
        "kubernetesVersion": "1.25.7"  
      }  
    ]  
  },  
  ...  
  "provisioningState": "Succeeded",  
  ...  
}

升級 Kubernetes 版本

當您升級支援的 AKS 叢集時,無法跳過 Kube 次要版本。 您必須依主要版本號碼的順序執行所有升級。 例如,允許從 1.24.x 升級至 1.25.x1.25.x 到 1.26.x 不允許 1.24.x1.26.x

注意

如果未指定修補檔,叢集會自動升級至指定次要版本的最新 GA 修補檔。 例如,將 設定 --kubernetes-version1.25 會導致叢集升級至 1.25.7

您可以使用下列命令升級叢集:

az aksarc upgrade \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --kubernetes-version <KUBERNETES_VERSION>

使用 show 命令確認升級成功:

az aksarc show --resource-group myResourceGroup --name myAKSCluster

下列範例輸出顯示叢集現在會執行 1.25.7

{  
"extendedLocation": {  
  "name":
"/subscriptions/<subscription>/resourcegroups/<resource group>/providers/microsoft.extendedlocation/customlocations/<custom
location>",  
  "type": "CustomLocation"  
},  
"id": "/subscriptions/<subscription>/resourceGroups/<resource group>/providers/Microsoft.Kubernetes/connectedClusters/aksarc-testupgrade/providers/Microsoft.HybridContainerService/provisionedClusterInstances/default",  
"name": "default",  
"properties": {  
  "agentPoolProfiles": [  
    {  
    }  
  ],  
  "controlPlane": {  
    "availabilityZones": null,  
    "controlPlaneEndpoint": {  
      "hostIp": null,  
      "port": null  
    },  
    "count": 1,  
    "linuxProfile": {  
      "ssh": {  
        "publicKeys": null  
      }  
    },  
    "name": null,  
    "nodeImageVersion": null,  
    "osSku": "CBLMariner",  
    "osType": "Linux",  
    "vmSize": "Standard_A4_v2"  
  },  
  "kubernetesVersion": "1.25.7",  
...  
  "provisioningState": "Succeeded",  
  ...  
},  
....  
"type": "microsoft.hybridcontainerservice/provisionedclusterinstances"  
}

重要

當您從略過兩個或多個次要版本的不支援版本執行升級時,升級無法保證適當的功能。 如果您的版本明顯過舊,建議您重改為新建立叢集。

在升級作業期間,和 currentState 指標都會provisioningState顯示升級訊息,以反映進行中的程式。 不過,如果作業逾時, provisioningState 會顯示 [失敗],同時 currentState 繼續顯示 升級 ,因為升級會在背景繼續。 不需要採取任何動作;升級會繼續進行,直到完成為止。

更新作業系統 (OS) 版本

只有在新映像不需要不同的 Kubernetes 版本時,才將背景工作節點更新為較新版本的節點映射,而不需要變更 Kubernetes 版本才能運作。 目前,AKS Arc 不支援支援所有 Kubernetes 版本的節點-映像僅更新。 如果您需要更新節點映像,您必須將叢集升級為最新的 Kubernetes 版本,以確保所有節點映射更新都已納入。

重要

嘗試使用 node-image-only 旗標時,您會收到訊息,指出尚不支援此功能。

下一步