Esercitazione: Eseguire la migrazione dei nodi ad Azure Container Linux (ACL)

In questa esercitazione, parte tre di cinque, si esegue la migrazione dei nodi esistenti a ACL. È possibile eseguire la migrazione dei nodi esistenti usando uno dei metodi seguenti:

  • Rimuovere i pool di nodi esistenti e aggiungere nuovi pool di nodi ACL.
  • Eseguire una migrazione diretta dello SKU del sistema operativo.

I comandi di questa esercitazione usano le variabili di ambiente impostate in Esercitazione 1: Creare un cluster con ACL per il servizio Azure Kubernetes.

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

Prerequisiti

considerazioni e limitazioni di Azure Container Linux (ACL)

Prima di iniziare, esamina le seguenti considerazioni e limitazioni per ACL:

Aggiungere pool di nodi ACL e rimuovere pool di nodi esistenti

  1. Aggiungere un nuovo pool di nodi ACL usando il az aks nodepool add comando . Usare --mode System in modo che il nuovo pool possa fungere da pool di agenti di sistema, che consente di eliminare il pool di nodi originale nel passaggio successivo. L'esempio seguente crea un pool di nodi denominato aclsystem che aggiunge tre nodi al cluster:

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --name aclsystem \
        --mode System \
        --os-sku AzureContainerLinux \
        --node-count 3
    

    Output di esempio:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/aclsystem",
      "name": "aclsystem",
      "osSku": "AzureContainerLinux",
      "provisioningState": "Succeeded"
    }
    
  2. Rimuovere il pool di nodi esistente usando il az aks nodepool delete comando .

    az aks nodepool delete \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --name <existing-node-pool-name>
    

Migrazione dello SKU del sistema operativo sul posto

Limitazioni per la migrazione dello SKU del sistema operativo sul posto

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 PowerShell o il portale di Azure.
  • La funzionalità di migrazione dello SKU del sistema operativo non supporta la ridenominazione dei pool di nodi esistenti.
  • Ubuntu, Azure Linux e AzureContainerLinux sono le uniche destinazioni di migrazione supportate dello SKU del sistema operativo Linux.
  • ACL richiede Trusted Launch. Se non è già abilitato nel pool di nodi, è necessario includere --enable-secure-boot e --enable-vtpm quando si esegue la migrazione allo SKU del AzureContainerLinux sistema operativo. Anche le dimensioni della VM del pool di nodi devono supportare Trusted Launch. Se le dimensioni correnti della macchina virtuale non lo supportano, è necessario ridimensionare o ricreare il pool di nodi con dimensioni di macchina virtuale supportate prima della migrazione.
  • Le macchine virtuali di seconda generazione non sono supportate.
  • Uno SKU del sistema operativo Ubuntu con UseGPUDedicatedVHD abilitato non può eseguire una migrazione dello SKU del sistema operativo.
  • Le macchine virtuali riservate non sono supportate.
  • Il sandboxing dei pod non è supportato.
  • La migrazione dello SKU del sistema operativo Windows non è supportata.

Prerequisiti per la migrazione dello SKU del sistema operativo in loco

  • Un cluster AKS esistente con almeno un pool di nodi Linux.
  • È consigliabile verificare che i carichi di lavoro vengano eseguiti correttamente nell'ACL distribuendo un cluster ACL in un ambiente di sviluppo o staging prima di eseguire la migrazione dei cluster di produzione.
  • Assicurarsi che la funzionalità di migrazione funzioni in fase di test/sviluppo prima di usare il processo in un cluster di produzione.
  • Verificare che i pod dispongano di un Pod Disruption Budget (PDB) sufficiente per consentire ad AKS di spostare i pod tra le macchine virtuali durante l'aggiornamento.
  • È necessaria la versione dell'interfaccia della riga di comando di Azure 2.61.0 o successiva. Usare il az version comando per trovare la versione. Per eseguire l'aggiornamento alla versione più recente, usare il az upgrade comando .

Eseguire la migrazione ad ACL tramite la migrazione sul posto dello SKU del sistema operativo

È possibile migrare i pool di nodi Ubuntu o Azure Linux esistenti ad ACL modificando lo SKU del sistema operativo del pool di nodi, operazione che fa passare il cluster attraverso il processo standard di aggiornamento dell’immagine dei nodi. Questo metodo non richiede la creazione di nuovi pool di nodi; i pool di nodi esistenti vengono invece sottoposti automaticamente a reimaging.

Importante

ACL richiede Trusted Launch. È necessario includere --enable-secure-boot e --enable-vtpm quando si esegue la migrazione allo SKU del AzureContainerLinux sistema operativo. Anche le dimensioni della VM del pool di nodi devono supportare Trusted Launch.

Esegui la migrazione dello SKU del sistema operativo del tuo pool di nodi ad ACL usando il comando az aks nodepool update. Questo comando avvia la reimpostazione dell'immagine del pool di nodi. 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 \
    --cluster-name $CLUSTER_NAME \
    --name <existing-node-pool-name> \
    --os-sku AzureContainerLinux \
    --enable-secure-boot \
    --enable-vtpm

Output di esempio:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureContainerLinux",
  "provisioningState": "Succeeded"
}

Annotazioni

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, verificare quanto segue per assicurarsi che la migrazione abbia esito positivo:

  1. Verificare che i nuovi nodi eseguano ACL usando il comando seguente:

    kubectl get nodes -o wide
    
  2. Verificare che tutti i pod e i daemonset siano in esecuzione nel nuovo pool di nodi usando il comando seguente:

    kubectl get pods -o wide -A
    
  3. Verifica che tutte le etichette dei nodi nel tuo pool di nodi aggiornato siano quelle previste utilizzando il comando seguente:

    kubectl get nodes --show-labels
    
  4. Controllare la versione dell'immagine del nodo usando il az aks nodepool list comando .

    az aks nodepool list \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --query '[].{name: name, osSku: osSku, nodeImageVersion: nodeImageVersion}'
    

    Output di esempio:

    [
      {
        "name": "nodepool1",
        "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0",
        "osSku": "AzureContainerLinux"
      }
    ]
    

Tip

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

Eseguire il rollback allo SKU del sistema operativo precedente

Se si verificano problemi durante la migrazione dello SKU del sistema operativo, è possibile eseguire il rollback allo SKU del sistema operativo precedente. Per farlo, riporta il campo SKU del sistema operativo al valore precedente e invia nuovamente la distribuzione; in questo modo verrà attivata un'altra operazione di aggiornamento e il pool di nodi verrà reimpostato sul precedente SKU del sistema operativo.

Eseguire il rollback allo SKU del sistema operativo precedente usando il comando az aks nodepool update. Questo esempio esegue il rollback da ACL a Azure Linux:

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --name <existing-node-pool-name> \
    --os-sku AzureLinux

Passo successivo

In questa esercitazione è stata eseguita la migrazione di nodi esistenti a ACL. Nell'esercitazione successiva si apprenderà come abilitare la telemetria e il monitoraggio per il cluster ACL.