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

Annotazioni

Azure Linux con OS Guard (anteprima) è in fase di sostituzione con Azure Container Linux (ACL).

Azure Container Linux è il sistema operativo Linux a lungo termine, non modificabile e ottimizzato per i contenitori per Servizio Azure Kubernetes (AKS). Offre un sistema operativo host sicuro, minimo e coerente a livello operativo progettato per eseguire carichi di lavoro in contenitori su larga scala.

Per altre informazioni, vedere la panoramica Azure Container Linux (ACL).

In questa esercitazione, nella parte tre di cinque, si esegue la migrazione dei nodi esistenti ad 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 OS Guard.
  • Eseguire una migrazione diretta dello SKU del sistema operativo.

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.

Azure Linux con considerazioni e limitazioni di OS Guard

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 non hai completato questi passaggi e desideri seguire la procedura, consulta 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 aks-preview interfaccia della riga di comando di Azure

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 di funzionalità AzureLinuxOSGuardPreview

  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, aggiornare la registrazione del Microsoft.ContainerService fornitore 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"
    
    # Add a new Azure Linux with OS Guard node pool
    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 
    

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. Quando si usa la funzionalità di migrazione dello SKU del sistema operativo con Azure Linux con OS Guard pPreview, 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.

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.
  • 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 dello SKU del sistema operativo del pool di nodi dell'host del contenitore di Azure Linux ad Azure Linux con protezione del sistema operativo

È 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 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.