Självstudie: Migrera noder till Azure Linux
I den här självstudien, del tre av fem, migrerar du dina befintliga noder till Azure Linux. Du kan migrera dina befintliga noder till Azure Linux med någon av följande metoder:
- Ta bort befintliga nodpooler och lägg till nya Azure Linux-nodpooler.
- Os SKU-migrering på plats (förhandsversion).
Om du inte har några befintliga noder att migrera till Azure Linux går du vidare till nästa självstudie. I senare självstudier får du lära dig hur du aktiverar telemetri och övervakning i dina kluster och uppgraderar Azure Linux-noder.
Förutsättningar
I tidigare självstudier skapade och distribuerade du en Azure Linux Container Host för AKS-kluster. För att slutföra den här självstudien måste du lägga till en Azure Linux-nodpool i ditt befintliga kluster. Om du inte har gjort det här steget och vill följa med börjar du med Självstudie 2: Lägg till en Azure Linux-nodpool i ditt befintliga AKS-kluster.
Kommentar
När du lägger till en ny Azure Linux-nodpool måste du lägga till minst en som
--mode System
. Annars tillåter INTE AKS att du tar bort din befintliga nodpool.Du behöver den senaste versionen av Azure CLI. Kör
az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Lägga till Azure Linux-nodpooler och ta bort befintliga nodpooler
Lägg till en ny Azure Linux-nodpool med kommandot
az aks nodepool add
. Det här kommandot lägger till en ny nodpool i klustret med--mode System
flaggan, vilket gör den till en systemnodpool. Systemnodpooler krävs för Azure Linux-kluster.az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --mode System --os-sku AzureLinux
Ta bort dina befintliga noder med kommandot
az aks nodepool delete
.az aks nodepool delete --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name>
Os SKU-migrering på plats (förhandsversion)
Nu kan du migrera dina befintliga Ubuntu-nodpooler till Azure Linux genom att ändra os-SKU:n för nodpoolen, som rullar klustret via standardprocessen för nodavbildningsuppgradering. Den här nya funktionen kräver inte att nya nodpooler skapas.
Begränsningar
Det finns flera inställningar som kan blockera begäran om OS SKU-migrering. Granska följande riktlinjer och begränsningar för att säkerställa en lyckad migrering:
- Migreringsfunktionen för OS SKU är inte tillgänglig via Terraform, PowerShell eller Azure-portalen.
- Migreringsfunktionen för OS SKU kan inte byta namn på befintliga nodpooler.
- Ubuntu och Azure Linux är de enda SKU-migreringsmålen för Linux OS SKU som stöds.
- Fältet AgentPool
count
får inte ändras under migreringen. - En Ubuntu OS SKU med
UseGPUDedicatedVHD
aktiverad kan inte utföra en OS SKU-migrering. - En Ubuntu OS SKU med CVM 20.04 aktiverat kan inte utföra en OS SKU-migrering.
- Nodpooler med Kata aktiverat kan inte utföra en OS SKU-migrering.
- Windows OS SKU-migrering stöds inte.
Förutsättningar
aks-preview
Installera tillägget.- Registrera funktionsflaggan för
OSSKUMigrationPreview
din prenumeration. - Ett befintligt AKS-kluster med minst en Ubuntu-nodpool.
- Vi rekommenderar att du ser till att dina arbetsbelastningar konfigureras och körs på Azure Linux-containervärden innan du försöker använda OS SKU-migreringsfunktionen genom att distribuera ett Azure Linux-kluster i dev/prod och verifiera att tjänsten förblir felfri.
- Se till att migreringsfunktionen fungerar för dig i test/utveckling innan du använder processen i ett produktionskluster.
- Se till att dina poddar har tillräckligt med podduppstörningsbudget så att AKS kan flytta poddar mellan virtuella datorer under uppgraderingen.
- Du behöver Azure CLI version 0.5.172 eller senare. Kör
az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
aks-preview
Installera tillägget
Viktigt!
AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och anmäl dig. Förhandsversioner tillhandahålls "som är" och "som tillgängliga", och de undantas från serviceavtalen och den begränsade garantin. AKS-förhandsversioner omfattas delvis av kundsupport på bästa sätt. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
aks-preview
Installera tillägget med kommandotaz extension add
.az extension add --name aks-preview
Uppdatera tillägget så att du har den senaste versionen med kommandot
az extension update
.az extension update --name aks-preview
Registrera funktionsflaggan OSSKUMigrationPreview
Registrera funktionsflaggan för
OSSKUMigrationPreview
din prenumeration med kommandotaz feature register
.az feature register --namespace Microsoft.ContainerService --name OSSKUMigrationPreview
Kontrollera registreringsstatusen
az feature list
med kommandot .az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/OSSKUMigrationPreview')].{Name:name,State:properties.state}"
Dina utdata bör se ut ungefär som följande exempelutdata:
Name State ---------------------------------------------- ------- Microsoft.ContainerService/OSSKUMigrationPreview Registered
Uppdatera registreringen av funktionsflaggan
OSSKUMigrationPreview
med kommandotaz provider register
.az provider register --namespace Microsoft.ContainerService
Migrera OS SKU för din Ubuntu-nodpool
Migrera OS-SKU:n för nodpoolen till Azure Linux med hjälp av
az aks nodepool update
kommandot . Det här kommandot uppdaterar OS SKU för din nodpool från Ubuntu till Azure Linux. Os SKU-ändringen utlöser en omedelbar uppgraderingsåtgärd, vilket tar flera minuter att slutföra.az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --os-sku AzureLinux
Kommentar
Om du får problem under OS SKU-migreringen kan du återställa till din tidigare OS SKU.
Verifiera OS SKU-migreringen
När migreringen är klar i dina testkluster bör du kontrollera följande för att säkerställa en lyckad migrering:
- Om migreringsmålet är Azure Linux kör du
kubectl get nodes -o wide
kommandot . Utdata ska visasCBL-Mariner/Linux
som operativsystemavbildning och.cm2
i slutet av kernelversionen. kubectl get pods -o wide -A
Kör kommandot för att kontrollera att alla dina poddar och daemonuppsättningar körs i den nya nodpoolen.kubectl get nodes --show-labels
Kör kommandot för att kontrollera att alla nodetiketter i den uppgraderade nodpoolen är det du förväntar dig.
Dricks
Vi rekommenderar att du övervakar tjänstens hälsotillstånd i ett par veckor innan du migrerar dina produktionskluster.
Kör OS SKU-migreringen i dina produktionskluster
- Uppdatera dina befintliga mallar för att ange
OSSKU=AzureLinux
. I ARM-mallar använder"OSSKU: "AzureLinux"
du i avsnittetagentPoolProfile
. I Bicep använderosSku: "AzureLinux"
du i avsnittetagentPoolProfile
. Kontrollera att dinapiVersion
är inställd på2023-07-01
eller senare. - Distribuera om ARM-mallen för klustret för att tillämpa den nya
OSSKU
inställningen. Under den här distributionen fungerar klustret som om det tar en nodavbildningsuppgradering. Klustret ökar kapaciteten och startar sedan om dina befintliga noder en i taget till den senaste AKS-avbildningen från din nya OS SKU.
Återställning
Om du får problem under OS SKU-migreringen kan du återställa till din tidigare OS SKU. För att göra detta måste du ändra OS SKU-fältet i mallen och skicka distributionen igen, vilket utlöser en annan uppgraderingsåtgärd och återställer nodpoolen till dess tidigare OS SKU.
Återställ till din tidigare OS SKU med kommandot
az aks nodepool update
. Det här kommandot uppdaterar OS SKU för din nodpool från Azure Linux tillbaka till Ubuntu.az aks nodepool update --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --os-sku Ubuntu
Nästa steg
I den här självstudien migrerade du befintliga noder till Azure Linux med någon av följande metoder:
- Ta bort befintliga nodpooler och lägg till nya Azure Linux-nodpooler.
- Os SKU-migrering på plats (förhandsversion).
I nästa självstudie får du lära dig hur du aktiverar telemetri för att övervaka dina kluster.