Definiowanie strategii aktualizacji wielokrotnego użytku przy użyciu usługi Azure Kubernetes Fleet Manager

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

Administratorzy mogą kontrolować sekwencję aktualizacji klastrów zarządzanych przez flotę, definiując szereg etapów i grup. Mogą konfigurować, kiedy w tych etapach i grupach powinny występować zatwierdzenia i przerwy. Całą konfigurację można zapisać jako strategię aktualizacji, którą można zarządzać niezależnie od przebiegów aktualizacji lub automatycznych uaktualnień, co pozwala na ponowne użycie strategii zgodnie z potrzebami.

W tym artykule opisano sposób definiowania strategii aktualizacji przy użyciu grup i etapów.

Diagram przedstawiający przykładową strategię aktualizacji zawierającą dwa etapy aktualizacji. Każdy etap aktualizacji zawiera dwie grupy aktualizacji. Każda grupa aktualizacji zawiera dwa klastry członkowskie.

Wymagania wstępne

  • Zapoznaj się z koncepcyjnym omówieniem aktualizacji floty, który zawiera wyjaśnienie przebiegów aktualizacji, etapów, grup i strategii, 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 Szybki start, aby utworzyć zasób Fleet i dołączyć do klastrów usługi Azure Kubernetes Service (AKS) jako członków.

  • Ustaw następujące zmienne środowiskowe:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export CLUSTERID=<aks-cluster-resource-id>
    export STRATEGY=<strategy-name>
    
  • Jeśli korzystasz z instrukcji Azure CLI w tym artykule, zainstaluj najnowszą wersję Azure CLI. Aby zainstalować lub uaktualnić, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

  • Potrzebujesz również rozszerzenia fleet Azure CLI. Aby go zainstalować, uruchom 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
    
  • Zainstaluj i skonfiguruj rozwiązanie Terraform.

  • Instalowanie najnowszej wersji interfejsu wiersza polecenia platformy Azure. Aby zainstalować lub uaktualnić, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. Użyjesz Azure CLI, aby zweryfikować strategię aktualizacji utworzoną przez program Terraform.

  • Potrzebujesz również rozszerzenia fleet Azure CLI. Aby go zainstalować, uruchom następujące polecenie:

    az extension add --name fleet
    

    Uruchom polecenie , az extension update aby zaktualizować rozszerzenie do najnowszej wersji.

    az extension update --name fleet
    
  • Przykład Terraform użyty w tym artykule tworzy własną grupę zasobów oraz usługę Azure Kubernetes Fleet Manager bez klastra centralnego. Nie dołącza żadnych klastrów AKS do floty jako jej członków. Strategia aktualizacji przykładu odwołuje się do nazw grup aktualizacji group-1, group-2 i group-3. Aby strategia miała zastosowanie do rzeczywistych przebiegów aktualizacji, przypisz istniejące klastry członkowskie floty do tych nazw grup aktualizacji lub edytuj bloki przykładu group , aby były zgodne z własnymi nazwami grup aktualizacji.

Wybieranie klastrów dla strategii

Istnieją dwa sposoby wybierania klastrów uwzględnionych w każdym etapie i grupie strategii aktualizacji w celu kontrolowania sekwencji aktualizacji:

  • Etykiety członków (zalecane): przypisz etykiety do każdego członka floty i użyj memberSelector do wybierania członków według tych etykiet. Każdy członek może mieć wiele etykiet.
  • Grupy aktualizacji: przypisz grupę aktualizacji do każdego członka floty, a następnie zdefiniuj w strategii grupy, które odpowiadają tym nazwom grup. Każdy członek może należeć tylko do jednej grupy.

Tworzenie strategii aktualizacji przy użyciu selekcji członków (podgląd)

Użyj etykiet członków, aby wybierać klastry w strategiach aktualizacji. Zapewniają one większą elastyczność. Aby uzyskać szczegółowe informacje koncepcyjne, zobacz Grupowanie klastrów przy użyciu etykiet składowych.

Ważna

Funkcje wersji zapoznawczej Azure Kubernetes Fleet Manager są dostępne na zasadzie samoobsługi i wymagają wcześniejszego zgłoszenia chęci udziału. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi Azure Kubernetes Fleet Manager są częściowo objęte pomocą techniczną świadczoną w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego.

