Samouczek: migrowanie węzłów do platformy Azure z systemem Linux

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

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

Polecenia w tym samouczku używają zmiennych środowiskowych ustawionych w Tutorial 1: tworzenie klastra przy użyciu hosta kontenera systemu Linux Azure dla usługi AKS.

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

Wymagania wstępne

Note

Podczas dodawania nowej puli węzłów systemu Linux na platformie Azure należy dodać co najmniej jeden węzeł jako --mode System. W przeciwnym razie AKS nie pozwoli na usunięcie istniejącej puli węzłów.

  • Potrzebna jest najnowsza wersja interfejsu wiersza polecenia platformy Azure. Uruchom az --version, aby znaleźć wersję. Jeśli musisz zainstalować lub uaktualnić, zobacz Install Azure CLI.

Ustawianie zmiennych środowiskowych

Ustaw następujące zmienne środowiskowe, aby utworzyć unikatowe nazwy zasobów dla każdego wdrożenia. Zastąp symbol zastępczy <your-node-pool-name> wybraną nazwą. Opcjonalnie możesz dołączyć losowy sufiks, aby zapewnić unikatowość. Nazwa puli węzłów musi zaczynać się od małej litery i może zawierać tylko znaki alfanumeryczne. W przypadku pul węzłów systemu Linux długość musi zawierać się między jednym a 12 znakami.

# Set random suffix for uniqueness
export RANDOM_SUFFIX=$(openssl rand -hex 3)

# Set node pool name
export NODE_POOL_NAME="<your-node-pool-name>$RANDOM_SUFFIX"

Dodawanie pul węzłów systemu Linux platformy Azure i usuwanie istniejących pul węzłów

  1. Dodaj nową pulę węzłów systemu Linux platformy Azure przy użyciu az aks nodepool add polecenia . To polecenie dodaje nową pulę węzłów do klastra z --mode System flagą , co sprawia, że jest to pula węzłów systemowych. Pule węzłów systemowych są wymagane dla klastrów systemu Linux platformy Azure.

    az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinux
    

    Przykładowy wynik:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
      "name": "systempool",
      "provisioningState": "Succeeded"
    }
    
  2. Usuń istniejące węzły przy użyciu az aks nodepool delete polecenia .

Migracja wersji systemu operacyjnego na miejscu

Możesz zmigrować istniejące pule węzłów Ubuntu na Azure Linux, zmieniając SKU systemu operacyjnego puli węzłów, co przeprowadza klaster przez standardowy proces aktualizacji obrazu węzła. Ta nowa funkcja nie wymaga tworzenia nowych pul węzłów.

Ograniczenia migracji jednostki SKU systemu operacyjnego w miejscu

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 jednostki SKU systemu operacyjnego nie może zmienić nazwy istniejących pul węzłów.
  • Systemy Ubuntu, Azure Linux i Azure Linux z funkcją OS Guard są jedynymi obsługiwanymi celami migracji jednostek SKU systemu operacyjnego Linux.
  • Zaufane uruchamianie jest domyślnie wymagane dla systemu Linux platformy Azure z funkcją OS Guard. Aby można było przeprowadzić migrację do systemu Azure Linux za pomocą funkcji OS Guard, musisz mieć włączoną opcję Zaufane uruchamianie. Ponieważ nie można włączyć zaufanego uruchamiania w istniejących pulach węzłów, należy utworzyć nową pulę węzłów z włączoną funkcją Zaufane uruchamianie i zmigrować obciążenia do tej puli węzłów.
  • Klienci korzystający tylko z rozmiarów maszyn wirtualnych 1. generacji nie mogą migrować do systemu Azure Linux z funkcją OS Guard, ponieważ nie ma obsługiwanego obrazu 1. generacji. W takim przypadku należy utworzyć nowe pule węzłów o rozmiarze maszyny wirtualnej obsługującej generacji 2.
  • SKU systemu operacyjnego Ubuntu z włączoną funkcją UseGPUDedicatedVHD nie może przeprowadzić migracji SKU systemu operacyjnego.
  • Jednostka SKU systemu operacyjnego Ubuntu z włączoną funkcją CVM 20.04 nie może przeprowadzić migracji jednostki SKU systemu operacyjnego.
  • Pule węzłów z włączoną funkcją Kata nie mogą przeprowadzić migracji wersji systemu operacyjnego.
  • Migracja jednostek SKU systemu operacyjnego Windows nie jest obsługiwana.

Wymagania wstępne migracji wersji SKU systemu operacyjnego

  • Istniejący klaster usługi AKS z co najmniej jedną pulą węzłów systemu Ubuntu.
  • Zalecamy, aby upewnić się, że obciążenia skonfigurują się i działają pomyślnie na hoście kontenera Linux platformy Azure, zanim spróbujesz użyć funkcji migracji SKU dla systemu operacyjnego, wdrażając klaster Linux platformy Azure w środowisku deweloperskim/produkcyjnym i sprawdzając, czy usługa pozostaje w dobrej kondycji.
  • 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. Uruchom az --version, aby znaleźć wersję. Jeśli musisz zainstalować lub uaktualnić, zobacz Install Azure CLI.
  • Jeśli używasz narzędzia Terraform, musisz mieć moduł AzureRM dla Terraform w wersji 3.111.0 lub nowszej.

Zmigruj SKU systemu operacyjnego puli węzłów Ubuntu

Przeprowadź migrację jednostki SKU systemu operacyjnego puli węzłów do systemu Azure Linux przy użyciu polecenia az aks nodepool update. To polecenie aktualizuje SKU systemu operacyjnego puli węzłów z Ubuntu na Azure Linux. 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 $NODE_POOL_NAME --os-sku AzureLinux

Przykładowy wynik:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureLinux",
  "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 należy sprawdzić następujące elementy, aby zapewnić pomyślną migrację:

  • Jeśli elementem docelowym migracji jest Azure Linux, uruchom polecenie kubectl get nodes -o wide. Wynik powinien pokazywać Microsoft Azure Linux 3.0 jako obraz systemu operacyjnego i .azl3 na końcu wersji jądra.
  • Uruchom polecenie kubectl get pods -o wide -A, aby sprawdzić, czy wszystkie pody i zestawy demonów są uruchomione w nowej puli węzłów.
  • Uruchom polecenie kubectl get nodes --show-labels aby sprawdzić, czy wszystkie etykiety węzłów w uaktualnionej puli węzłów są takie, jak oczekujesz.

Wskazówka

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

Uruchom migrację SKU systemu operacyjnego w klastrach produkcyjnych

  1. Zaktualizuj istniejące szablony, aby ustawić wartość OSSKU=AzureLinux. Upewnij się, że twój apiVersion jest ustawiony na 2023-07-01 lub nowszą.

    • Szablony ARM: Użyj "OSSKU": "AzureLinux" w sekcji agentPoolProfile.
    • Bicep: Użyj osSku: "AzureLinux" w sekcji agentPoolProfile.
    • Terraform: użyj os_sku = "AzureLinux" w default_node_pool sekcji .
  2. Ponownie wdróż szablon ARM, Bicep lub Terraform dla klastra, aby zastosować nowe OSSKU ustawienie. Podczas tego wdrażania klaster zachowuje się tak, jakby przechodził proces uaktualniania obrazu węzła. Klaster zwiększa swoją pojemność, a następnie ponownie uruchamia istniejące węzły jeden po drugim do najnowszego obrazu AKS z nową wersją SKU systemu operacyjnego.

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 należy zmienić pole jednostki SKU systemu operacyjnego w szablonie i ponownie przesłać wdrożenie, co spowoduje wyzwolenie kolejnej operacji uaktualniania i przywrócenie puli węzłów do poprzedniej jednostki SKU systemu operacyjnego.

Możesz powrócić do poprzedniej wersji SKU systemu operacyjnego za pomocą polecenia az aks nodepool update. To polecenie aktualizuje jednostkę SKU systemu operacyjnego dla puli węzłów z systemu Linux platformy Azure z powrotem do systemu Ubuntu.

Następny krok

W tym samouczku zmigrowano istniejące węzły na Azure Linux, usuwając istniejące pule węzłów i dodając nowe pule węzłów Azure Linux lub przeprowadzając migrację SKU systemu operacyjnego w miejscu.

Z następnego samouczka dowiesz się, jak włączyć telemetrię do monitorowania klastrów.