Aggiornare un cluster del servizio Azure Kubernetes

Si applica a: Azure Stack HCI, versione 23H2

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 in 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 o l'applicazione di patch ai nodi in un cluster del carico di lavoro con gli aggiornamenti più recenti del sistema operativo e del runtime.

Tutti gli aggiornamenti vengono eseguiti in modo continuo e in sequenza per garantire la disponibilità ininterrotta dei carichi di lavoro. Quando un nuovo nodo di lavoro Kubernetes con una build più recente viene inserito nel cluster, le risorse vengono spostate dal nodo precedente al nuovo nodo. Al termine, il nodo precedente viene rimosso e rimosso dal cluster.

Prima di iniziare

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 del servizio Azure Kubernetes 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, sono consentiti gli aggiornamenti da 1.24.x a 1.25.x o 1.25.x a 1.26.x . Da 1.24.x a 1.26.x non è consentito.

Nota

Se non viene specificata alcuna patch, il cluster esegue automaticamente l'aggiornamento alla patch ga ga più recente della versione secondaria specificata. Ad esempio, l'impostazione --kubernetes-version su 1.25 comporta l'aggiornamento del cluster alla versione 1.25.7.

È possibile aggiornare il cluster usando il comando seguente:

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

Verificare che l'aggiornamento sia riuscito usando il show comando :

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

Quando si esegue un aggiornamento da una versione non supportata che ignora due o più versioni secondarie, l'aggiornamento non può garantire funzionalità appropriate. Se la versione non è aggiornata in modo significativo, è consigliabile ricreare il cluster.

Durante un'operazione di aggiornamento, sia gli provisioningState indicatori che 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 l'aggiornamento man mano che l'aggiornamento continua in background. Non è necessaria alcuna azione; l'aggiornamento continua fino al completamento.

Aggiornare la versione del sistema operativo

L'aggiornamento dei nodi di lavoro a una versione più recente dell'immagine del nodo senza modificare la versione di Kubernetes funziona solo se la nuova immagine non richiede una versione kubernetes diversa. Attualmente, Arc del servizio Azure Kubernetes non supporta gli aggiornamenti di tipo 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

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

Passaggi successivi