Aktualizowanie obrazów platformy Kubernetes i węzłów w wielu klastrach przy użyciu usługi Azure Kubernetes Fleet Manager

Dotyczy: ✔️ Fleet Manager ✔️ Fleet Manager z klastrem koncentratora

Administratorzy platformy zarządzający dużą liczbą klastrów często mają problemy z przygotowywaniem aktualizacji wielu klastrów (na przykład aktualizacja obrazu systemu operacyjnego węzła lub wersji Kubernetes) w bezpieczny i przewidywalny sposób. Aby rozwiązać to wyzwanie, usługa Azure Kubernetes Fleet Manager (Fleet) umożliwia organizowanie aktualizacji w wielu klastrach przy użyciu przebiegów aktualizacji.

Przebiegi aktualizacji składają się z etapów, grup i strategii i można je stosować ręcznie w przypadku aktualizacji jednorazowych lub automatycznie w przypadku bieżących regularnych aktualizacji przy użyciu profilów automatycznego uaktualniania. Wszystkie przebiegi aktualizacji (ręczne lub zautomatyzowane) honorują okna konserwacji klastrów członkowskich.

W tym przewodniku opisano sposób konfigurowania i ręcznego wykonywania przebiegów aktualizacji.

Wymagania wstępne

  • Zapoznaj się z koncepcyjnym omówieniem tej funkcji, która zawiera wyjaśnienie strategii aktualizacji, przebiegów, etapów i grup, do których odwołuje się ten przewodnik.

  • Musisz mieć zasób Fleet z co najmniej jednym klastrem członkowskim. Jeśli nie, postępuj zgodnie z przewodnikiem szybkiego startu, aby utworzyć zasób Fleet i dołączyć klastry usługi Azure Kubernetes Service (AKS) jako swoje elementy składowe.

  • Ustaw następujące zmienne środowiskowe:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    
  • Jeśli korzystasz z instrukcji interfejsu wiersza polecenia platformy Azure w tym artykule, musisz zainstalować interfejs wiersza polecenia platformy Azure w wersji 2.58.0 lub nowszej. Aby zainstalować lub uaktualnić, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

  • Wymagane jest również rozszerzenie Azure CLI, które można zainstalować, uruchamiając następujące polecenie:

    az extension add --name fleet
    

    Uruchom polecenie , az extension update aby zaktualizować do najnowszej wersji wydanego rozszerzenia:

    az extension update --name fleet
    

Definiowanie sekwencji uaktualniania klastra

Przebieg aktualizacji obsługuje dwie opcje sekwencji uaktualniania klastra:

  • Jeden po drugim: jeśli nie chcesz kontrolować sekwencji uaktualniania klastra, one-by-one zapewnia proste podejście do uaktualniania wszystkich klastrów członkowskich floty pojedynczo.
  • Kontrolowanie sekwencji aktualizacji klastrów przy użyciu grup aktualizacji i etapów aktualizacji: jeśli chcesz kontrolować sekwencję uaktualniania klastra, możesz konfigurować klastry członkowskie w grupach aktualizacji i etapach tego procesu. Tę sekwencję można przechowywać jako szablon w postaci strategii aktualizacji. Można tworzyć przebiegi aktualizacji później przy użyciu strategii aktualizacji zamiast definiować sekwencję za każdym razem, gdy trzeba utworzyć przebieg aktualizacji.

Uwaga

Procesy aktualizacji respektują okna konserwacyjne, które ustawiłeś na poziomie klastra AKS. Aby uzyskać więcej informacji, zobacz Planowana konserwacja dla wielu klastrów węzłów członkowskich, w którym wyjaśniono, w jaki sposób przebiegi aktualizacji obsługują klastry węzłów członkowskich skonfigurowane przy użyciu planowanych okienek czasowych konserwacji.

