Condividi tramite


Aggiornare un cluster del servizio Azure Kubernetes

Si applica a: AKS locale su Azure

Nell'ambito della gestione del ciclo di vita dell'applicazione e del cluster, potrebbe essere necessario eseguire l'aggiornamento alla versione più recente disponibile di Kubernetes. Un aggiornamento prevede uno spostamento a una versione più recente di Kubernetes, l'applicazione di aggiornamenti della versione del sistema operativo (applicazione di patch) o entrambi. AKS Arc supporta l'aggiornamento e la correzione dei nodi in un cluster di lavoro con gli aggiornamenti più recenti di sistema operativo e runtime.

Tutti gli aggiornamenti vengono eseguiti in modo continuo e in sequenza per garantire una disponibilità ininterrotta dei carichi di lavoro. Quando un nuovo nodo di lavoro Kubernetes con una build più recente aggiunge il cluster, il processo sposta le risorse dal nodo precedente al nuovo nodo. Al termine di questo passaggio, il processo decommisona e rimuove il vecchio nodo dal cluster.

Operazioni preliminari

Se si usa l'interfaccia della riga di comando di Azure, questo articolo richiede l'interfaccia della riga di comando di Azure versione 2.34.1 o successiva. Eseguire az --version per trovare la versione. Se è necessario installare o aggiornare l'interfaccia della riga di comando, vedere Installare l'interfaccia della riga di comando di Azure.

Verificare la disponibilità di aggiornamenti

Verificare quali versioni di Kubernetes sono disponibili per il cluster usando il comando seguente:

az aksarc get-upgrades --resource-group myResourceGroup --name myAKSCluster

L'output di esempio seguente mostra la versione corrente come 1.24.11 ed elenca le versioni disponibili in 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",  
  ...  
}

Aggiornare la versione di Kubernetes

Quando si aggiorna un cluster AKS supportato, non è possibile ignorare le versioni secondarie di Kubernetes. È necessario eseguire tutti gli aggiornamenti in sequenza in base al numero di versione principale. Ad esempio, è possibile eseguire l'aggiornamento da 1.24.x a 1.25.x o da 1.25.x a 1.26.x. Non è possibile eseguire l'aggiornamento dalla versione 1.24.x alla versione 1.26.x.

Nota

Se non si specifica una versione patch, il cluster aggiorna automaticamente alla versione patch più recente di GA per la versione secondaria specificata. Ad esempio, l'impostazione --kubernetes-version su 1.25 aggiorna il cluster alla versione 1.25.7.

Usare il comando seguente per aggiornare il cluster:

az aksarc upgrade \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --kubernetes-version <KUBERNETES_VERSION>

Usare il show comando per verificare che l'aggiornamento sia riuscito:

az aksarc show --resource-group myResourceGroup --name myAKSCluster

L'output di esempio seguente mostra che il cluster esegue ora la versione 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"  
}

Importante

Se si esegue l'aggiornamento da una versione non supportata che ignora due o più versioni secondarie, l'aggiornamento potrebbe non funzionare correttamente. Se la tua versione è significativamente obsoleta, ti consigliamo di ricreare il cluster.

Durante un'operazione di aggiornamento, gli provisioningState indicatori e currentState visualizzano un messaggio di aggiornamento per riflettere il processo in corso. Tuttavia, se si verifica il timeout dell'operazione, provisioningState viene visualizzato Non riuscito, mentre currentState continua a visualizzare Aggiornamento mentre l'aggiornamento continua in background. Non è necessaria alcuna azione; l'aggiornamento continua fino al completamento.

Aggiornare la versione del sistema operativo

È possibile aggiornare i nodi di lavoro a una versione più recente dell'immagine del nodo senza modificare la versione di Kubernetes solo se la nuova immagine non richiede una versione diversa di Kubernetes. Attualmente, Azure Kubernetes Arc non supporta gli aggiornamenti node-image-only in tutte le versioni di Kubernetes supportate. Se è necessario aggiornare l'immagine del nodo, è necessario aggiornare il cluster alla versione più recente di Kubernetes per assicurarsi che tutti gli aggiornamenti delle immagini del nodo siano incorporati.

Importante

Se si tenta di usare il node-image-only flag, viene visualizzato un messaggio che indica che questa funzionalità non è ancora supportata.

Passaggi successivi