Självstudie: Migrera noder till Azure Container Linux (ACL)

I den här självstudien, del tre av fem, migrerar du dina befintliga noder till ACL. Du kan migrera dina befintliga noder med någon av följande metoder:

  • Ta bort befintliga nodpooler och lägg till nya ACL-nodpooler.
  • Utför en på plats-migrering av operativsystemets SKU.

Kommandona i den här självstudien använder miljövariablerna som anges i Självstudie 1: Skapa ett kluster med ACL för AKS.

Om du inte har några befintliga noder att migrera går du vidare till nästa handledning. I senare självstudier får du lära dig hur du aktiverar telemetri och övervakning i dina kluster och uppgraderar ACL-noder.

Förutsättningar

  • I tidigare självstudier skapade och distribuerade du ett ACL-kluster. Om du inte har slutfört de här stegen och vill följa med kan du läsa Självstudie 1: Skapa ett kluster med ACL för AKS.
  • Azure Container Linux kräver Azure CLI version 2.86.0 eller senare. az version Använd kommandot för att hitta versionen. Om du vill uppgradera till den senaste versionen använder du az upgrade kommandot .

överväganden och begränsningar för Azure Container Linux (ACL)

Innan du börjar bör du granska följande överväganden och begränsningar för ACL:

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. I följande exempel skapas en nodpool med namnet aclsystem som lägger till tre noder i klustret:

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --name aclsystem \
        --mode System \
        --os-sku AzureContainerLinux \
        --node-count 3
    

    Exempel på utdata:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/aclsystem",
      "name": "aclsystem",
      "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

Begränsningar för migrering av operativsystems SKU på befintligt system

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:

  • 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.
  • Ubuntu, Azure Linux och AzureContainerLinux är de enda linux OS SKU-migreringsmål som stöds.
  • ACL kräver betrodd start. Om det inte redan är aktiverat för din nodpool måste du inkludera --enable-secure-boot och --enable-vtpm vid migrering till AzureContainerLinux OS-SKU. Nodpoolens VM-storlek måste också ha stöd för betrodd start. 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.
  • Virtuella datorer i generation 1 stöds inte.
  • En Ubuntu OS SKU med UseGPUDedicatedVHD aktiverad kan inte utföra en OS SKU-migrering.
  • Konfidentiella virtuella datorer stöds inte.
  • Poddsandboxning stöds inte.
  • Windows OS SKU-migrering stöds inte.

Förutsättningar för OS SKU-migrering direkt på plats

  • Ett befintligt AKS-kluster med minst en Linux-nodpool.
  • 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 uppgraderingen.
  • Du behöver Azure CLI version 2.61.0 eller senare. az version Använd kommandot för att hitta versionen. Om du vill uppgradera till den senaste versionen använder du az upgrade kommandot .

Migrera till ACL med migrering av OS-SKU på plats

Du kan migrera dina befintliga Ubuntu- eller Azure Linux-nodpooler till ACL genom att ändra OS SKU för nodpoolen, som rullar klustret genom uppgraderingsprocessen för standardnodavbildning. Den här metoden kräver inte att nya nodpooler skapas. i stället återskapas dina befintliga nodpooler automatiskt.

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. Nodpoolens VM-storlek måste också ha stöd för betrodd start.

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. 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/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/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

När migreringen är klar i dina testkluster kontrollerar du följande för att säkerställa en lyckad migrering:

  1. Bekräfta att de nya noderna kör ACL med följande kommando:

    kubectl get nodes -o wide
    
  2. Kontrollera att alla dina poddar och daemonsets körs i den nya nodpoolen med hjälp av följande kommando:

    kubectl get pods -o wide -A
    
  3. Kontrollera att alla nodetiketter i den uppgraderade nodpoolen är det du förväntar dig med följande kommando:

    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": "nodepool1",
        "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0",
        "osSku": "AzureContainerLinux"
      }
    ]
    

Tip

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

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.

Å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

Nästa steg

I den här handledningen migrerade du befintliga noder till ACL. I nästa självstudie får du lära dig hur du aktiverar telemetri och övervakning för ditt ACL-kluster.