Zaktualizuj wszystkie klastry pojedynczo

  1. W witrynie Azure Portal przejdź do zasobu usługi Azure Kubernetes Fleet Manager.

  2. W menu usługi, w obszarze Ustawienia, wybierz Aktualizacja dla wielu klastrów>Utwórz sesję.

  3. Wprowadź nazwę przebiegu aktualizacji, a następnie wybierz pozycję Jeden po jednym dla typu uaktualnienia.

    Zrzut ekranu przedstawiający panel portalu Azure do tworzenia sesji aktualizacji, które aktualizują klastry po jednym w usłudze Azure Kubernetes Fleet Manager.

  4. Wybierz jedną z następujących opcji dla zakresu uaktualniania:

    • Wersja Kubernetes dla płaszczyzny sterowania i pul węzłów
    • Wersja rozwiązania Kubernetes tylko dla płaszczyzny sterowania klastra
    • Tylko wersja obrazu węzła
  5. Wybierz jedną z następujących opcji dla Node image:

    • Najnowszy obraz: aktualizuje każdy klaster AKS w przebiegu aktualizacji do najnowszego obrazu dostępnego dla tego klastra w jego regionie.
    • Spójny obraz: Może się zdarzyć, że podczas aktualizacji klastry AKS będą się znajdować w różnych regionach, gdzie najnowsze dostępne obrazy węzłów mogą się różnić (sprawdź tracker wydań dla uzyskania więcej informacji). Aktualizacja wybiera najnowszy wspólny obraz we wszystkich regionach, aby osiągnąć spójność.

    Ważne

    Wersje obrazów węzła są ważne tylko przez 90 dni od oryginalnej daty publikacji. Jeśli wersja obrazu węzła docelowego wybrana przez przebieg aktualizacji przekracza przedział 90 dni po uaktualnieniu klastra członkowskiego, uaktualnienie tego klastra członkowskiego może zakończyć się niepowodzeniem.

    Zrzut ekranu przedstawiający okienko portalu Azure służące do tworzenia uruchomień aktualizacji. Wyświetlana jest sekcja dotycząca zakresu uaktualniania.

  6. Wybierz pozycję Utwórz , aby utworzyć przebieg aktualizacji.

  1. Utwórz proces aktualizacji przy użyciu polecenia az fleet updaterun create z wybranymi wartościami dla flag --upgrade-type oraz --node-image-selection. Następujące polecenie tworzy proces aktualizacji, który uaktualnia wersję Kubernetes dla płaszczyzny kontrolnej i pul węzłów oraz używa najnowszego dostępnego obrazu węzła dla każdego klastra w jego regionie.

    Flaga --upgrade-type obsługuje następujące wartości:

    • Full uaktualnia wersję platformy Kubernetes dla płaszczyzny sterowania i pul węzłów wraz z obrazami węzłów.
    • ControlPlaneOnly Uaktualnia tylko wersję platformy Kubernetes dla płaszczyzny sterowania klastra.
    • NodeImageOnly uaktualnia tylko obrazy węzłów.

    Flaga --node-image-selection obsługuje następujące wartości:

    • Latest: aktualizuje każdy klaster AKS w rundzie aktualizacji do najnowszego dostępnego obrazu dla tego klastra w jego regionie.
    • Consistent: Może być możliwe, że podczas aktualizacji w klastrach AKS zlokalizowanych w różnych regionach, najnowsze dostępne obrazy węzłów mogą się różnić (sprawdź śledzenie wersji, aby uzyskać więcej informacji). Aktualizacja wybiera najnowszy wspólny obraz we wszystkich regionach, aby osiągnąć spójność.
    az fleet updaterun create \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name run-1 \
     --upgrade-type Full \
     --kubernetes-version 1.26.0 \
     --node-image-selection Latest
    
  2. Uruchom przebieg aktualizacji przy użyciu az fleet updaterun start polecenia .

    az fleet updaterun start \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name run-1
    

Podczas tworzenia przebiegu aktualizacji masz możliwość kontrolowania zakresu przebiegu aktualizacji. Flaga --upgrade-type obsługuje następujące wartości:

  • ControlPlaneOnly Uaktualnia tylko wersję platformy Kubernetes dla płaszczyzny sterowania klastra.
  • Full uaktualnia wersję platformy Kubernetes dla płaszczyzny sterowania i pul węzłów wraz z obrazami węzłów.
  • NodeImageOnly uaktualnia tylko obrazy węzłów.

--node-image-selection Ponadto flaga obsługuje następujące wartości:

  • Najnowsze: Aktualizuje każdy klaster usługi AKS podczas procesu aktualizacji do najnowszego dostępnego obrazu dla tego klastra w jego regionie.
  • Spójność: przy uruchamianiu aktualizacji może wystąpić sytuacja, w której klastry AKS znajdują się w różnych regionach, gdzie najnowsze dostępne obrazy węzłów mogą się różnić (sprawdź śledzenie wersji, aby uzyskać więcej informacji). Aktualizacja wybiera najnowszy wspólny obraz we wszystkich regionach, aby osiągnąć spójność.

