Migrera befintliga noder till Azure Container Linux (ACL) för Azure Kubernetes Service (AKS)

I den här artikeln får du lära dig hur du migrerar dina befintliga AKS-nodpooler till Azure Container Linux (ACL) för AKS. Du kan migrera dina befintliga noder med någon av följande metoder:

  • Migrering av OS-SKU på plats: Ändra OS-SKU för dina befintliga nodpooler till ACL, vilket installerar om noderna automatiskt.
  • Ta bort befintliga nodpooler och lägg till nya ACL-nodpooler: Skapa nya ACL-nodpooler, flytta dina arbetsbelastningar och ta bort de gamla nodpoolerna.

Important

Om du använder Azure Container Linux (ACL) på AKS kontrollerar du att du granskar följande överväganden och begränsningar:

Begränsningar för OS SKU-migrering på plats

Utöver de allmänna ACL-begränsningarna gäller följande särskilt för migrering av OS-SKU på plats:

  • Os SKU-migreringsfunktionen är inte tillgänglig via PowerShell eller Azure Portal.
  • Migreringsfunktionen för OS SKU har inte stöd för att byta namn på befintliga nodpooler.
  • Nodpooler med UseGPUDedicatedVHD aktiverat kan inte utföra en OS SKU-migrering.
  • Windows OS SKU-migrering stöds inte.

Förutsättningar

  • Ett befintligt AKS-kluster med minst en Linux-nodpool.
  • Azure CLI version 2.86.0 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera, se Installera Azure CLI.
  • Vi rekommenderar att du verifierar att dina arbetsbelastningar körs på ACL genom att distribuera ett ACL-kluster i en utvecklings- eller mellanlagringsmiljö innan du migrerar produktionskluster.
  • 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 poddstörningsbudget (PDB) så att AKS kan flytta poddar mellan virtuella datorer under migreringen.

Lägga till ACL-nodpooler och ta bort befintliga nodpooler

  1. Lägg till en ny ACL-nodpool med kommandot az aks nodepool add . Använd --mode System så att den nya poolen kan fungera som systemagentpool, vilket gör att du kan ta bort den ursprungliga nodpoolen i nästa steg.

    az aks nodepool add \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <new-node-pool-name> \
        --os-sku AzureContainerLinux \
        --mode System \
        --node-count 3
    

    Exempel på utdata:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/myNewNodePool",
      "name": "myNewNodePool",
      "osSku": "AzureContainerLinux",
      "provisioningState": "Succeeded"
    }
    
  2. Ta bort din befintliga nodpool med kommandot az aks nodepool delete .

    az aks nodepool delete \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <existing-node-pool-name>
    

Migrering av operativsystem-SKU direkt

Du kan migrera dina befintliga Linux-nodpooler till ACL genom att ändra OS-SKU:n för nodpoolen, som rullar klustret via standardprocessen för nodavbildningsuppgradering. Den här metoden kräver inte att nya nodpooler skapas. i stället återskapas dina befintliga nodpooler automatiskt.

Utföra en in-place migrering av operativsystem-SKU

Important

ACL kräver betrodd start. Du måste inkludera --enable-secure-boot och --enable-vtpm när du migrerar till AzureContainerLinux OS-SKU:n. Storleken på den virtuella datorn (VM) i nodpoolen måste också ha stöd för Trusted Launch. Om din aktuella VM-storlek inte stöder den måste du ändra storlek på eller återskapa nodpoolen med en vm-storlek som stöds innan du migrerar.

Migrera OS SKU:n för nodpoolen till ACL med hjälp av az aks nodepool update kommandot . Det här kommandot utlöser en återimering av nodpoolen och uppdaterar OS-SKU:n till AzureContainerLinux. 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> \
    --cluster-name <cluster-name> \
    --name <existing-node-pool-name> \
    --os-sku AzureContainerLinux \
    --enable-secure-boot \
    --enable-vtpm

Exempel på utdata:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureContainerLinux",
  "provisioningState": "Succeeded"
}

Note

Om du får problem under OS SKU-migreringen kan du återställa till din tidigare OS SKU.

Verifiera OS SKU-migreringen

Tip

Vi rekommenderar att du övervakar hälsotillståndet för din tjänst i ett par veckor innan du migrerar dina produktionskluster.

När migreringen är klar i dina testkluster rekommenderar vi att du övervakar klustret och arbetsbelastningarna i ett par veckor för att bekräfta att allt körs som förväntat innan du migrerar produktionskluster. Använd följande kommandon för att verifiera migreringen och övervaka klustret:

  1. Bekräfta att de nya noderna kör ACL med kommandot kubectl get nodes -o wide . Utdata ska visa ACL OS-avbildningen.

    kubectl get nodes -o wide
    
  2. Kontrollera att alla poddar och daemonuppsättningar körs i den nya nodpoolen kubectl get pods -o wide -A med kommandot .

    kubectl get pods -o wide -A
    
  3. Kontrollera att alla nodetiketter i den uppgraderade nodpoolen är vad du förväntar dig med kommandot kubectl get nodes --show-labels .

    kubectl get nodes --show-labels
    
  4. Kontrollera nodbildversionen med kommandot az aks nodepool list .

    az aks nodepool list \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --query '[].{name: name, osSku: osSku, nodeImageVersion: nodeImageVersion}'
    

    Exempel på utdata:

    [
      {
        "name": "myNodePool",
        "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0",
        "osSku": "AzureContainerLinux"
      }
    ]
    

Gå tillbaka till din tidigare OS-produktversion

Om du får problem under OS SKU-migreringen kan du återställa till din tidigare OS SKU. Det gör du genom att ändra tillbaka OS SKU-fältet till ditt tidigare värde och skicka distributionen igen, vilket utlöser en annan uppgraderingsåtgärd och återskapar nodpoolen till dess tidigare OS SKU. Om du återgår från ACL till din tidigare OS-SKU använder nodpoolen som standard avbildningsvarianten Trusted Launch (Gen2), om inte Trusted Launch uttryckligen har inaktiverats.

Återställ till din tidigare OS SKU med kommandot az aks nodepool update . Det här exemplet återgår från ACL till Azure Linux:

az aks nodepool update \
    --resource-group <resource-group> \
    --cluster-name <cluster-name> \
    --name <existing-node-pool-name> \
    --os-sku AzureLinux

Mer information om ACL finns i What is Azure Container Linux (ACL) for Azure Kubernetes Service (AKS)?