Wycofywanie wersji puli węzłów w Azure Kubernetes Service (AKS)

Funkcja wycofywania wersji puli węzłów w Azure Kubernetes Service (AKS) umożliwia przywracanie po nieoczekiwanych zachowaniach po aktualizacji Kubernetes. Jeśli wystąpią problemy, możesz wycofać pule węzłów do poprzedniej wersji Kubernetes i kombinacji obrazu węzła, zapewniając ciągłość działania i minimalizując przestoje. W tym artykule wyjaśniono, kiedy i jak korzystać z funkcji wycofywania, jej możliwości i ograniczeń oraz najlepsze rozwiązania dotyczące akcji po wycofaniu.

Wymagania wstępne

  • Azure CLI w wersji 2.88.0 lub nowszej. Znajdź swoją wersję przy użyciu az --version polecenia . Jeśli musisz zainstalować lub uaktualnić, zobacz Install Azure CLI. Rozszerzenie aks-preview nie jest wymagane.
  • Wersja interfejsu API 2026-04-01 lub nowsza.

Obsługiwane funkcje wycofywania wersji puli węzłów

Funkcja wycofywania wersji puli węzłów obsługuje następujące możliwości:

Funkcja Opis
Przywróć wersję Przywraca wersje obrazów Kubernetes oraz węzła do ich poprzedniego stanu.
Ręczne inicjowanie, automatyczne wykonywanie Wycofanie wymaga ręcznej inicjacji, ale po wyzwoleniu system automatycznie obsługuje cały proces wycofywania bez dalszej interwencji.
Zgodność puli węzłów Działa we wszystkich typach pul węzłów, w tym zarówno pul maszyn wirtualnych, jak i pul węzłów opartych na Virtual Machine Scale Sets (VMSS).
Obsługa systemów operacyjnych Zgodność ze wszystkimi jednostkami magazynowymi (SKU) systemu operacyjnego, w tym Ubuntu, Azure Linux i pulami Windows.
Uproszczony proces Zarządzanie migawkami nie jest wymagane.

Ograniczenia i zagadnienia dotyczące wycofywania puli węzłów

Podczas korzystania z funkcji wycofywania puli węzłów należy pamiętać o następujących ograniczeniach:

  • Ograniczone wyłącznie do zmian wersji. Inne zmiany puli węzłów nie są przywracane.
  • Podczas wycofywania nie są dozwolone żadne operacje współbieżne.
  • Przed wycofaniem należy wyłączyć kanał automatycznego uaktualniania platformy Kubernetes. Jeśli kanał uaktualniania systemu operacyjnego węzła jest włączony, wycofanie wersji platformy Kubernetes może kontynuować, ale poprzedni obraz węzła może nie zostać przywrócony. Wyłącz kanał uaktualniania systemu operacyjnego węzła, gdy musisz wycofać zarówno wersję platformy Kubernetes, jak i obraz węzła.
  • Dostępne tylko przez siedem dni po zakończeniu uaktualniania.
  • Nie można wykonać kolejnych wycofań, aby wrócić do wcześniejszych wersji.
  • Przywracanie nie obsługuje cofania zmian w SKU systemu operacyjnego. Jeśli zmieniłeś wersję SKU systemu operacyjnego puli nodów (na przykład z Ubuntu na Azure Linux), próba przywrócenia stara się przywrócić poprzednią wersję obrazu noda, która pochodzi z innej wersji systemu operacyjnego, co skutkuje jej odrzuceniem. Aby przywrócić zmianę wersji SKU systemu operacyjnego, użyj az aks nodepool update --os-sku polecenia.

Podczas wycofywania puli węzłów należy pamiętać o następujących kwestiach:

Implikacje dotyczące zabezpieczeń Zagadnienia operacyjne
* Narażenie na luki w zabezpieczeniach: Wycofywanie usuwa poprawki zabezpieczeń i aktualizacje z nowszej wersji. W związku z tym zalecamy używanie wycofywania tylko tymczasowo podczas rozwiązywania problemów, a następnie jak najszybszego ponownego uaktualniania. * Przerwy w działaniu usługi: Proces wycofywania może spowodować tymczasowe przerwy w obciążeniu.
* Dostępność zasobów: zapewnij wystarczającą pojemność dla operacji wycofywania.
* Wymagania dotyczące testowania: Zaplanuj rozwiązanie podstawowych problemów przed ponownym podjęciem próby uaktualnienia.