Stosowanie etykiet w klastrach członkowskich

Stosowanie etykiet podczas dodawania klastra członkowskiego do floty

Użyj polecenia az fleet member create, aby przypisać etykiety członkom floty. W poniższym przykładzie do klastra składowego są stosowane dwie etykiety: env=staging i tier=frontend:

az fleet member create \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name member1 \
    --member-cluster-id $CLUSTERID \
    --labels "env=staging tier=frontend"

Przypisz etykiety do istniejącego członka floty

Użyj polecenia az fleet member update, aby przypisać etykiety do elementów floty.

az fleet member update \
 --resource-group $GROUP \
 --fleet-name $FLEET \
 --name member1 \
 --labels "env=staging tier=frontend"

Tworzenie strategii aktualizacji

Strategia aktualizacji składa się z co najmniej jednego etapu, w którym etap może zawierać co najmniej jedną grupę aktualizacji.

Uwaga

Środowisko portalu Azure będzie dostępne przed ogólną dostępnością tej funkcji.

  1. Utwórz plik JSON, aby zdefiniować etapy i grupy dla przebiegu aktualizacji. Etapy są uruchamiane sekwencyjnie w kolejności, w której są wyświetlane w pliku JSON. Grupy są uruchamiane równolegle na każdym etapie. Poniższy przykładowy plik (example-labels-strategy.json) definiuje strategię z dwoma etapami, przy użyciu których można memberSelector wybierać klastry według etykiet i zawiera opcjonalne maxConcurrency ustawienia:

    • Etap staging używa poziomowego memberSelector, aby wybrać wszystkie klastry z etykietą env=staging i utworzyć jedną niejawną grupę.
    • Etap production używa etapowego poziomu memberSelector do wstępnego filtrowania wszystkich klastrów z etykietą env=production, a następnie definiuje dwie grupy, z których każda ma własne memberSelector, aby wybierać klastry na podstawie etykiety tier.

    Gdy memberSelector jest ustawione na grupie, pole grupy name jest używane tylko jako identyfikator wyświetlania do raportowania stanu oraz rejestrowania i nie jest już używane do wyboru członków floty w oparciu o aktualizację grupy.

    {
        "stages": [
            {
                "name": "staging",
                "memberSelector": { "byLabel": "env=staging" },
                "maxConcurrency": "1",
                "afterStageWaitInSeconds": 600
            },
            {
                "name": "production",
                "memberSelector": { "byLabel": "env=production" },
                "maxConcurrency": "4",
                "groups": [
                    {
                        "name": "frontend",
                        "memberSelector": { "byLabel": "tier=frontend" },
                        "maxConcurrency": "3"
                    },
                    {
                        "name": "backend",
                        "memberSelector": { "byLabel": "tier=backend" },
                        "maxConcurrency": "3"
                    }
                ]
            }
        ]
    }
    

Uwaga

Pole maxConcurrency jest opcjonalne i określa liczbę klastrów, które mogą być uaktualniane współbieżnie na poziomie etapu lub grupy. Użyj większej wartości, aby szybciej uaktualnić klastry w całej floty lub mniejszą wartość w celu bardziej kontrolowanego wdrożenia, które ogranicza promień wybuchu, jeśli wystąpią problemy.

Kiedy etap używa memberSelector bez grup (takich jak staging), wszyscy pasujący członkowie tworzą pojedynczą niejawną grupę, a maxConcurrency etapu bezpośrednio kontroluje współbieżność. Gdy grupy są zdefiniowane (na przykład production), poziom maxConcurrency etapu działa jako ogólny limit we wszystkich grupach.

W tym przykładzie etap staging ustawia maxConcurrency na "1", więc klastry przejściowe są uaktualniane pojedynczo. Etap production pozwala na równoczesne użycie do "4" klastrów z grupami frontend i backend, z każdą z tych grup ograniczoną do "3".

Wartości mogą być stałą liczbą całkowitą (na przykład "3") lub procentową (na przykład "50%"). W przypadku pominięcia system stosuje wartości domyślne. Aby uzyskać szczegółowe informacje na temat sposobu rozwiązywania tych wartości i ich wyższych limitów, zobacz Maksymalna współbieżność (wersja zapoznawcza).

  1. Utwórz nową strategię aktualizacji, korzystając z polecenia az fleet updatestrategy create z flagą --stages ustawioną na nazwę pliku JSON.

    az fleet updatestrategy create \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name $STRATEGY \
     --stages example-labels-strategy.json
    