Ważne

Wersje obrazów węzła są ważne tylko przez 90 dni od oryginalnej daty publikacji. Jeśli wersja obrazu węzła docelowego wybrana przez przebieg aktualizacji przekracza przedział 90 dni po uaktualnieniu klastra członkowskiego, uaktualnienie tego klastra członkowskiego może zakończyć się niepowodzeniem.

Rozpoczynanie procesu aktualizacji:

Aby uruchomić przebiegi aktualizacji, uruchom następujące polecenie:

az fleet updaterun start \
 --resource-group $GROUP \
 --fleet-name $FLEET \
 --name <run-name>

Aktualizowanie klastrów przy użyciu grup i etapów

Przebieg aktualizacji można zdefiniować przy użyciu etapów aktualizacji, aby sekwencyjnie porządkować stosowanie aktualizacji do różnych grup aktualizacji. Na przykład pierwszy etap aktualizacji może aktualizować klastry członkowskie środowiska testowego, a drugi etap aktualizacji spowoduje zaktualizowanie klastrów składowych środowiska produkcyjnego. Można również określić, jakie zatwierdzenia są wymagane przed lub po każdym etapie, oraz czas oczekiwania między etapami aktualizacji. Tę sekwencję można przechowywać jako szablon w postaci strategii aktualizacji.

  1. W witrynie Azure Portal przejdź do zasobu usługi Azure Kubernetes Fleet Manager.

  2. W menu usługi, w obszarze Ustawienia, wybierz Aktualizacja dla wielu klastrów>Utwórz sesję.

  3. Wprowadź nazwę przebiegu aktualizacji, a następnie wybierz pozycję Etapy dla typu sekwencji aktualizacji.

    Zrzut ekranu przedstawiający stronę witryny Azure Portal dotyczącą wybierania trybu etapów w ramach przebiegu aktualizacji.

  4. Wybierz Utwórz etap, a następnie wprowadź nazwę etapu i ustaw zatwierdzenia oraz czas oczekiwania między etapami, jeśli to konieczne.

    Zrzut ekranu przedstawiający stronę witryny Azure Portal na potrzeby tworzenia etapu i definiowania czasu oczekiwania.

  5. Wybierz grupy aktualizacji, które mają zostać uwzględnione na tym etapie. Możesz również określić kolejność grup aktualizacji, jeśli chcesz je zaktualizować w określonej sekwencji. Po zakończeniu wybierz Utwórz.

    Zrzut ekranu przedstawiający stronę witryny Azure Portal na potrzeby tworzenia etapów, która pokazuje wybór grup uaktualniania.

  6. Wybierz jedną z następujących opcji dla zakresu uaktualniania:

    • Wersja Kubernetes dla płaszczyzny sterowania i pul węzłów
    • Wersja rozwiązania Kubernetes tylko dla płaszczyzny sterowania klastra
    • Tylko wersja obrazu węzła
  7. Wybierz jedną z następujących opcji dla Node image:

    • Najnowszy obraz: aktualizuje każdy klaster AKS w przebiegu aktualizacji do najnowszego obrazu dostępnego dla tego klastra w jego regionie.
    • Spójny obraz: Może się zdarzyć, że podczas aktualizacji klastry AKS będą się znajdować w różnych regionach, gdzie najnowsze dostępne obrazy węzłów mogą się różnić (sprawdź tracker wydań dla uzyskania więcej informacji). Aktualizacja wybiera najnowszy wspólny obraz we wszystkich regionach, aby osiągnąć spójność.

    Zrzut ekranu przedstawiający okienko portalu Azure służące do tworzenia uruchomień aktualizacji. Wyświetlana jest sekcja dotycząca zakresu uaktualniania.

  8. Wybierz pozycję Utwórz , aby utworzyć przebieg aktualizacji.

    Określanie etapów i ich kolejności za każdym razem, gdy tworzenie przebiegu aktualizacji może być powtarzalne i kłopotliwe. Strategie aktualizacji upraszczają ten proces, umożliwiając przechowywanie szablonów na potrzeby przebiegów aktualizacji. Aby uzyskać więcej informacji, zobacz tworzenie i używanie strategii aktualizacji.

  9. W menu aktualizacji wielu klastrów wybierz proces aktualizacji, a następnie wybierz Uruchom.

  1. Utwórz plik JSON, aby zdefiniować etapy i grupy dla przebiegu aktualizacji. Oto przykład danych wejściowych z pliku etapów (example-stages.json):

    {
        "stages": [
            {
                "name": "stage1",
                "maxAllowedFailures": "2",
                "groups": [
                    {
                        "name": "group-1a"
                    },
                    {
                        "name": "group-1b"
                    },
                    {
                        "name": "group-1c"
                    }
                ],
                "afterStageWaitInSeconds": 3600
            },
            {
                "name": "stage2",
                "groups": [
                    {
                        "name": "group-2a",
                        "maxAllowedFailures": "1"
                    },
                    {
                        "name": "group-2b"
                    },
                    {
                        "name": "group-2c"
                    }
                ]
            }
        ]
    }
    

    Uwaga

    Opcjonalne pole maxAllowedFailures określa, ile niepowodzeń aktualizacji klastrów członkowskich może wystąpić na poziomie etapu lub grupy, zanim segment zostanie oznaczony jako zakończony niepowodzeniem. Jeśli nie ustawiono tej opcji lub "0", każda pojedyncza awaria zatrzymuje proces aktualizacji.

    To ustawienie ocenia tylko liczbę niepowodzeń, a nie współczynnik powodzenia. W rezultacie grupa może osiągnąć Completed, nawet jeśli niektórzy lub wszyscy jej członkowie ulegli awarii, o ile skonfigurowany próg nie został przekroczony. Po zakończeniu uruchomienia zawsze przejrzyj FailureCount, statusy członków i komunikaty o błędach.

    Wartości mogą być stałą liczbą całkowitą (na przykład "2") lub procentową (na przykład "25%"). Aby uzyskać więcej informacji, zobacz Maksymalna dozwolona liczba niepowodzeń (wersja zapoznawcza).

  2. Utwórz przebieg aktualizacji, używając polecenia az fleet updaterun create z flagą --stages, ustawioną na nazwę pliku JSON, i z wybranymi wartościami dla flag --upgrade-type oraz --node-image-selection. Następujące polecenie tworzy proces aktualizacji, który uaktualnia wersję Kubernetes dla płaszczyzny kontrolnej i pul węzłów oraz używa najnowszego dostępnego obrazu węzła dla każdego klastra w jego regionie.

    Flaga --upgrade-type obsługuje następujące wartości:

    • Full uaktualnia wersję platformy Kubernetes dla płaszczyzny sterowania i pul węzłów wraz z obrazami węzłów.
    • ControlPlaneOnly Uaktualnia tylko wersję platformy Kubernetes dla płaszczyzny sterowania klastra.
    • NodeImageOnly uaktualnia tylko obrazy węzłów.

    Flaga --node-image-selection obsługuje następujące wartości:

    • Latest: aktualizuje każdy klaster AKS w rundzie aktualizacji do najnowszego dostępnego obrazu dla tego klastra w jego regionie.
    • Consistent: Może być możliwe, że podczas aktualizacji w klastrach AKS zlokalizowanych w różnych regionach, najnowsze dostępne obrazy węzłów mogą się różnić (sprawdź śledzenie wersji, aby uzyskać więcej informacji). Aktualizacja wybiera najnowszy wspólny obraz we wszystkich regionach, aby osiągnąć spójność.
    az fleet updaterun create \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name run-1 \
     --upgrade-type Full \
     --kubernetes-version 1.26.0 \
     --node-image-selection Latest \
     --stages example-stages.json
    
  3. Uruchom przebieg aktualizacji przy użyciu az fleet updaterun start polecenia .

    az fleet updaterun start \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name run-1
    

