Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
- Nelle esercitazioni precedenti è stato creato e distribuito un cluster ACL. Se questi passaggi non sono stati completati e si vuole seguire questa procedura, vedere Esercitazione 1: Creare un cluster con ACL per il servizio Azure Kubernetes.
- Azure Container Linux richiede interfaccia della riga di comando di Azure versione 2.86.0 o versione successiva. Usare il
az versioncomando per trovare la versione. Per eseguire l'aggiornamento alla versione più recente, usare ilaz upgradecomando .
considerazioni e limitazioni di Azure Container Linux (ACL)
Prima di iniziare, esamina le seguenti considerazioni e limitazioni per ACL:
- ACL è generalmente disponibile a partire da AKS v1.34.
- ACL richiede Trusted Launch con Secure Boot e il vTPM. Le varianti Non-Trusted Launch non sono disponibili.
- ACL su Arm64 richiede SKU basati su Cobalt (v6) per abilitare la compatibilità con Trusted Launch.
-
NodeImageeNonesono gli unici canali di aggiornamento del sistema operativo supportati.UnmanagedeSecurityPatchsono incompatibili con ACL a causa della directory/usrnon modificabile. - Artifact Streaming non è supportato.
- Il sandboxing dei pod non è supportato.
- Le macchine virtuali riservate non sono supportate.
- Le macchine virtuali di seconda generazione non sono supportate.
Aggiungere pool di nodi ACL e rimuovere pool di nodi esistenti
Aggiungere un nuovo pool di nodi ACL usando il
az aks nodepool addcomando . Usare--mode Systemin 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 3Output di esempio:
{ "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/aclsystem", "name": "aclsystem", "osSku": "AzureContainerLinux", "provisioningState": "Succeeded" }Rimuovere il pool di nodi esistente usando il
az aks nodepool deletecomando .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-boote--enable-vtpmquando si esegue la migrazione allo SKU delAzureContainerLinuxsistema 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
UseGPUDedicatedVHDabilitato 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 versioncomando per trovare la versione. Per eseguire l'aggiornamento alla versione più recente, usare ilaz upgradecomando .
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:
Verificare che i nuovi nodi eseguano ACL usando il comando seguente:
kubectl get nodes -o wideVerificare che tutti i pod e i daemonset siano in esecuzione nel nuovo pool di nodi usando il comando seguente:
kubectl get pods -o wide -AVerifica che tutte le etichette dei nodi nel tuo pool di nodi aggiornato siano quelle previste utilizzando il comando seguente:
kubectl get nodes --show-labelsControllare la versione dell'immagine del nodo usando il
az aks nodepool listcomando .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.