共用方式為


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

Azure Kubernetes Service (AKS) 會定期提供新的節點映像,以便於經常升級您的節點映像來使用最新的 AKS 功能。 Linux 節點映像會每週更新,而 Windows 節點映像會每月更新。 映像升級公告包含在 AKS 版本資訊中,而且可能需要一週的時間,這些更新才會在全部區域推出。 您也可以自動執行節點映射升級,並使用計劃性維護來排程它們。 如需詳細資訊,請參閱自動升級節點映像

本文說明如何升級 AKS 叢集節點映像,以及如何在不升級 Kube 版本的情況下更新節點集區映像。 如需升級叢集 Kubernetes 版本的資訊,請參閱升級 AKS 叢集

注意

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

您無法將節點映像版本降級 (例如 AKSUbuntu-2204 降級至 AKSUbuntu-1804,或 AKSUbuntu-2204-202308.01.0 降級至 AKSUbuntu-2204-202307.27.0)。

檢查是否有可用的節點映像升級

  1. 使用 az aks nodepool get-upgrades 命令檢查可用的節點映像升級。

    az aks nodepool get-upgrades \
        --nodepool-name <node-pool-name> \
        --cluster-name <cluster-name> \
        --resource-group <resource-group>
    
  2. 在輸出中,尋找並記下 latestNodeImageVersion 值。 此值是您節點集區可用的最新節點映像版本。

  3. 使用 命令檢查您目前的節點映射版本,以與最新版本 az aks nodepool show 進行比較。

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --query nodeImageVersion
    
  4. 如果 值 nodeImageVersionlatestNodeImageVersion不同,您可以升級節點映射。

升級全部節點集區中的全部節點映像

  1. 使用 命令搭配 --node-image-only 旗標,az aks upgrade升級叢集中所有節點集區中的所有節點映像。

    az aks upgrade \
        --resource-group <resource-group> \
        --name <cluster-name> \
        --node-image-only
    
  2. 您可以使用 kubectl get nodes 命令來檢查節點映像的狀態。

    注意

    此命令可能會根據您使用的殼層稍有不同。 如需 Windows 和 PowerShell 環境的詳細資訊,請參閱 Kube JSONPath 文件

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. 升級完成時,請使用 az aks show 命令來取得更新的節點集區詳細數據。 目前的節點映像顯示在 nodeImageVersion 屬性中。

    az aks show \
        --resource-group <resource-group> \
        --name <cluster-name>
    

升級特定節點集區

  1. 使用 az aks nodepool upgrade 命令搭配 --node-image-only 旗標,更新節點集區的OS映像,而不執行 Kubernetes 叢集升級。

    az aks nodepool upgrade \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --node-image-only
    
  2. 您可以使用 kubectl get nodes 命令來檢查節點映像的狀態。

    注意

    此命令可能會根據您使用的殼層略有不同。 如需 Windows 和 PowerShell 環境的詳細資訊,請參閱 Kube JSONPath 文件

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. 升級完成時,請使用 az aks nodepool show 命令來取得更新的節點集區詳細數據。 目前的節點映像顯示在 nodeImageVersion 屬性中。

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

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

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

  1. 使用 az aks nodepool update 命令搭配 --max-surge 旗標來升級具有節點激增的節點映像,以設定用於升級的節點數目。

    注意

    若要深入了解各種 --max-surge 設定的取捨,請參閱自訂節點激增升級

    az aks nodepool update \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --max-surge 33% \
        --no-wait
    
  2. 您可以使用 kubectl get nodes 命令來檢查節點映像的狀態。

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. 使用 az aks nodepool show 取得更新的節點集區詳細數據,以取得更新的節點集區詳細數據。 目前的節點映像顯示在 nodeImageVersion 屬性中。

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

下一步