Tworzenie procesu aktualizacji przy użyciu strategii aktualizacji

Utworzenie przebiegu aktualizacji wymaga określenia etapów, grup, kolejności za każdym razem. Strategie aktualizacji upraszczają ten proces, umożliwiając przechowywanie szablonów na potrzeby przebiegów aktualizacji.

Uwaga

Istnieje możliwość utworzenia wielu przebiegów aktualizacji z unikatowymi nazwami z tej samej strategii aktualizacji.

Strategię aktualizacji można utworzyć przy użyciu jednej z następujących metod:

Zapisywanie strategii aktualizacji podczas tworzenia przebiegu aktualizacji

  • Zapisz strategię aktualizacji podczas tworzenia przebiegu aktualizacji w witrynie Azure Portal:

    Zrzut ekranu witryny Azure Portal przedstawiający etapy uruchamiania aktualizacji zapisywane jako strategia aktualizacji.

Zarządzanie przebiegiem aktualizacji

W poniższych sekcjach opisano sposób zarządzania przebiegiem aktualizacji przy użyciu witryny Azure Portal i interfejsu wiersza polecenia platformy Azure.

  • Na stronie Aktualizacji wielu klastrów zasobu floty można uruchomić przebieg aktualizacji w stanie Nie uruchomiono lub Niepowodzenie:

    Zrzut ekranu witryny Azure Portal przedstawiający sposób uruchamiania aktualizacji w stanie

  • Na stronie Aktualizacji wielu klastrów zasobu floty można zatrzymać aktualnie uruchomione lub oczekujące uruchomienie aktualizacji:

    Zrzut ekranu witryny Azure Portal przedstawiający sposób zatrzymywania uruchomienia aktualizacji w stanie

  • W ramach dowolnego procesu aktualizacji w stanie Nie rozpoczęto, Niepowodzenie lub Uruchomiono można wybrać dowolny etap i pominąć aktualizację.

    Zrzut ekranu witryny Azure Portal przedstawiający sposób pomijania uaktualniania dla określonego etapu w przebiegu aktualizacji.

    Podobnie można pominąć uaktualnienie na poziomie grupy aktualizacji lub klastra członkowskiego.

  • Możesz uruchomić przebieg aktualizacji, który jest w stanie Nie uruchomiono lub Niepowodzenie, używając polecenia :

    az fleet updaterun start \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name <run-name>
    
  • Aby zatrzymać obecnie działającą aktualizację, użyj polecenia .

    az fleet updaterun stop \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name <run-name>
    
  • Etapy aktualizacji lub grupy można pominąć, określając je w flagi --targets za pomocą az fleet updaterun skip polecenia :

    az fleet updaterun skip \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name <run-name> \
     --targets Group:my-group-name Stage:my-stage-name
    

    Aby uzyskać więcej informacji, zobacz koncepcyjne omówienie stanów przebiegu aktualizacji i pomiń zachowanie przebiegów/etapów/grup.

