Share via


Esercitazione: Eseguire la migrazione di nodi in Azure Linux

In questa esercitazione, parte 3 di cinque, si esegue la migrazione dei nodi esistenti in Azure Linux. È possibile eseguire la migrazione dei nodi esistenti in Azure Linux usando uno dei metodi seguenti:

  • Rimuovere i pool di nodi esistenti e aggiungere nuovi pool di nodi Linux di Azure.
  • Migrazione dello SKU del sistema operativo sul posto (anteprima).

Se non sono presenti nodi esistenti per eseguire la migrazione ad Azure Linux, passare all'esercitazione successiva. Nelle esercitazioni successive si apprenderà come abilitare la telemetria e il monitoraggio nei cluster e aggiornare i nodi Linux di Azure.

Prerequisiti

  • Nelle esercitazioni precedenti è stato creato e distribuito un host contenitore Linux di Azure per il cluster del servizio Azure Kubernetes. Per completare questa esercitazione, è necessario aggiungere un pool di nodi Linux di Azure al cluster esistente. Se non è stato fatto questo passaggio e si vuole seguire questa procedura, iniziare con Esercitazione 2: Aggiungere un pool di nodi Linux di Azure al cluster del servizio Azure Kubernetes esistente.

    Nota

    Quando si aggiunge un nuovo pool di nodi Linux di Azure, è necessario aggiungere almeno uno come --mode System. In caso contrario, il servizio Azure Kubernetes non consente di eliminare il pool di nodi esistente.

  • È necessaria la versione più recente dell'interfaccia della riga di comando di Azure. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Aggiungere pool di nodi Linux di Azure e rimuovere pool di nodi esistenti

  1. Aggiungere un nuovo pool di nodi Linux di Azure usando il az aks nodepool add comando . Questo comando aggiunge un nuovo pool di nodi al cluster con il --mode System flag , che lo rende un pool di nodi di sistema. I pool di nodi di sistema sono necessari per i cluster Linux di Azure.

    az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --mode System --os-sku AzureLinux
    
  2. Rimuovere i nodi esistenti usando il az aks nodepool delete comando .

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

Migrazione dello SKU del sistema operativo sul posto (anteprima)

È ora possibile eseguire la migrazione dei pool di nodi Ubuntu esistenti in Azure Linux modificando lo SKU del sistema operativo del pool di nodi, che esegue il rollback del cluster tramite il processo di aggiornamento dell'immagine del nodo standard. Questa nuova funzionalità non richiede la creazione di nuovi pool di nodi.

Limiti

Esistono diverse impostazioni che possono bloccare la richiesta di migrazione dello SKU del sistema operativo. Per garantire una migrazione corretta, esaminare le linee guida e le limitazioni seguenti:

  • La funzionalità di migrazione dello SKU del sistema operativo non è disponibile tramite Terraform, PowerShell o il portale di Azure.
  • La funzionalità di migrazione dello SKU del sistema operativo non è in grado di rinominare i pool di nodi esistenti.
  • Ubuntu e Azure Linux sono le uniche destinazioni di migrazione dello SKU del sistema operativo Linux supportate.
  • Il campo AgentPool count non deve cambiare durante la migrazione.
  • Uno SKU del sistema operativo Ubuntu con UseGPUDedicatedVHD abilitato non può eseguire una migrazione dello SKU del sistema operativo.
  • Uno SKU del sistema operativo Ubuntu con CVM 20.04 abilitato non può eseguire una migrazione dello SKU del sistema operativo.
  • I pool di nodi con Kata abilitato non possono eseguire una migrazione dello SKU del sistema operativo.
  • La migrazione dello SKU del sistema operativo Windows non è supportata.

Prerequisiti

Installare l'estensione aks-preview

Importante

Le funzionalità di anteprima del servizio Azure Kubernetes sono disponibili in modalità self-service e acconsentono esplicitamente. Le anteprime vengono fornite "così com'è" e "come disponibili" e vengono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto tecnico per un'operazione ottimale. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:

  1. Installare l'estensione aks-preview usando il az extension add comando .

    az extension add --name aks-preview
    
  2. Aggiornare l'estensione per assicurarsi di avere la versione più recente usando il az extension update comando .

    az extension update --name aks-preview
    

