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.
Questo articolo illustra come eseguire la migrazione dei pool di nodi del servizio Azure Kubernetes esistenti a Azure Contenitore Linux (ACL) per il servizio Azure Kubernetes. È possibile eseguire la migrazione dei nodi esistenti usando uno dei metodi seguenti:
- Migrazione dello SKU del sistema operativo sul posto: modifica lo SKU del sistema operativo dei pool di nodi esistenti in ACL, che ricrea automaticamente l'immagine dei nodi.
- Rimuovere i pool di nodi esistenti e aggiungere nuovi pool di nodi ACL: creare nuovi pool di nodi ACL, spostare i carichi di lavoro e rimuovere i pool di nodi precedenti.
Importante
Se si utilizza Azure Container Linux (ACL) in AKS, assicurarsi di consultare le seguenti considerazioni e limitazioni:
- 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.
Limitazioni per la migrazione dello SKU del sistema operativo sul posto
Oltre alle limitazioni generali ACL, quanto segue si applica in particolare alla migrazione sul posto dello SKU del sistema operativo:
- 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.
- I pool di nodi con
UseGPUDedicatedVHDabilitato non possono eseguire una migrazione dello SKU del sistema operativo. - La migrazione dello SKU del sistema operativo Windows non è supportata.
Prerequisiti
- Un cluster AKS esistente con almeno un pool di nodi Linux.
- interfaccia della riga di comando di Azure versione 2.86.0 o successiva. Eseguire
az --versionper trovare la versione. Se è necessario installare o aggiornare, vedere Installare interfaccia della riga di comando di Azure. - È 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.
- Assicurarsi che i pod dispongano di un Pod Disruption Budget (PDB) sufficiente a consentire ad AKS di spostare i pod tra le macchine virtuali durante la migrazione.
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.az aks nodepool add \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <new-node-pool-name> \ --os-sku AzureContainerLinux \ --mode System \ --node-count 3Output di esempio:
{ "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/myNewNodePool", "name": "myNewNodePool", "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
È possibile eseguire la migrazione dei pool di nodi Linux esistenti ad ACL modificando lo SKU del sistema operativo del pool di nodi, operazione che aggiorna progressivamente il cluster tramite 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.
Eseguire una migrazione dello SKU del sistema operativo in situ
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 la dimensione della macchina virtuale (VM) del pool di nodi deve 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.
Esegui la migrazione dello SKU del sistema operativo del tuo pool di nodi ad ACL usando il comando az aks nodepool update. Questo comando attiva una ricreazione dell'immagine del pool di nodi, aggiornando lo SKU del sistema operativo a AzureContainerLinux. 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/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/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
Tip
È consigliabile monitorare l'integrità del servizio per un paio di settimane prima di eseguire la migrazione dei cluster di produzione.
Una volta completata la migrazione nei cluster di test, è consigliabile monitorare il cluster e i carichi di lavoro per un paio di settimane per verificare che tutto sia in esecuzione come previsto prima della migrazione dei cluster di produzione. Usare i comandi seguenti per verificare la migrazione e monitorare il cluster:
Verificare che i nuovi nodi eseguano ACL usando il
kubectl get nodes -o widecomando . L'output dovrebbe mostrare l'immagine del sistema operativo ACL.kubectl get nodes -o wideVerificare che tutti i pod e i daemonset siano in esecuzione nel nuovo pool di nodi usando il
kubectl get pods -o wide -Acomando .kubectl get pods -o wide -AVerifica che tutte le etichette dei nodi nel pool di nodi aggiornato corrispondano a quanto previsto utilizzando il comando
kubectl get nodes --show-labels.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": "myNodePool", "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0", "osSku": "AzureContainerLinux" } ]
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. Se si esegue il rollback da ACL allo SKU del sistema operativo precedente, il pool di nodi usa la variante dell'immagine Avvio attendibile (Gen2) per impostazione predefinita, a meno che l'avvio attendibile non sia disabilitato in modo esplicito.
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
Contenuti correlati
Per altre informazioni sull'ACL, vedere Che è Azure Container Linux (ACL) per Servizio Azure Kubernetes (AKS)?