Automatyzowanie przebiegów aktualizacji przy użyciu profilów automatycznego uaktualniania

Profile automatycznego aktualizowania są używane do automatycznego uruchamiania aktualizacji w klastrach członkowskich, gdy są udostępniane nowe wersje obrazów Kubernetes lub węzłów.

Aby uzyskać więcej informacji na temat konfigurowania profili automatycznej aktualizacji, zobacz automatyzowanie aktualizacji obrazów Kubernetes i węzłów przy użyciu usługi Azure Kubernetes Fleet Manager.

Generowanie procesu aktualizacji na podstawie profilu automatycznej aktualizacji

Podczas tworzenia profilu automatycznego uaktualniania klastry mogą być na różnych wersjach Kubernetes lub obrazu węzła. W zależności od wybranego kanału automatycznego uaktualniania może upłynąć trochę czasu, zanim nowa wersja wyzwoli automatyczne uaktualnienie w celu utworzenia i wykonania uruchomienia aktualizacji.

Automatyczna aktualizacja umożliwia generowanie nowej sesji aktualizacji w dowolnym momencie za pomocą polecenia az fleet autoupgradeprofile generate-update-run. Proces aktualizacji jest oparty na bieżącej wersji obrazu Kubernetes opublikowanej przez AKS lub wersji obrazu węzła.

az fleet autoupgradeprofile generate-update-run \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name $AUTOUPGRADEPROFILE

Wygenerowane uruchomienie aktualizacji nie jest uruchamiane automatycznie, co pozwala na jego przejrzenie. Jeśli przebieg wygenerowanej aktualizacji jest zadowalający, możesz uruchomić go i zarządzać nim, wykonując kroki opisane w temacie Zarządzanie uruchomieniem aktualizacji.

Uwaga

Po ręcznym wygenerowaniu przebiegu aktualizacji z profilu automatycznego uaktualniania wynikowy przebieg aktualizacji może już istnieć. Taka sytuacja występuje, ponieważ nazwa przebiegu aktualizacji opiera się na specyfikacji aktualizacji profilu automatycznej aktualizacji, która zmienia się tylko wtedy, gdy zmianie ulegają właściwości, takie jak obraz węzła lub wersja Kubernetes. W tym scenariuszu istniejący przebieg aktualizacji nie jest modyfikowany.

Następne kroki