Registrare il flag di OSSKUMigrationPreview funzionalità

  1. Registrare il OSSKUMigrationPreview flag di funzionalità nella sottoscrizione usando il az feature register comando .

    az feature register --namespace Microsoft.ContainerService --name OSSKUMigrationPreview
    
  2. Controllare lo stato della registrazione usando il az feature list comando .

    az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/OSSKUMigrationPreview')].{Name:name,State:properties.state}"
    

    L'output dovrebbe essere simile all'output di esempio seguente:

    Name                                            State
    ----------------------------------------------  -------
    Microsoft.ContainerService/OSSKUMigrationPreview  Registered
    
  3. Aggiornare la registrazione del OSSKUMigrationPreview flag di funzionalità usando il az provider register comando .

    az provider register --namespace Microsoft.ContainerService
    

Eseguire la migrazione dello SKU del sistema operativo del pool di nodi Ubuntu

  • Eseguire la migrazione dello SKU del sistema operativo del pool di nodi in Azure Linux usando il az aks nodepool update comando . Questo comando aggiorna lo SKU del sistema operativo per il pool di nodi da Ubuntu ad Azure Linux. La modifica dello SKU del sistema operativo attiva un'operazione di aggiornamento immediato, che richiede alcuni minuti.

    az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --os-sku AzureLinux
    

    Nota

    Se si verificano problemi durante la migrazione dello SKU del sistema operativo, è possibile eseguire il rollback allo SKU del sistema operativo precedente.

Verificare la migrazione dello SKU del sistema operativo

Una volta completata la migrazione nei cluster di test, è necessario verificare quanto segue per assicurarsi che la migrazione abbia esito positivo:

  • Se la destinazione della migrazione è Azure Linux, eseguire il kubectl get nodes -o wide comando . L'output dovrebbe essere visualizzato CBL-Mariner/Linux come immagine del sistema operativo e .cm2 alla fine della versione del kernel.
  • Eseguire il kubectl get pods -o wide -A comando per verificare che tutti i pod e i daemonset siano in esecuzione nel nuovo pool di nodi.
  • Eseguire il kubectl get nodes --show-labels comando per verificare che tutte le etichette dei nodi nel pool di nodi aggiornato siano le aspettative.

Suggerimento

È consigliabile monitorare l'integrità del servizio per un paio di settimane prima della migrazione dei cluster di produzione.

Eseguire la migrazione dello SKU del sistema operativo nei cluster di produzione

  1. Aggiornare i modelli esistenti per impostare OSSKU=AzureLinux. Nei modelli arm si usa "OSSKU: "AzureLinux" nella agentPoolProfile sezione . In Bicep si usa osSku: "AzureLinux" nella agentPoolProfile sezione . Assicurarsi che apiVersion sia impostato su 2023-07-01 o versione successiva.
  2. Ridistribuire il modello di Resource Manager per il cluster per applicare la nuova OSSKU impostazione. Durante questa distribuzione, il cluster si comporta come se sta eseguendo un aggiornamento di un'immagine del nodo. Il cluster aumenta la capacità e quindi riavvia i nodi esistenti uno alla sola nell'immagine più recente del servizio Azure Kubernetes dal nuovo SKU del sistema operativo.

Rollback

Se si verificano problemi durante la migrazione dello SKU del sistema operativo, è possibile eseguire il rollback allo SKU del sistema operativo precedente. A tale scopo, è necessario modificare il campo SKU del sistema operativo nel modello e inviare di nuovo la distribuzione, che attiva un'altra operazione di aggiornamento e ripristina il pool di nodi nello SKU precedente del sistema operativo.

  • Eseguire il rollback allo SKU del sistema operativo precedente usando il az aks nodepool update comando . Questo comando aggiorna lo SKU del sistema operativo per il pool di nodi da Azure Linux a Ubuntu.

    az aks nodepool update --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --os-sku Ubuntu
    

Passaggi successivi

In questa esercitazione è stata eseguita la migrazione di nodi esistenti in Linux di Azure usando uno dei metodi seguenti:

  • Rimuovere i pool di nodi esistenti e aggiungere nuovi pool di nodi Linux di Azure.
  • Migrazione dello SKU del sistema operativo sul posto (anteprima).

Nell'esercitazione successiva si apprenderà come abilitare la telemetria per monitorare i cluster.