Tworzenie strategii aktualizacji przy użyciu grup aktualizacji

Klastry można wybrać w strategiach aktualizacji, przypisując je do pojedynczej grupy aktualizacji. Zdefiniuj strategię aktualizacji, która przypisuje te grupy aktualizacji do etapów. W ramach etapu aktualizacji aktualizacje są stosowane równolegle do każdej grupy aktualizacji. W grupie aktualizacji klastry członkowskie są aktualizowane sekwencyjnie.

Uwaga

Element członkowski floty może należeć tylko do jednej grupy aktualizacji, ale grupa aktualizacji może mieć przypisanych do niej wielu członków floty. Sama grupa aktualizacji nie jest oddzielnym typem zasobu. Grupy aktualizacji to tylko ciągi reprezentujące odwołania od członków floty. Jeśli wszyscy członkowie floty z odwołaniami do wspólnej grupy aktualizacji zostaną usunięci, ta określona grupa aktualizacji przestanie istnieć.

Przypisywanie klastrów do grup aktualizacji

Przypisywanie do grupy podczas dodawania klastra członkowskiego do floty

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

  2. Z menu usługi w obszarze Ustawienia, wybierz pozycję Klastry członkowskie>Dodaj.

    Zrzut ekranu przedstawiający stronę witryny Azure Portal dla usługi Azure Kubernetes Fleet Manager na potrzeby dodawania klastrów członkowskich.

  3. Wybierz klaster, który chcesz dodać, a następnie wybierz pozycję Dalej: Przejrzyj i dodaj.

  4. Wprowadź nazwę grupy aktualizacji, do której chcesz przypisać klaster, a następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający stronę witryny Azure Portal dla przeglądu usługi Azure Kubernetes Fleet Manager i dodawania kroku dla klastrów członkowskich.

Przypisz klaster członkowski do grupy aktualizacji podczas dodawania klastra członkowskiego do floty przy użyciu az fleet member create polecenia z parametrem --update-group ustawionym na nazwę grupy aktualizacji.

az fleet member create \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name member1 \
    --member-cluster-id $CLUSTERID \
    --update-group group-1a

Przypisywanie istniejącego członka floty do grupy aktualizacji

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

  2. Z menu usługi w obszarze Ustawienia wybierz pozycję Klastry członkowskie.

  3. Wybierz klastry, które chcesz przypisać do grupy aktualizacji, a następnie wybierz pozycję Przypisz grupę aktualizacji

    Zrzut ekranu przedstawiający stronę witryny Azure Portal na potrzeby przypisywania istniejących klastrów członkowskich do grupy.

  4. Wprowadź nazwę grupy aktualizacji, do której chcesz przypisać klaster, a następnie wybierz pozycję Przypisz.

    Zrzut ekranu przedstawiający stronę witryny Azure Portal dla klastrów członkowskich z formularzem aktualizowania grupy klastra członkowskiego.

Przypisz istniejącego członka floty do grupy aktualizacji, używając polecenia az fleet member update z flagą --update-group ustawioną na nazwę grupy aktualizacji.

az fleet member update \
 --resource-group $GROUP \
 --fleet-name $FLEET \
 --name member1 \
 --update-group group-1

Tworzenie strategii aktualizacji

