Migrowanie istniejących węzłów do Azure Container Linux (ACL) dla Azure Kubernetes Service (AKS)

Z tego artykułu dowiesz się, jak przeprowadzić migrację istniejących pul węzłów usługi AKS do usługi Azure Container Linux (ACL) dla usługi AKS. Istniejące węzły można migrować przy użyciu jednej z następujących metod:

  • Migracja SKU systemu operacyjnego na istniejących pulach węzłów: Zmień SKU systemu operacyjnego istniejących pul węzłów na ACL, co spowoduje automatyczne ponowne utworzenie obrazów węzłów.
  • Usuń istniejące pule węzłów i dodaj nowe pule węzłów listy ACL: utwórz nowe pule węzłów listy ACL, przenieś obciążenia i usuń stare pule węzłów.

Ważna

Jeśli używasz Azure Container Linux (ACL) w usłudze AKS, zapoznaj się z następującymi zagadnieniami i ograniczeniami:

Ograniczenia migracji jednostki SKU systemu operacyjnego w miejscu

Oprócz ogólnych ograniczeń ACL poniższe ograniczenia obowiązują konkretnie w przypadku migracji wersji SKU systemu operacyjnego w miejscu:

  • Funkcja migracji jednostki SKU systemu operacyjnego nie jest dostępna za pośrednictwem programu PowerShell ani witryny Azure Portal.
  • Funkcja migracji SKU systemu operacyjnego nie umożliwia zmiany nazw istniejących pul węzłów.
  • Pule węzłów z włączoną opcją UseGPUDedicatedVHD nie obsługują migracji wersji SKU systemu operacyjnego.
  • Migracja jednostek SKU systemu operacyjnego Windows nie jest obsługiwana.

Wymagania wstępne

  • Istniejący klaster AKS z co najmniej jedną pulą węzłów z systemem Linux.
  • Azure CLI w wersji 2.86.0 lub nowszej. Uruchom az --version, aby znaleźć wersję. Jeśli musisz zainstalować lub uaktualnić, zobacz Install Azure CLI.
  • Zalecamy sprawdzenie, czy obciążenia robocze działają poprawnie w środowisku ACL, przez wdrożenie klastra ACL w środowisku deweloperskim lub przedprodukcyjnym przed migracją klastrów produkcyjnych.
  • Przed użyciem procesu w klastrze produkcyjnym upewnij się, że funkcja migracji działa dla Ciebie w środowisku testowym/deweloperskim.
  • Upewnij się, że zasobniki mają odpowiedni budżet zakłóceń dla zasobników (PDB), aby umożliwić AKS przenoszenie zasobników między maszynami wirtualnymi podczas migracji.

Dodaj pule węzłów ACL i usuń istniejące pule węzłów

  1. Dodaj nową pulę węzłów listy ACL przy użyciu az aks nodepool add polecenia . Użyj --mode System, aby nowa pula mogła służyć jako systemowa pula agentów, dzięki czemu w następnym kroku można usunąć oryginalną pulę węzłów.

    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
    

    Przykładowy wynik:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/myNewNodePool",
      "name": "myNewNodePool",
      "osSku": "AzureContainerLinux",
      "provisioningState": "Succeeded"
    }
    
  2. Usuń istniejącą pulę węzłów za pomocą polecenia az aks nodepool delete.

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

Migracja wersji systemu operacyjnego na miejscu

Istniejące pule węzłów z systemem Linux można migrować do ACL przez zmianę SKU systemu operacyjnego puli węzłów, co powoduje przeprowadzenie klastra przez standardowy proces uaktualniania obrazu węzła. Ta metoda nie wymaga tworzenia nowych pul węzłów; zamiast tego istniejące pule węzłów są automatycznie ponownie obrazowane.

Przeprowadzanie migracji SKU systemu operacyjnego na miejscu

Ważna

ACL wymaga funkcji Trusted Launch. Należy uwzględnić --enable-secure-boot i --enable-vtpm podczas migracji do wersji SKU systemu operacyjnego AzureContainerLinux. Rozmiar maszyny wirtualnej (VM) puli węzłów musi również obsługiwać funkcję Trusted Launch. Jeśli bieżący rozmiar maszyny wirtualnej nie jest obsługiwany, przed migracją należy zmienić rozmiar lub ponownie utworzyć pulę węzłów przy użyciu obsługiwanego rozmiaru maszyny wirtualnej.

Zmigruj SKU systemu operacyjnego swojej puli węzłów do ACL przy użyciu polecenia az aks nodepool update. To polecenie inicjuje ponowne utworzenie obrazu puli węzłów, aktualizując SKU systemu operacyjnego do AzureContainerLinux. Zmiana jednostki SKU systemu operacyjnego wyzwala natychmiastową operację uaktualniania, która trwa kilka 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

Przykładowy wynik:

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

Note

Jeśli napotkasz problemy podczas migracji wersji SKU systemu operacyjnego, możesz przywrócić poprzednią wersję SKU systemu operacyjnego.

Zweryfikuj migrację SKU systemu operacyjnego

Wskazówka

Zalecamy monitorowanie kondycji usługi przez kilka tygodni przed migracją klastrów produkcyjnych.

Po zakończeniu migracji w klastrach testowych zalecamy monitorowanie klastra i obciążeń przez kilka tygodni, aby potwierdzić, że wszystko działa zgodnie z oczekiwaniami przed migracją klastrów produkcyjnych. Użyj następujących poleceń, aby zweryfikować migrację i monitorować klaster:

  1. Upewnij się, że nowe węzły działają z ACL, używając polecenia kubectl get nodes -o wide. W danych wyjściowych powinien być widoczny obraz systemu operacyjnego ACL.

    kubectl get nodes -o wide
    
  2. Sprawdź za pomocą polecenia kubectl get pods -o wide -A, czy wszystkie zasobniki i obiekty DaemonSet są uruchomione w nowej puli węzłów.

    kubectl get pods -o wide -A
    
  3. Sprawdź za pomocą polecenia kubectl get nodes --show-labels, czy wszystkie etykiety węzłów w zaktualizowanej puli węzłów są zgodne z oczekiwaniami.

    kubectl get nodes --show-labels
    
  4. Sprawdź wersję obrazu węzła za pomocą polecenia az aks nodepool list.

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

    Przykładowy wynik:

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

Przywróć poprzednią wersję SKU systemu operacyjnego

Jeśli podczas migracji jednostki SKU systemu operacyjnego wystąpią problemy, możesz przywrócić poprzednią jednostkę SKU systemu operacyjnego. W tym celu zmień pole OS SKU z powrotem na poprzednią wartość i prześlij ponownie wdrożenie, co uruchomi kolejną operację aktualizacji i ponownie utworzy obraz puli węzłów przy użyciu poprzedniej wartości OS SKU. Jeśli cofniesz się z ACL do poprzedniego wariantu SKU systemu operacyjnego, pula węzłów domyślnie używa wariantu obrazu Trusted Launch (Gen2), chyba że funkcja Trusted Launch została jawnie wyłączona.

Wróć do poprzedniej wersji SKU systemu operacyjnego za pomocą polecenia az aks nodepool update. Ten przykład pokazuje wycofanie z ACL do systemu Azure Linux:

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

Aby uzyskać więcej informacji na temat ACL, zobacz What is Azure Container Linux (ACL) for Azure Kubernetes Service (AKS)?