Condividi tramite


Esercitazione: Eseguire la migrazione di nodi in Linux di Azure con OS Guard (anteprima)

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

  • Rimuovere i pool di nodi esistenti e aggiungere nuovi pool di nodi di Azure Linux con OS Guard.
  • Migrazione dello SKU del sistema operativo sul posto.

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 Azure Linux con i nodi OS Guard.

Considerazioni e limitazioni

Prima di iniziare, esaminare le considerazioni e le limitazioni seguenti per Azure Linux con OS Guard (anteprima):

Prerequisiti

  • Nell'esercitazione precedente è stato creato e distribuito un cluster Linux di Azure con OS Guard. Se questi passaggi non sono stati completati e se vuoi seguire questa procedura, vedere Esercitazione 1: Creare un cluster con Azure Linux con OS Guard per AKS.
  • È necessaria la versione più recente dell'interfaccia della riga di comando di Azure. Usare il az version comando per trovare la versione. Per eseguire l'aggiornamento alla versione più recente, usare il az upgrade comando .

Installare l'estensione dell'interfaccia della riga di comando di Azure aks-preview

Importante

Le funzionalità di anteprima di AKS sono disponibili su base self-service, su scelta. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:

  • Installare l'estensioneaks-preview usando il comando az extension add.

    az extension add --name aks-preview
    
  • Eseguire l'aggiornamento alla versione più recente dell'estensione usando il comando az extension update.

    az extension update --name aks-preview
    

Registrare il flag della funzionalità Preview di Azure Linux OS Guard

  1. Registrare il flag della funzionalità AzureLinuxOSGuardPreview usando il comando az feature register.

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    

    Sono necessari alcuni minuti per visualizzare lo stato Registered.

  2. Verificare lo stato della registrazione usando il comando az feature show.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    
  3. Quando lo stato riflette Registrato, aggiornate la registrazione del Microsoft.ContainerService provider di risorse usando il comando az provider register.

    az provider register --namespace "Microsoft.ContainerService"
    

Aggiungere Azure Linux con pool di nodi di OS Guard e rimuovere i pool di nodi esistenti

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

    # Declare environment variables with a random suffix for uniqueness
    export RANDOM_SUFFIX=$(openssl rand -hex 3)
    export NODE_POOL_NAME="np$RANDOM_SUFFIX"
    az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
    

    Output di esempio:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
      "name": "systempool",
      "provisioningState": "Succeeded"
    }
    
  2. Rimuovere i nodi esistenti usando il comando az aks nodepool delete.

    az aks nodepool delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME 
    

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. Quando si utilizza la funzionalità di migrazione dello SKU del sistema operativo con Azure Linux con OS Guard (Anteprima), non è disponibile tramite Terraform, 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 Azure Linux con OS Guard sono le uniche destinazioni di migrazione dello SKU del sistema operativo Linux supportate.
  • L'avvio attendibile è richiesto per impostazione predefinita per Azure Linux con OS Guard. È necessario abilitare Avvio attendibile per eseguire la migrazione ad Azure Linux con OS Guard. Ciò potrebbe richiedere la creazione di nuovi pool di nodi.
  • FIPS è necessario quando si abilita Azure Linux con OS Guard. Se attualmente non si usa un'immagine FIPS, è possibile includere --enable-fips nel comando di aggiornamento del pool di nodi.
  • Le macchine virtuali di prima 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.
  • La migrazione dello SKU del sistema operativo da Mariner ad Azure Linux è supportata, ma il rollback a Mariner non è supportato.

Prerequisiti per la migrazione dello SKU del sistema operativo in loco

  • Un cluster del servizio Azure Kubernetes esistente con almeno un pool di nodi di Azure Linux.
  • È consigliabile assicurarsi che i carichi di lavoro vengano configurati ed eseguiti correttamente nell'host contenitore di Azure Linux con OS Guard prima di tentare di usare la funzionalità di migrazione dello SKU del sistema operativo distribuendo un cluster Linux di Azure con OS Guard in dev/prod e verificando che il servizio rimanga integro.
  • Assicurarsi che la funzionalità di migrazione funzioni in fase di test/sviluppo prima di usare il processo in un cluster di produzione.
  • Assicurarsi che i pod abbiano abbastanza budget di interruzione dei pod per consentire al servizio Azure Kubernetes 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 una migrazione dello SKU del sistema operativo in situ

È possibile eseguire la migrazione dei pool di nodi Ubuntu o dei pool di nodi di Azure Linux esistenti in Azure Linux con protezione del sistema operativo 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; Al contrario, i pool di nodi esistenti ricreano automaticamente l'immagine.

Eseguire la migrazione dello SKU del sistema operativo del pool di nodi dell'host del contenitore di Azure Linux ad Azure Linux con protezione del sistema operativo

  • Eseguire la migrazione dello SKU del sistema operativo del pool di nodi ad Azure Linux con protezione del sistema operativo usando il comando az aks nodepool update. Questo comando attiva una reimmagine del pool di nodi, aggiornando lo SKU del sistema operativo del pool di nodi da Azure Linux a Azure Linux con OS Guard. 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 $NODE_POOL_NAME --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
    

    Output di esempio:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
      "name": "nodepool1",
      "osSku": "AzureLinuxOSGuard",
      "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, è necessario verificare quanto segue per assicurarsi che la migrazione abbia esito positivo:

  • Se la destinazione di migrazione è Azure Linux con OS Guard, eseguire il kubectl get nodes -o wide comando . L'output dovrebbe mostrare Microsoft Azure Linux 3.0 come immagine del sistema operativo e .azl3 alla fine della versione del kernel.
  • Eseguire il comando kubectl get pods -o wide -A per verificare che tutti i pod e i daemonset siano in esecuzione nel nuovo pool di nodi.
  • Eseguire il comando kubectl get nodes --show-labels 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 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. 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 ricrea l'immagine del pool di nodi nello SKU precedente del sistema operativo.

Annotazioni

La migrazione dello SKU del sistema operativo non supporta il rollback allo SKU del sistema operativo Mariner.

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

Passaggi successivi

In questa esercitazione è stata eseguita la migrazione di nodi esistenti in Azure Linux con OS Guard. Nell'esercitazione successiva si apprenderà come abilitare la telemetria per monitorare i cluster.