Strategia aktualizacji składa się z co najmniej jednego etapu, w którym etap może zawierać co najmniej jedną grupę 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 wielu klastrówStrategie, a następnie >.

  3. Wprowadź nazwę strategii.

  4. Podczas pierwszego wyświetlania strony zostanie wyświetlony diagram objaśnienia strategii aktualizacji, który może pomóc w wizualizacji sposobu działania strategii.

    Zrzut ekranu witryny Azure Portal przedstawiający tworzenie strategii aktualizacji.

  5. Wybierz Utwórz etap i wprowadź:

    • Nazwa etapu — nazwa etapu — musi być unikatowa we wszystkich nazwach etapów w strategii.
    • (Opcjonalnie) Zatwierdzenia etapu — wybierz tę opcję, jeśli chcesz poczekać na zatwierdzenie przed rozpoczęciem tego etapu lub po jego zakończeniu. Aby uzyskać dodatkowe informacje, zobacz Dodawanie zatwierdzeń do aktualizowania grup i etapów.
    • (Opcjonalnie) Wstrzymaj po etapie — wybierz tę opcję, jeśli chcesz zdefiniować pauzę przed przejściem do następnego etapu.
    • (Opcjonalnie) Czas trwania wstrzymania — wybierz wstępnie zdefiniowany czas trwania lub wprowadź wartość niestandardową w sekundach.

    Zrzut ekranu witryny Azure Portal przedstawiający etap strategii aktualizacji usługi Azure Kubernetes Fleet Manager.

  6. Przypisz co najmniej jedną grupę aktualizacji do etapu, a następnie wybierz pozycję Utwórz.

    Uwaga

    Maksymalna liczba grup aktualizacji w każdym etapie aktualizacji to 50.

    Zrzut ekranu witryny Azure Portal przedstawiający tworzenie etapu strategii aktualizacji usługi Azure Kubernetes Fleet Manager, wybierając grupy aktualizacji do uwzględnienia.

W tym scenariuszu tworzymy etapy i grupy, aby dopasować je do specyfikacji używanych w procesie w portalu Azure.

  1. Utwórz plik JSON, aby zdefiniować etapy i grupy dla przebiegu aktualizacji. Etapy są uruchamiane sekwencyjnie w kolejności, w której są wyświetlane w pliku JSON. Grupy są uruchamiane równolegle w każdym etapie, więc kolejność nie jest ważna. Poniższy przykładowy plik (example-stages.json) definiuje strategię z dwoma etapami i zawiera opcjonalne maxConcurrency i maxAllowedFailures ustawienia:

    {
        "stages": [
            {
                "name": "stage-1",
                "maxConcurrency": "7",
                "maxAllowedFailures": "2",
                "groups": [
                    {
                        "name": "group-1",
                        "maxConcurrency": "3",
                        "maxAllowedFailures": "1"
                    },
                    {
                        "name": "group-2",
                        "maxConcurrency": "50%",
                        "maxAllowedFailures": "25%"
                    }
                ],
                "afterStageWaitInSeconds": 300
            },
            {
                "name": "stage-2",
                "maxConcurrency": "100%",
                "maxAllowedFailures": "0",
                "groups": [
                    {
                        "name": "group-3",
                        "maxConcurrency": "2",
                        "maxAllowedFailures": "0"
                    }
                ]
            }
        ]
    }
    

    maxConcurrency

    Pole maxConcurrency jest opcjonalne i określa liczbę klastrów, które mogą być uaktualniane współbieżnie na poziomie etapu lub grupy. Użyj większej wartości, aby szybciej zaktualizować klastry we flocie, lub mniejszej, aby wdrażanie było bardziej kontrolowane i ograniczało skalę skutków w razie wystąpienia problemów.

    W tym przykładzie stage-1 ustawia maxConcurrency na "7", co umożliwia współbieżnie uaktualnianie do "7" klastrów na tym etapie. stage-1 W programie group-1 limituje współbieżność do "3" klastrów, co oznacza, że w tej grupie do "3" można uaktualniać jednocześnie. group-2 umożliwia współbieżne uaktualnienie do "50%" swoich klastrów (na przykład jeśli grupa zawiera 4 klastry, maksymalnie 2 może być uaktualnionych w tym samym czasie).

    Wartości mogą być stałą liczbą całkowitą (na przykład "3") lub procentową (na przykład "100%"). W przypadku pominięcia system stosuje wartości domyślne. Aby uzyskać szczegółowe informacje na temat sposobu rozwiązywania tych wartości i ich wyższych limitów, zobacz Maksymalna współbieżność (wersja zapoznawcza).

    maxAllowedFailures

    Pole maxAllowedFailures jest opcjonalne i określa, ile niepowodzeń aktualizacji klastrów członkowskich jest dopuszczalnych, zanim grupa lub etap zostaną oznaczone jako nieudane. Domyślnie (w przypadku braku ustawienia lub "0") pojedynczy błąd zatrzymuje cały przebieg aktualizacji.

    To ustawienie ocenia tylko liczbę niepowodzeń. Nie wymusza minimalnego współczynnika powodzenia. Grupa lub etap może zatem zakończyć się w Completed, nawet jeśli u niektórych lub wszystkich członków wystąpiło niepowodzenie, o ile w chwili, gdy Fleet podejmował decyzje dotyczące planowania, próg niepowodzeń nie został przekroczony.

    W tym przykładzie stage-1 ustawia maxAllowedFailures na "2", co pozwala tolerować maksymalnie dwie awarie członków na całym etapie. W obrębie stage-1 składnik group-1 toleruje awarię "1", a składnik group-2 toleruje awarię "25%" swoich członków (na przykład jeśli grupa zawiera 4 klastry, tolerowana jest maksymalnie 1 awaria). stage-2 ustawia maxAllowedFailures na "0", co oznacza, że każde niepowodzenie natychmiast przerywa wykonywanie, co jest często przydatne na etapach produkcyjnych.

    W przypadku większości wdrożeń wybieraj wartości procentowe, ponieważ lepiej się skalują przy różnej wielkości grup. Unikaj ustawiania wartości równej całkowitej liczbie członków, chyba że celowo chcesz uzyskać efekt, w którym ten segment w praktyce nigdy nie kończy się niepowodzeniem.

    Wartości mogą być stałą liczbą całkowitą (na przykład "3") lub procentową (na przykład "25%"). Aby uzyskać szczegółowe informacje na temat sposobu rozwiązywania tych wartości, zobacz Maksymalna dozwolona liczba niepowodzeń (wersja zapoznawcza).

  2. Utwórz nową strategię aktualizacji, korzystając z polecenia az fleet updatestrategy create z flagą --stages ustawioną na nazwę pliku JSON.

    az fleet updatestrategy create \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name $STRATEGY \
     --stages example-stages.json
    

