Condividi tramite


Non è possibile aggiornare il cluster del servizio Azure Kubernetes a causa dell'errore NodePoolMcVersionIncompatible

Questo articolo illustra come risolvere l'errore "NodePoolMcVersionIncompatible - Pool di nodi versione 1.x.y e piano di controllo versione 1.a.b non compatibile" che si verifica quando si aggiorna un pool di nodi in un cluster del servizio Azure Kubernetes di Microsoft Azure.

Prerequisiti

Sintomi

Quando si aggiorna un pool di nodi in un cluster del servizio Azure Kubernetes, viene visualizzato uno dei messaggi di errore seguenti:

BadRequest - NodePoolMcVersionIncompatible

Errore: il pool di nodi versione 1.x.y e il piano di controllo versione 1.a.b non sono compatibili. La versione secondaria del pool di nodi non può essere inferiore di più di 2 versioni rispetto alla versione del piano di controllo. La versione secondaria del pool di nodi è x e quella del piano di controllo è a. Per altre informazioni, vedere https://aka.ms/version-skew-policy.

ID risorsa: /subscriptions/<subscription_id>/resourcegroups/<aks_cluster_resource_group>/providers/Microsoft.ContainerService/managedClusters/<aks_cluster_name>.

BadRequest - NodePoolMcVersionIncompatible

Errore: il pool di nodi versione 1.x.y e il piano di controllo versione 1.a.b non sono compatibili. La versione minore del pool di nodi x è superiore alla versione del piano di controllo a. Per altre informazioni, vedere https://aka.ms/version-skew-policy.

ID risorsa: /subscriptions/<subscription_id>/resourcegroups/<aks_cluster_resource_group>/providers/Microsoft.ContainerService/managedClusters/<aks_cluster_name>.

Motivo

Questi problemi si verificano se si tenta di aggiornare un pool di nodi arretrato di oltre due versioni rispetto alla versione del piano di controllo di AKS, o se si tenta di aggiungere un pool di nodi di una versione più recente rispetto al piano di controllo.

Quando si aggiorna un pool di nodi, è necessario soddisfare le condizioni seguenti:

  • La versione del pool di nodi non può essere maggiore del controllo <principale>.<minore>.<versione patch> .

  • La versione del pool di nodi deve trovarsi all'interno di due versioni secondarie della versione del piano di controllo.

Per ulteriori informazioni, vedere le regole di convalida di AKS per l'upgrade.

Soluzione 1: assicurarsi che la versione del pool di nodi si trova all'interno di due versioni secondarie della versione del piano di controllo

  1. Ottenere la versione del piano di controllo eseguendo il comando az aks get-upgrades nell'interfaccia della riga di comando di Azure.

    Di seguito è riportato un esempio di uso del comando . La MasterVersion colonna di output contiene la versione del control plane.

    az aks get-upgrades --resource-group aksrg --name testcluster1 --output table  
    
    Name     ResourceGroup    MasterVersion    Upgrades
    -------  ---------------  ---------------  -----------------------
    default  aksrg            1.23.12          1.23.15, 1.24.6, 1.24.9
    
  2. Aggiornare il pool di nodi eseguendo il comando az aks nodepool upgrade dell'interfaccia della riga di comando di Azure e specificare una versione di Kubernetes all'interno di due versioni secondarie della versione del piano di controllo.

    Ad esempio, se la versione del piano di controllo è 1.23.12, è possibile specificare la versione Kubernetes del pool di nodi come 1.23.8 o 1.23.12.

    Di seguito è riportato un esempio di uso del comando :

    az aks nodepool upgrade \
        --resource-group aksrg \
        --cluster-name testcluster1 \
        --name mynodepool \
        --kubernetes-version 1.23.8 \
        --no-wait
    

Soluzione 2: Assicurarsi che la versione del pool di nodi non sia maggiore della versione del piano di controllo

  1. Ottenere la versione del piano di controllo eseguendo il comando az aks get-upgrades nell'interfaccia della riga di comando di Azure.

    Di seguito è riportato un esempio di uso del comando . La MasterVersion colonna di output contiene la versione del control plane.

    az aks get-upgrades --resource-group aksrg --name testcluster1 --output table  
    
    Name     ResourceGroup    MasterVersion    Upgrades
    -------  ---------------  ---------------  -----------------------
    default  aksrg            1.23.12          1.23.15, 1.24.6, 1.24.9
    
  2. Aggiornare il pool di nodi eseguendo il comando az aks nodepool upgrade dell'interfaccia della riga di comando di Azure e fornire una versione di Kubernetes minore o uguale alla versione del piano di controllo.

    Di seguito è riportato un esempio di uso del comando :

    az aks nodepool upgrade \
        --resource-group aksrg \
        --cluster-name testcluster1 \
        --name mynodepool \
        --kubernetes-version 1.23.12 \
        --no-wait
    

Contattaci per ricevere assistenza

In caso di domande, è possibile porre domande al supporto della community di Azure. È anche possibile inviare commenti e suggerimenti sul prodotto alla community di commenti e suggerimenti di Azure.