Dlaczego warto używać przywracania

Wycofywanie zapewnia krytyczny mechanizm odzyskiwania dla środowisk produkcyjnych:

  • Ciągłość działania: minimalizuj przestoje, gdy uaktualnienia powodują nieoczekiwane problemy
  • Ograniczenie ryzyka: Szybkie przywracanie znanych dobrych konfiguracji bez złożonych procedur odzyskiwania
  • Uproszczone odzyskiwanie: unikaj ręcznej interwencji lub ponownego kompilowania klastrów z kopii zapasowych

Kiedy należy użyć przywracania puli węzłów

Rozważ użycie opcji wycofania w następujących scenariuszach:

  • Występują błędy uaktualniania: problemy z infrastrukturą, ograniczenia zasobów lub problemy ze zgodnością uniemożliwiają pomyślne uaktualnienia.
  • Awaria aplikacji: obciążenia doświadczają krytycznych awarii lub uszkodzenia danych w nowszych wersjach platformy Kubernetes.
  • Wydajność spada: nowe wersje powodują niedopuszczalne opóźnienia, problemy z przepływnością lub zużycie zasobów.
  • Pojawiają się luki w testowaniu: problemy pojawiają się w środowisku produkcyjnym, które nie zostały przechwycone podczas testowania przedprodukcyjnego.

Przepływ pracy przywracania puli węzłów

Na poniższym diagramie przedstawiono przepływ pracy wycofywania puli węzłów:

Diagram przedstawiający proces przywrócenia puli węzłów.

Proces wycofywania przywraca wszystkie węzły w puli węzłów do ich poprzedniego stanu wersji. Kluczowe aspekty przepływu pracy obejmują:

  • Podejście wszystko albo nic: Wszystkie węzły muszą pomyślnie powrócić do poprzedniej wersji, aby proces wycofywania zakończył się pomyślnie. Jeśli którykolwiek węzeł nie zostanie wycofany, cała operacja zakończy się niepowodzeniem, aby wyraźnie przekazać stan klastra, podobnie jak operacja uaktualniania.
  • Śledzenie postępu: Monitorowanie stanu wycofywania za pomocą dziennika aktywności Azure w celu uzyskania historii operacji oraz interfejsu API stanu operacji w celu uzyskania aktualizacji w czasie rzeczywistym.

Cofnij wersję puli węzłów

Ważne

Podczas wycofywania wersji puli węzłów należy pamiętać o następujących informacjach:

  • Przechowywanie starszych wersji długoterminowych zwiększa ryzyko bezpieczeństwa i może ostatecznie zapobiec uaktualnieniu z powodu ograniczeń niesymetryczności wersji. Traktuj wycofywanie jako tymczasowy mechanizm odzyskiwania, a nie trwałe rozwiązanie.
  • Wycofywanie zastępuje węzły w puli węzłów i może tymczasowo zakłócać obciążenia. Przed rozpoczęciem sprawdź, czy obciążenia mają wystarczającą pojemność i czy budżety zakłóceń zasobników zezwalają na wymagane zakłócenia węzłów.
  • W przypadku korzystania z interfejsu API REST można najpierw wywołać interfejs API pule agentów — pobierz interfejs API profilu uaktualniania , aby pobrać ostatnio używane wersje. Użyj tych informacji, aby określić wersję docelową w żądaniu wycofania.

Polecenie wycofywania Azure CLI automatycznie wybiera ostatnio zarejestrowaną wersję, znaną również jako N-1. Nie można użyć polecenia , aby wybrać dowolną wersję obrazu kubernetes lub węzła i nie można wykonać kolejnych wycofywania w celu przejścia przez wiele poprzednich wersji.

  1. Przejrzyj konfigurację automatycznego uaktualniania klastra.

    az aks show \
        --name myAKSCluster \
        --resource-group myResourceGroup \
        --query autoUpgradeProfile
    

    Wyłącz kanał automatycznego uaktualniania platformy Kubernetes przed wycofaniem. Jeśli chcesz przywrócić poprzedni obraz węzła, wyłącz również kanał uaktualniania systemu operacyjnego węzła.

  2. Przejrzyj dostępny element docelowy wycofywania az aks nodepool get-rollback-versions przy użyciu polecenia .

    az aks nodepool get-rollback-versions \
        --name myNodePool \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster
    

    Jeśli polecenie nie zwraca żadnych wersji, pula węzłów nie ma kwalifikującego się elementu docelowego wycofywania. Pula węzłów musi zostać uaktualniona w ciągu ostatnich siedmiu dni, a zarejestrowana wersja platformy Kubernetes musi być nadal obsługiwana przez usługę AKS.

  3. Wycofaj pulę węzłów przy użyciu az aks nodepool rollback polecenia .

    az aks nodepool rollback \
        --name myNodePool \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster
    
  4. Sprawdź wersję platformy Kubernetes, wersję obrazu węzła i stan aprowizacji po zakończeniu wycofywania.

    az aks nodepool show \
        --name myNodePool \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --query '{provisioningState:provisioningState,kubernetesVersion:currentOrchestratorVersion,nodeImageVersion:nodeImageVersion}'
    

    Pomyślne wycofanie zwraca wartość Succeeded i provisioningState pokazuje zarejestrowane wersje obrazów platformy Kubernetes i węzła.

Jeśli ustawienia automatycznego uaktualniania klastra uległy zmianie przed wycofaniem, przywróć zamierzone ustawienia po zbadaniu i rozwiązaniu problemu z uaktualnieniem.

Monitorowanie stanu przywracania puli węzłów do poprzedniego stanu

Następujące metody umożliwiają monitorowanie stanu operacji cofania zmian w puli węzłów i weryfikowanie pomyślnego cofnięcia zmian:

Rozwiązywanie problemów z wycofywaniem puli węzłów

W poniższej tabeli opisano typowe problemy z wycofywaniem i sposoby ich rozwiązywania:

Problematyka Przyczyna i rozwiązanie
Nie są zwracane żadne wersje wycofywania. Pula węzłów może nie mieć zarejestrowanego uaktualnienia, okno wycofywania z siedmiu dni mogło wygasło lub poprzednia wersja platformy Kubernetes może nie być już obsługiwana. Sprawdź historię uaktualniania puli węzłów i zasady obsługi wersji usługi AKS Kubernetes.
Usługa AKS zgłasza, że trwa inna operacja. Poczekaj na zakończenie bieżącej operacji klastra lub puli węzłów, zanim ponowisz próbę wycofania. Jeśli musisz zatrzymać operację, użyj az aks nodepool operation-abort polecenia .
Wersja kubernetes cofa się, ale obraz węzła nie jest. Kanał uaktualniania systemu operacyjnego węzła może być włączony. Wyłącz kanał, gdy musisz przywrócić poprzedni obraz węzła.
Usługa AKS odrzuca poprzednią wersję obrazu węzła. Jednostka SKU systemu operacyjnego puli węzłów mogła ulec zmianie od czasu zarejestrowanej wersji. Przywracanie nie obsługuje cofania zmian w SKU systemu operacyjnego. Użyj polecenia az aks nodepool update --os-sku , aby przywrócić jednostkę SKU systemu operacyjnego.
Usługa AKS odrzuca poprzednią wersję platformy Kubernetes. Zarejestrowana wersja może nie być już obsługiwana. Sprawdź zasady obsługi wersji rozwiązania AKS Kubernetes.

Najlepsze praktyki po wycofaniu zmian

Po pomyślnym wycofaniu puli węzłów skorzystaj z następujących najlepszych rozwiązań, aby zapewnić stabilność i bezpieczeństwo:

  • Zbadaj główną przyczynę: określ, dlaczego uaktualnienie nie powiodło się przed podjęciem kolejnej próby uaktualnienia. Przejrzyj dzienniki aplikacji, metryki zasobów i wymagania dotyczące zgodności.
  • Testowanie w środowisku nieprodukcyjnym: zweryfikuj nowszą wersję w środowisku deweloperskim lub przejściowym, aby odtworzyć i rozwiązać problemy przed ponownym uaktualnieniem środowiska produkcyjnego.
  • Zaplanuj ponowne uaktualnienie: nie bądź na wycofanej wersji na czas nieokreślony. Zaplanuj ponowne uaktualnienie, aby zachować poprawki zabezpieczeń i pomoc techniczną:
    • W przypadku krytycznych problemów z zabezpieczeniami: ponowne uaktualnianie w ciągu kilku dni po zweryfikowaniu poprawek.
    • W przypadku problemów ze zgodnością aplikacji: ponowne uaktualnianie w ciągu kilku tygodni po korektach kodu.
    • Maksymalny zalecany przedział czasu: 30 dni, aby uniknąć gromadzenia luk w zabezpieczeniach.