Przykład narzędzia Terraform w tej sekcji tworzy tę samą dwuetapową strukturę strategii, którą pokazano w poprzednim przykładzie interfejsu wiersza polecenia Azure CLI: stage-1 zawiera group-2 i stage-2, które są aktualizowane równolegle, po czym następuje 300-sekundowe oczekiwanie, a następnie group-3 aktualizuje group-1. W przeciwieństwie do przykładu JSON dla interfejsu wiersza polecenia ten przykład nie ustawia maxAllowedFailures ani maxConcurrency na żadnym etapie ani w żadnej grupie, więc Fleet stosuje wartości domyślne. Aby dodać te ustawienia, rozszerz bloki stage i group w main.tf za pomocą odpowiednich argumentów azurerm_kubernetes_fleet_update_strategy.

Przejrzyj kod narzędzia Terraform

  1. Utwórz katalog, aby przetestować przykładowy kod narzędzia Terraform i utworzyć go jako bieżący katalog.

  2. Utwórz plik o nazwie providers.tfi wstaw następujący kod:

    terraform {
      required_version = ">= 1.9.0"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.77"
        }
        random = {
          source  = "hashicorp/random"
          version = "~> 3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  3. Utwórz plik o nazwie variables.tfi wstaw następujący kod:

    variable "location" {
      type        = string
      description = "Azure region where the resource group and Fleet Manager are created."
      default     = "eastus"
    }
    
    variable "resource_group_name" {
      type        = string
      description = "Name of the resource group. If null, a unique name is generated."
      default     = null
    }
    
    variable "fleet_name" {
      type        = string
      description = "Name of the Azure Kubernetes Fleet Manager. If null, a unique name is generated."
      default     = null
    }
    
    variable "update_strategy_name" {
      type        = string
      description = "Name of the Fleet update strategy."
      default     = "example-update-strategy"
    }
    
    variable "tags" {
      type        = map(string)
      description = "Tags to apply to created resources."
      default = {
        environment = "demo"
        managed_by  = "terraform"
      }
    }
    
  4. Utwórz plik o nazwie main.tfi wstaw następujący kod:

    resource "random_string" "suffix" {
      length  = 6
      lower   = true
      numeric = true
      special = false
      upper   = false
    }
    
    locals {
      resource_group_name = coalesce(var.resource_group_name, "rg-fleet-update-strategy-${random_string.suffix.result}")
      fleet_name          = coalesce(var.fleet_name, "fleet-update-strategy-${random_string.suffix.result}")
    }
    
    resource "azurerm_resource_group" "example" {
      name     = local.resource_group_name
      location = var.location
      tags     = var.tags
    }
    
    resource "azurerm_kubernetes_fleet_manager" "example" {
      name                = local.fleet_name
      location            = azurerm_resource_group.example.location
      resource_group_name = azurerm_resource_group.example.name
      tags                = var.tags
    }
    
    resource "azurerm_kubernetes_fleet_update_strategy" "example" {
      name                        = var.update_strategy_name
      kubernetes_fleet_manager_id = azurerm_kubernetes_fleet_manager.example.id
    
      stage {
        name = "stage-1"
    
        group {
          name = "group-1"
        }
    
        group {
          name = "group-2"
        }
    
        after_stage_wait_in_seconds = 300
      }
    
      stage {
        name = "stage-2"
    
        group {
          name = "group-3"
        }
      }
    }
    
  5. Utwórz plik o nazwie outputs.tfi wstaw następujący kod:

    output "resource_group_name" {
      description = "Name of the created resource group."
      value       = azurerm_resource_group.example.name
    }
    
    output "fleet_manager_id" {
      description = "Resource ID of the Azure Kubernetes Fleet Manager."
      value       = azurerm_kubernetes_fleet_manager.example.id
    }
    
    output "fleet_manager_name" {
      description = "Name of the Azure Kubernetes Fleet Manager."
      value       = azurerm_kubernetes_fleet_manager.example.name
    }
    
    output "update_strategy_id" {
      description = "Resource ID of the Fleet update strategy."
      value       = azurerm_kubernetes_fleet_update_strategy.example.id
    }
    
  6. Skopiuj plik przykładu terraform.tfvars.example do terraform.tfvars w tym samym katalogu, a następnie edytuj wartości dla regionu Azure, nazwy grupy zasobów, nazwy floty, nazwy strategii aktualizacji i tagów, których chcesz użyć.

    cp terraform.tfvars.example terraform.tfvars
    

Inicjowanie, weryfikowanie i stosowanie konfiguracji

Uruchom terraform init, aby zainicjalizować wdrożenie Terraform. To polecenie pobiera dostawców Azure wymaganych do zarządzania zasobami Azure.

terraform init

Uruchom narzędzie terraform fmt , aby spójnie sformatować pliki konfiguracji.

terraform fmt

Uruchom terraform validate, aby sprawdzić, czy pliki konfiguracji są poprawne składniowo.

terraform validate

Uruchom terraform plan, aby utworzyć plan realizacji.

terraform plan -out main.tfplan

Uruchom terraform apply, aby zastosować plan wykonawczy do infrastruktury chmury.

terraform apply main.tfplan

Weryfikowanie strategii aktualizacji

Pobierz grupę zasobów i nazwy menedżerów floty z danych wyjściowych programu Terraform i wyodrębnij nazwę strategii z danych wyjściowych update_strategy_id .

resource_group_name=$(terraform output -raw resource_group_name)
fleet_manager_name=$(terraform output -raw fleet_manager_name)
update_strategy_name=$(terraform output -raw update_strategy_id | awk -F'/' '{print $NF}')

Pokaż etapy i grupy strategii przy użyciu az fleet updatestrategy show polecenia .

az fleet updatestrategy show \
  --resource-group $resource_group_name \
  --fleet-name $fleet_manager_name \
  --name $update_strategy_name

Tablica stages w danych wyjściowych polecenia pokazuje stage-1 z group-1 i group-2 oraz wartość 300 równą afterStageWaitInSeconds, po czym następuje stage-2 z group-3, zgodnie ze strategią zdefiniowaną w main.tf.

Uprzątnij zasoby

Uruchom terraform plan za pomocą flagi -destroy, aby utworzyć plan wykonania zniszczenia zasobów.

terraform plan -destroy -out main.destroy.tfplan

Uruchom terraform apply, aby zastosować plan niszczenia.

terraform apply main.destroy.tfplan

Warning

To polecenie usuwa strategię aktualizacji, Azure Kubernetes Fleet Manager i grupę zasobów utworzoną przez ten przykład, a nie tylko strategię. Upewnij się, że grupa zasobów nie zawiera innych zasobów, które chcesz zachować przed uruchomieniem tego polecenia.

Następne kroki

Strategię aktualizacji można użyć w ramach ręcznego uruchomienia aktualizacji lub profilu automatycznego uaktualniania. Zobacz: