Condividi tramite


Pool di nodi di Windows Server non aggiornati a Gen2 durante l'aggiornamento dell'immagine del nodo del cluster

Questo articolo illustra come risolvere uno scenario in cui i pool di nodi di Windows Server non vengono aggiornati automaticamente dalle macchine virtuali Gen1 alle macchine virtuali Gen2 quando un'immagine del nodo del cluster viene aggiornata nel servizio Azure Kubernetes.

Annotazioni

Questo scenario non si applica alle macchine virtuali gen2 nei pool di nodi Linux.

Prerequisiti

Sintomi

I pool di nodi di Windows Server esistenti non vengono aggiornati da Gen1 a Gen2 quando si aggiorna l'immagine del nodo usando uno dei metodi seguenti nell'interfaccia della riga di comando di Azure:

Causa

Causa 1: i pool di nodi esistenti non vengono aggiornati automaticamente alle macchine virtuali gen2

Per impostazione predefinita, un aggiornamento dell'immagine del nodo non supporta l'aggiornamento o l'aggiornamento dei pool di nodi esistenti. I az aks upgrade comandi e az aks nodepool upgrade aggiornano solo l'immagine del nodo (a una versione successiva dell'immagine del nodo). Questi comandi non aggiornano la generazione di macchine virtuali corrispondente.

Causa 2: l'aggiornamento del cluster a Kubernetes versione 1.25 o successiva aggiorna solo il sistema operativo

Quando si aggiorna il cluster a Kubernetes versione 1.25 o successiva, viene aggiornato solo il sistema operativo (a Windows Server 2022). I pool di nodi esistenti non sono interessati. I set di scalabilità di macchine virtuali di Azure associati contengono macchine virtuali con la stessa macchina virtuale Gen1.

Causa 3: Cluster aggiornato e nuovo pool di nodi creato usando Windows Server 2022 senza specificare una dimensione di macchina virtuale valida

Dopo aver aggiornato il cluster a Kubernetes versione 1.25 o successiva, specificare Windows Server 2022 come sistema operativo da usare nelle macchine virtuali del pool di nodi. Tuttavia, le macchine virtuali non usano un riferimento all'immagine del nodo Gen2 per uno dei motivi seguenti:

  • Non si specificano le dimensioni della macchina virtuale e le dimensioni predefinite della macchina virtuale nell'area non supportano le macchine virtuali gen2.

  • Specificare le dimensioni della macchina virtuale solo Gen1.

Quando si aggiorna il sistema operativo predefinito da Windows Server 2019 (Windows2019) a Windows Server 2022 (Windows2022), i pool di nodi esistenti non vengono aggiornati automaticamente a una generazione di vm diversa.

Soluzione

Aggiornare il cluster e quindi creare un nuovo pool di nodi di Windows Server che supporti le dimensioni delle macchine virtuali gen2 in tale cluster in base alle linee guida seguenti.

Versione dell'aggiornamento del cluster Kubernetes Linee guida per la creazione di cluster
1.25 o versione successiva Quando si esegue il az aks create comando per creare un cluster, impostare il --node-vm-size parametro su una dimensione di macchina virtuale Gen2.
Qualsiasi versione precedente alla 1.25 Quando si esegue il az aks create comando per creare un cluster, impostare il valore del --os-sku parametro su Windows2022e impostare il valore del --node-vm-size parametro su una dimensione di macchina virtuale Gen2.

Annotazioni

Se si specificano le dimensioni di una macchina virtuale gen2 e si imposta il sistema operativo su Windows Server 2019, viene visualizzato un ErrorCode_Windows2019NotSupportedWithGen2VM codice di errore accompagnato dal messaggio di errore seguente:

<le dimensioni della> macchina virtuale sono una macchina virtuale di sola generazione. Windows2019 non supporta macchine virtuali di seconda generazione. È tuttavia possibile selezionare una dimensione di macchina virtuale di prima generazione o impostare os_sku su 2022.

Per evitare questo problema, scegliere una delle opzioni seguenti quando si crea il cluster:

  • Selezionare le dimensioni di una macchina virtuale gen1 da usare insieme a Windows Server 2019.

  • Impostare lo SKU del sistema operativo su Windows Server 2022 da usare insieme alla macchina virtuale Gen2.

  • Prima di creare un nuovo pool di nodi, verificare che le dimensioni della macchina virtuale supportino le macchine virtuali Gen2 nell'area. A tale scopo, eseguire az vm list-sizes --___location <region> --query "[?contains(name, 'v2')].name" --output table.

  • Per verificare le versioni correnti e disponibili dell'immagine del nodo, eseguire i comandi seguenti:

    • Per controllare la versione corrente: az aks nodepool show --resource-group <resource-group> --cluster-name <cluster-name> --name <nodepool-name> --query nodeImageVersion
    • Per verificare la versione più recente disponibile: az aks nodepool get-upgrades --resource-group <resource-group> --cluster-name <cluster-name> --nodepool-name <nodepool-name> --query latestNodeImageVersion

Contattaci per ricevere assistenza

In caso di domande, è possibile porre domande al supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.