Często zadawane pytania (FAQ)

Czy mogę wykonać inne operacje podczas wycofywania puli węzłów?

Nie, wycofanie musi zostać zakończone przed rozpoczęciem innych operacji. Aby wykonać różne operacje, należy najpierw przerwać wycofywanie.

Czy przywracanie puli węzłów przywraca zarówno wersję Kubernetes, jak i obraz węzła?

Tak, wycofanie jest przywracane do ostatnio używanej wersji platformy Kubernetes i odpowiadającego jej obrazu węzła. Jeśli oba składniki uległy zmianie, system przywróci poprzednią wersję platformy Kubernetes z ostatnim zgodnym obrazem węzła dla tej wersji.

Czy mogę wycofać tylko obraz węzła bez zmiany wersji puli węzłów?

Tak, jeśli w ciągu ostatnich siedmiu dni przeprowadzono tylko aktualizację obrazu węzła (bez uaktualniania wersji puli węzłów), wycofanie przywraca poprzedni obraz wirtualnego dysku twardego (VHD) przy utrzymaniu tej samej wersji Kubernetes.

Czy mogę przywrócić wersję, która nie jest już wspierana?

Nie, nie można wycofać się do wersji rozwiązania Kubernetes, która nie jest już obsługiwana przez usługę AKS. Na przykład, jeśli pula węzłów była w wersji 1.27.9 (obecnie poza listą obsługiwanych wersji) i została zaktualizowana do wersji 1.28.5, nie można jej przywrócić do wersji 1.27.9, ponieważ nie znajduje się już na liście obsługiwanych wersji. Zawsze sprawdzaj zasady obsługi wersji usługi AKS Kubernetes , aby zweryfikować dostępność wersji.

Czy muszę wyłączyć automatyczną aktualizację przed przywróceniem puli węzłów?

Tak, przed wycofaniem należy wyłączyć kanał automatycznego uaktualniania platformy Kubernetes. Jeśli włączysz tylko kanał uaktualniania systemu operacyjnego węzła, wycofanie wersji platformy Kubernetes może kontynuować, ale poprzedni obraz węzła może nie zostać przywrócony. Wyłącz kanał uaktualniania systemu operacyjnego węzła, gdy musisz wycofać zarówno wersję platformy Kubernetes, jak i obraz węzła.

Jeśli klaster jest uwzględniony w grupie aktualizacji w profilu automatycznego uaktualniania usługi Azure Kubernetes Fleet Manager, należy również usunąć klaster z grupy aktualizacji przed wykonaniem wycofywania. W przeciwnym razie proces automatycznego uaktualniania może automatycznie uaktualnić pulę węzłów ponownie po zakończeniu wycofywania.

Czy mogę wycofać się po zmianie jednostki SKU systemu operacyjnego (na przykład z systemu Ubuntu na Azure Linux)?

Nie. Wycofywanie puli węzłów jest ograniczone do zmian wersji i nie przywraca zmian jednostki SKU systemu operacyjnego. Po migracji z jednej jednostki SKU systemu operacyjnego do innej (na przykład Ubuntu do Azure Linux) poprzednia wersja obrazu węzła należy do starej jednostki SKU systemu operacyjnego i jest niezgodna z bieżącą konfiguracją. Operacja wycofywania odrzuca poprzednią wersję obrazu z błędem podobnym do następującego:

NodeImageVersion 'AKSUbuntu-2204gen2containerd-202602.13.5' is not accepted. NodeImageVersion can only be current version 'AKSAzureLinux-V3gen2-202602.13.5' or 'latest'

Aby przywrócić SKU systemu operacyjnego, użyj polecenia az aks nodepool update z parametrem --os-sku. Aby uzyskać więcej informacji, zobacz Wycofywanie wersji systemu operacyjnego.

Aby dowiedzieć się więcej na temat aktualizacji puli węzłów w usłudze AKS, przeczytaj następujące artykuły: