Share via


升級 Azure Kubernetes Service (AKS) 叢集

適用於:Azure Stack HCI 版本 23H2

在管理應用程式和叢集生命周期過程中,您可能想要升級至最新可用的 Kubernetes 版本。 升級牽涉到移至較新版本的 Kubernetes、套用作業系統 (操作系統) 版本更新, (修補) 或兩者。 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 叢集時,您無法略過 Kubernetes 次要版本。 您必須依主要版本號碼循序執行所有升級。 例如,允許從 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升級會在背景繼續執行。 不需要採取任何動作;升級會繼續進行,直到完成為止。

更新作業系統 (操作系統) 版本

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

重要

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

下一步