Samouczek: migrowanie węzłów do usługi Azure Container Linux (ACL)

W tym samouczku, w części trzeciej z pięciu, przeniesiesz istniejące węzły do ACL. Istniejące węzły można migrować przy użyciu jednej z następujących metod:

  • Usuń istniejące pule węzłów i dodaj nowe pule węzłów ACL.
  • Przeprowadź migrację wersji SKU systemu operacyjnego (OS) na miejscu.

Polecenia w tym samouczku używają zmiennych środowiskowych ustawionych w samouczku 1: Tworzenie klastra z listą ACL dla usługi AKS.

Jeśli nie masz żadnych istniejących węzłów do migracji, przejdź do następnego samouczka. W kolejnych samouczkach dowiesz się, jak włączyć telemetrię i monitorowanie w swoich klastrach oraz zaktualizować węzły ACL.

Wymagania wstępne

  • W poprzednich samouczkach utworzyłeś i wdrożyłeś klaster ACL. Jeśli nie wykonano tych kroków i chcesz przejść przez ten proces, zobacz Samouczek 1: tworzenie klastra z ACL dla usługi AKS.
  • Azure Container Linux wymaga Azure CLI w wersji 2.86.0 lub nowszej. Użyj polecenia , az version aby znaleźć wersję. Aby przeprowadzić uaktualnienie do najnowszej wersji, użyj az upgrade polecenia .

zagadnienia i ograniczenia dotyczące Azure Container Linux (ACL)

Przed rozpoczęciem zapoznaj się z następującymi kwestiami i ograniczeniami dotyczącymi ACL:

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. Poniższy przykład tworzy pulę węzłów o nazwie aclsystem , która dodaje trzy węzły do klastra:

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

    Przykładowy wynik:

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

Ograniczenia dotyczące bezpośredniej migracji SKU systemu operacyjnego

Istnieje kilka ustawień, które mogą blokować żądanie migracji jednostki SKU systemu operacyjnego. Aby zapewnić pomyślną migrację, zapoznaj się z następującymi wytycznymi i ograniczeniami:

  • 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.
  • Systemy Ubuntu, Azure Linux i AzureContainerLinux są jedynymi obsługiwanymi celami migracji jednostek SKU systemu operacyjnego Linux.
  • ACL wymaga funkcji Trusted Launch. Jeśli w puli węzłów nie włączono jeszcze --enable-secure-boot i --enable-vtpm, musisz uwzględnić je podczas migracji do jednostki SKU systemu operacyjnego AzureContainerLinux. Rozmiar maszyny wirtualnej 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.
  • Maszyny wirtualne generacji 1 nie są obsługiwane.
  • SKU systemu operacyjnego Ubuntu z włączoną funkcją UseGPUDedicatedVHD nie może przeprowadzić migracji SKU systemu operacyjnego.
  • Poufne maszyny wirtualne (CVM) nie są obsługiwane.
  • Pod Sandboxing nie jest obsługiwany.
  • Migracja jednostek SKU systemu operacyjnego Windows nie jest obsługiwana.

Wymagania wstępne dotyczące migracji SKU systemu operacyjnego na miejscu

  • Istniejący klaster AKS z co najmniej jedną pulą węzłów z systemem Linux.
  • 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 Twoje zasobniki mają odpowiedni budżet zakłóceń zasobników (PDB), aby AKS mógł przenosić zasobniki między maszynami wirtualnymi podczas aktualizacji.
  • Potrzebujesz interfejsu wiersza polecenia platformy Azure w wersji 2.61.0 lub nowszej. Użyj polecenia , az version aby znaleźć wersję. Aby przeprowadzić uaktualnienie do najnowszej wersji, użyj az upgrade polecenia .

Migracja do ACL przy użyciu migracji wersji SKU systemu operacyjnego w miejscu

Możesz zmigrować istniejące pule węzłów Ubuntu lub Azure Linux do ACL, zmieniając SKU systemu operacyjnego puli węzłów, co powoduje przeprowadzenie klastra przez standardowy proces uaktualniania obrazu węzłów. Ta metoda nie wymaga tworzenia nowych pul węzłów; zamiast tego istniejące pule węzłów są automatycznie ponownie obrazowane.

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 puli węzłów musi również obsługiwać funkcję Trusted Launch.

Zmigruj SKU systemu operacyjnego swojej puli węzłów do ACL przy użyciu polecenia az aks nodepool update. To polecenie powoduje ponowne utworzenie obrazu puli węzłów. 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/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/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

Po zakończeniu migracji w klastrach testowych sprawdź następujące kwestie, aby upewnić się, że migracja zakończyła się pomyślnie:

  1. Potwierdź za pomocą następującego polecenia, że nowe węzły działają z włączoną funkcją ACL:

    kubectl get nodes -o wide
    
  2. Sprawdź za pomocą następującego polecenia, czy wszystkie zasobniki i zestawy DaemonSet działają w nowej puli węzłów:

    kubectl get pods -o wide -A
    
  3. Sprawdź za pomocą następującego polecenia, czy wszystkie etykiety węzłów w uaktualnionej 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": "nodepool1",
        "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0",
        "osSku": "AzureContainerLinux"
      }
    ]
    

Wskazówka

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

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.

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

Następny krok

W tym samouczku przeniosłeś istniejące węzły do mechanizmu ACL. Z następnego samouczka dowiesz się, jak włączyć telemetrię i monitorowanie klastra listy ACL.