Migrace existujících uzlů do Azure Container Linuxu (ACL) pro Azure Kubernetes Service (AKS)

V tomto článku se dozvíte, jak migrovat existující fondy uzlů AKS na Azure Kontejner Linux (ACL) pro AKS. Existující uzly můžete migrovat pomocí jedné z následujících metod:

  • Místní migrace edice operačního systému: Změňte edici operačního systému stávajících fondů uzlů na ACL, což automaticky znovu vytvoří image uzlů.
  • Odeberte existující fondy uzlů a přidejte nové fondy uzlů seznamu ACL: Vytvořte nové fondy uzlů seznamu ACL, přesuňte úlohy a odeberte staré fondy uzlů.

Important

Pokud používáte Azure Container Linux (ACL) v AKS, zkontrolujte následující aspekty a omezení:

Omezení migrace SKU operačního systému na místě

Kromě obecných omezení ACL platí následující konkrétně pro migraci edice operačního systému na místě:

  • Funkce migrace skladové položky operačního systému není dostupná prostřednictvím PowerShellu ani webu Azure Portal.
  • Funkce migrace SKU operačního systému nepodporuje přejmenování stávajících poolů uzlů.
  • Skupiny uzlů s povoleným UseGPUDedicatedVHD nemohou provést migraci SKU operačního systému.
  • Fondy uzlů Windows nelze migrovat do ACL.

Předpoklady

  • Existující cluster AKS s alespoň jedním fondem linuxových uzlů.
  • Azure CLI verze 2.86.0 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalovat nebo upgradovat, podívejte se na Install Azure CLI.
  • Doporučujeme, abyste před migrací produkčních clusterů ověřili, že vaše úlohy v prostředí ACL běží úspěšně, a to nasazením clusteru ACL ve vývojovém nebo testovacím prostředí.
  • Před použitím procesu v produkčním clusteru se ujistěte, že funkce migrace pracuje pro vás v testovacím/vývojovém prostředí.
  • Ujistěte se, že vaše pody mají dostatečný Pod Disruption Budget (PDB), aby AKS mohlo během migrace přesouvat pody mezi virtuálními počítači.

Přidejte fondy uzlů ACL a odeberte existující fondy uzlů

  1. Přidejte nový fond uzlů ACL pomocí příkazu az aks nodepool add. Použijte --mode System, aby nový fond mohl sloužit jako systémový fond agentů, což vám umožní v dalším kroku odstranit původní fond uzlů.

    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
    

    Příklad výstupu:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/myNewNodePool",
      "name": "myNewNodePool",
      "osSku": "AzureContainerLinux",
      "provisioningState": "Succeeded"
    }
    
  2. Odeberte svůj stávající fond uzlů pomocí příkazu az aks nodepool delete.

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

Migrace edice operačního systému na místě

Stávající fondy uzlů Linux můžete migrovat na ACL změnou SKU operačního systému fondu uzlů, čímž se cluster postupně aktualizuje standardním procesem upgradu image uzlu. Tato metoda nevyžaduje vytváření nových fondů uzlů; místo toho se ve vašich stávajících fondech uzlů automaticky znovu vytvoří bitová kopie.

Provedení místní migrace skladové položky operačního systému

Important

ACL vyžaduje Trusted Launch. Musíte zahrnout --enable-secure-boot a --enable-vtpm při migraci na SKU operačního systému AzureContainerLinux. Velikost virtuálního počítače (VM) ve fondu uzlů musí podporovat také Trusted Launch. Pokud to vaše aktuální velikost virtuálního počítače nepodporuje, musíte před migrací změnit velikost fondu uzlů nebo fond uzlů znovu vytvořit s podporovanou velikostí virtuálního počítače.

Migrujte SKU operačního systému svého fondu uzlů na ACL pomocí příkazu az aks nodepool update. Tento příkaz spustí opětovné vytvoření bitové kopie fondu uzlů a aktualizuje SKU operačního systému na AzureContainerLinux. Změna skladové položky operačního systému aktivuje okamžitou operaci upgradu, která trvá několik minut.

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

Příklad výstupu:

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

Note

Pokud během migrace edice operačního systému dojde k problémům, můžete se vrátit k předchozí verzi OS.

Ověření migrace skladové položky operačního systému

Tip

Před migrací produkčních clusterů doporučujeme monitorovat stav vaší služby po dobu několika týdnů.

Po dokončení migrace na testovacích clusterech doporučujeme po dobu několika týdnů monitorovat cluster a úlohy, abyste před migrací produkčních clusterů ověřili, že všechno běží podle očekávání. K ověření migrace a monitorování clusteru použijte následující příkazy:

  1. Pomocí příkazu kubectl get nodes -o wide ověřte, že nové uzly používají ACL. Výstup by měl zobrazit image operačního systému ACL.

    kubectl get nodes -o wide
    
  2. Pomocí příkazu kubectl get pods -o wide -A ověřte, že všechny vaše pody a sady démonů běží v novém fondu uzlů.

    kubectl get pods -o wide -A
    
  3. Pomocí příkazu kubectl get nodes --show-labels ověřte, že všechny popisky uzlů ve vašem upgradovaném fondu uzlů odpovídají vašemu očekávání.

    kubectl get nodes --show-labels
    
  4. Pomocí příkazu az aks nodepool list zkontrolujte verzi bitové kopie uzlu.

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

    Příklad výstupu:

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

Přejít zpět na předchozí verzi operačního systému

Pokud během migrace verze operačního systému dochází k problémům, můžete se vrátit k předchozí verzi operačního systému. Uděláte to tak, že změníte pole OS SKU zpět na předchozí hodnotu a znovu odešlete nasazení, čímž spustíte další operaci upgradu a znovu naimagerujete fond uzlů na předchozí hodnotu OS SKU. Pokud se vrátíte z ACL k předchozí edici operačního systému (SKU), fond uzlů bude ve výchozím nastavení používat variantu bitové kopie Trusted Launch (Gen2), pokud není Trusted Launch explicitně zakázán.

Vraťte se zpět na předchozí skladovou položku operačního az aks nodepool update systému pomocí příkazu. Tento příklad ukazuje přechod zpět z ACL na Azure Linux:

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

Další informace o ACL viz Co je Azure Container Linux (ACL) pro Azure Kubernetes Service (AKS)?