Azure Kubernetes Service (AKS) 節點映射升級

AKS 支援升級節點上的映射,讓您能夠使用最新的 OS 和執行時間更新。 AKS 會定期為新的映射提供最新的更新,因此定期升級節點的映射以取得最新的 AKS 功能會很有説明。 Linux 節點映射每週更新,Windows每個月更新的節點映射。 雖然客戶會透過 AKS 版本資訊收到映射升級的通知,但可能需要一周才會在所有區域中推出更新。 本文說明如何升級 AKS 叢集節點映射,以及如何在不升級 Kubernetes 版本的情況下更新節點集區映射。

如需 AKS 所提供最新映射的詳細資訊,請參閱 AKS 版本資訊

如需升級叢集 Kubernetes 版本的相關資訊,請參閱 升級 AKS 叢集

注意

AKS 叢集必須使用節點的虛擬機器擴展集。

檢查您的節點集區是否位於最新的節點映射上

您可以使用下列命令,查看節點集區可用的最新節點映射版本:

az aks nodepool get-upgrades \
    --nodepool-name mynodepool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup

在輸出中,您可以在 latestNodeImageVersion 下列範例中看到類似:

{
  "id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/nodepool1/upgradeProfiles/default",
  "kubernetesVersion": "1.17.11",
  "latestNodeImageVersion": "AKSUbuntu-1604-2020.10.28",
  "name": "default",
  "osType": "Linux",
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles",
  "upgrades": null
}

因此,針對 nodepool1 可用的最新節點映射為 AKSUbuntu-1604-2020.10.28 。 您現在可以藉由執行下列命令,將其與節點集區所使用的目前節點映射版本進行比較:

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --query nodeImageVersion

範例輸出如下:

"AKSUbuntu-1604-2020.10.08"

因此,在此範例中,您可以從目前的 AKSUbuntu-1604-2020.10.08 映射版本升級至最新版本 AKSUbuntu-1604-2020.10.28

升級所有節點集區中的所有節點

升級節點映射會使用 az aks upgrade 來完成。 若要升級節點映射,請使用下列命令:

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-image-only

在升級期間,使用下列 kubectl 命令檢查節點映射的狀態,以取得標籤並篩選出目前的節點映射資訊:

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

當升級完成時,請使用 az aks show 來取得更新的節點集區詳細資料。 目前的節點映像顯示在 nodeImageVersion 屬性中。

az aks show \
    --resource-group myResourceGroup \
    --name myAKSCluster

升級特定節點集區

升級節點集區上的映射類似于升級叢集上的映射。

若要在不執行 Kubernetes 叢集升級的情況下更新節點集區的作業系統映像,請在下列範例中使用 --node-image-only 選項:

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-image-only

在升級期間,使用下列 kubectl 命令檢查節點映射的狀態,以取得標籤並篩選出目前的節點映射資訊:

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

當升級完成時,請使用 az aks nodepool show 來取得更新的節點集區詳細資料。 目前的節點映像顯示在 nodeImageVersion 屬性中。

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

使用節點激增升級節點映射

若要加速節點映射升級程式,您可以使用可自訂的節點激增值來升級節點映射。 根據預設,AKS 會使用一個額外的節點來設定升級。

如果您想要增加升級的速度,請使用 --max-surge 值來設定要用於升級的節點數目,使其更快完成。 若要深入瞭解各種 --max-surge 設定的取捨,請參閱 自訂節點激增升級

下列命令會設定執行節點映射升級的最大激增值:

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --max-surge 33% \
    --node-image-only \
    --no-wait

在升級期間,使用下列 kubectl 命令檢查節點映射的狀態,以取得標籤並篩選出目前的節點映射資訊:

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

使用 az aks nodepool show 取得更新的節點集區詳細資料。 目前的節點映像顯示在 nodeImageVersion 屬性中。

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

後續步驟