Automatisieren von Upgrades von Kubernetes und Knotenimages über mehrere Cluster hinweg mithilfe von Azure Kubernetes Fleet Manager

Gilt für: ✔️ Flottenmanager ✔️ Flottenmanager mit Hubcluster

Die rechtzeitige und sichere Aktualisierung von Clustern ist ein wichtiges Anliegen von Plattformadministratoren. Wenn Sie Azure Kubernetes Fleet Manager Update Runs and Strategies einführen, können Sie autoupgradeprofile verwenden, um die Ausführung von Updates zu automatisieren, wenn neue Kubernetes- oder Knotenimageversionen veröffentlicht werden.

In diesem Artikel wird erläutert, wie Sie automatisch Aktualisierungsprofile verwenden, um Updateausführungen automatisch zu erstellen und auszuführen, wenn Azure Kubernetes Service (AKS) neue Kubernetes- oder Knotenimageversionen veröffentlicht.

Hinweis

  • Geplante Wartungsfenster: Durch automatische Upgrades ausgelöste Updateausführungen berücksichtigen geplante Wartungsfenster, die Sie auf AKS-Clusterebene festlegen. Details finden Sie unter geplanter Wartung über mehrere Mitgliedscluster hinweg.
  • Von der AKS-Plattform initiierte Upgrades: Wenn ein Mitgliedscluster nach ablauf der Karenzzeit der Plattform auf einer nicht unterstützten Kubernetes-Version verbleibt, kann AKS es direkt außerhalb Ihres Auto-Upgrade-Profils, der Updatestrategie oder des Wartungsfensters der Flotte aktualisieren. Siehe AKS plattformgesteuerte Upgrades , um Mitgliedscluster unter Flotten-Orchestrierung zu halten.

Bevor Sie anfangen

  • Lesen Sie die konzeptionelle Übersicht über Autoupgradeprofile, in der die in diesem Handbuch referenzierten Konfigurationen erläutert werden.
  • Richten Sie einen Flottenmanager mit einem oder mehreren Mitgliedsclustern ein. Wenn Sie keins haben, folgen Sie der Schnellstartanleitung , um einen Flotten-Manager zu erstellen und AKS-Clustern als Mitglieder beizutreten.
  • Konfigurieren Sie eine Updatestrategie. Verwenden Sie die Anweisungen im Artikel "Anleitungen zum Update ausführen". Sie benötigen den Ressourcenbezeichner der Updatestrategie, um sie mit einem Profil für automatische Upgrades zu verwenden, wenn Sie die Azure CLI nutzen.
  • Legen Sie die folgenden Umgebungsvariablen fest, die in den Azure CLI-Befehlen verwendet werden sollen:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export AUTOUPGRADEPROFILE=<upgrade-profile-name>
    # Optional
    export STRATEGYID=<strategy-id>
    export CLUSTER=<aks-cluster-name>
    
  • Installieren Sie die neueste Azure CLI Version. Informationen zum Ausführen einer Installation oder eines Upgrades finden Sie unter Installieren der Azure-Befehlszeilenschnittstelle.

  • Installieren Sie die neueste fleet Azure CLI Erweiterung. Verwenden Sie den az extension add Befehl, um die Erweiterung zu installieren.

    az extension add --name fleet
    

    Verwenden Sie den az extension update Befehl, um auf die neueste Version der Erweiterung zu aktualisieren.

    az extension update --name fleet
    
  • Installieren und konfigurieren Sie Terraform.

  • Installieren Sie die neueste Azure CLI Version. Informationen zum Ausführen einer Installation oder eines Upgrades finden Sie unter Installieren der Azure-Befehlszeilenschnittstelle. Sie verwenden die Azure CLI, um das von Terraform erstellten Profil für automatische Upgrades zu überprüfen.

  • Installieren Sie die neueste fleet Azure CLI Erweiterung. Verwenden Sie den az extension add Befehl, um die Erweiterung zu installieren.

    az extension add --name fleet
    

    Verwenden Sie den az extension update Befehl, um auf die neueste Version der Erweiterung zu aktualisieren.

    az extension update --name fleet
    
  • Das in diesem Artikel verwendete Terraform-Beispiel erstellt eine eigene Ressourcengruppe und einen Azure Kubernetes Fleet Manager und fügt keine AKS-Cluster als Fleetmitglieder hinzu. Um das resultierende Profil für das automatische Upgrade auf reale Aktualisierungsläufe anzuwenden, verbinden Sie vorhandene AKS-Cluster als Mitglieder der Flotte, nachdem Sie das Beispiel angewendet haben. Weitere Informationen finden Sie in der Schnellstartanleitung.

Hinweis

Cluster mit Agentpools, die aus Knotenpoolsnapshots erstellt wurden, sind je nach ausgewähltem Kanal für automatische Upgrades und Knotenimageoption wie folgt betroffen:

  • Node-Image-Kanal: Das Node-Image wird auf die von Fleet Manager festgelegte Version aktualisiert. Der Verweis auf die Momentaufnahme (creationData) wird aus dem Agentpool entfernt.
  • Stable-, Rapid- oder Target Kubernetes Nebenversionen-Kanäle mit festgelegtem Knotenabbild:
    • Einheitliches Bild: Das Knotenimage wird auf die von Fleet Manager festgelegte Version aktualisiert. Der Verweis auf die Momentaufnahme (creationData) wird aus dem Agentpool entfernt.
    • Neuestes Image: Der Agentpool behält seinen Verweis auf die Momentaufnahme (creationData) bei, und das Knotenimage wird nicht geändert.

Weitere Informationen finden Sie unter Grundlegendes zu Knotenimageupgrades und Momentaufnahmen.

Erstellen von Profilen für automatische Upgrades

Erstellen Von Profilen für das automatische Upgrade mithilfe des az fleet autoupgradeprofile create Befehls.

Sie können ein Auto-Upgrade-Profil deaktivieren, indem Sie das --disabled-Flag mit dem Befehl az fleet autoupgradeprofile create verwenden. Um ein deaktiviertes Profil für das automatische Upgrade erneut zu aktivieren, führen Sie den az fleet autoupgradeprofile create Befehl ohne das --disabled Flag erneut aus.

Hinweis

Das Deaktivieren eines Profils für automatische Upgrades wirkt sich nicht auf laufende Aktualisierungsläufe aus. Der Prozess stellt jedoch die Generierung neuer Aktualisierungsläufe ein, bis Sie das Profil wieder aktivieren.

Kubernetes-Updates im stabilen Kanal

Aktualisieren Sie auf die neueste unterstützte Kubernetes-Patchversion für Nebenversion N-1, wobei N die neueste unterstützte Nebenversion ist.

Aktualisieren Sie die Mitgliedscluster nacheinander

Aktualisieren Sie Member-Cluster sequenziell mit dem Befehl az fleet autoupgradeprofile create.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel Stable

Mitgliedscluster mithilfe einer vorhandenen Aktualisierungsstrategie aktualisieren

Aktualisieren Sie Mitgliedscluster mithilfe einer vorhandenen Aktualisierungsstrategie. Verwenden Sie den az fleet autoupgradeprofile create Befehl mit dem --update-strategy-id Parameter, der auf die ID der vorhandenen Updatestrategie festgelegt ist.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable

Mitgliedscluster mit einer vorhandenen Upgradestrategie und konsistentem Knotenimage aktualisieren

Aktualisieren Sie Mitgliedscluster mithilfe einer vorhandenen Updatestrategie, und stellen Sie sicher, dass die gleiche Knotenbildversion in jeder Azure Region verwendet wird. Verwenden Sie den az fleet autoupgradeprofile create-Befehl mit dem auf Consistent gesetzten --node-image-selection-Parameter. Alle Mitgliedscluster führen dieselbe Knotenimageversion aus.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection Consistent

Mitgliedscluster mit einer vorhandenen Upgradestrategie und dem neuesten Knotenimage aktualisieren

Aktualisieren Sie Mitgliedscluster mithilfe einer vorhandenen Updatestrategie, und stellen Sie sicher, dass die neueste verfügbare Knotenimageversion für jede Azure Region verwendet wird. Verwenden Sie den az fleet autoupgradeprofile create-Befehl mit dem auf Latest gesetzten --node-image-selection-Parameter. Mitglieder-Cluster können mehrere Knotenimageversionen ausführen.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection Latest

Updates des Knotenimagekanals

Aktualisieren Sie Knoten mit einem neu gepatchten Computerimage, das Sicherheitsupdates und Fehlerbehebungen enthält.

Aktualisieren Sie die Knoten-Images einzeln

Aktualisieren Sie die Node-Images für Mitgliedscluster nacheinander mithilfe des Befehls az fleet autoupgradeprofile create.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel NodeImage

Aktualisieren von Knotenimages mithilfe einer vorhandenen Updatestrategie

Aktualisieren Sie Node-Images für Member-Cluster mithilfe einer vorhandenen Update-Strategie. Verwenden Sie den az fleet autoupgradeprofile create Befehl, und legen Sie den --update-strategy-id Parameter auf die ID der vorhandenen Updatestrategie fest.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel NodeImage 

Zielupdates für Kubernetes-Nebenversionen

Aktualisieren Sie mithilfe des --target-kubernetes-version-Parameters auf eine definierte Kubernetes-Ziel-Minor-Version. Geben Sie die Version im Format {major version}.{minor version} an (z. B. 1.33). Das automatische Upgrade von Fleet Manager aktualisiert Membercluster automatisch auf die neueste Patchversion der angegebenen Zielversion, wenn der Patch verfügbar ist.

Von Bedeutung

Beachten Sie bei Verwendung des Nebenversionskanals "Target Kubernetes " die folgenden Informationen:

  • Sie müssen den Parameter --target-kubernetes-version festlegen. Dieser Parameter wird für andere Automatische Upgradekanäle (Rapid, Stable, Node Image und Security Patch) nicht unterstützt.
  • Das Long-Term-Support-Flag (LTS), --long-term-support, ist nur verfügbar, wenn der Kanal Target Kubernetes minor version verwendet wird. Legen Sie dieses Kennzeichen für andere Kanäle auf False.
  • Sie können nur LTS Kubernetes-Versionen (N-2) für ein Profil für das automatische Upgrade mit der --long-term-support Kennzeichnung auswählen. Damit das automatische Flottenupgrade in diesem Szenario weiterhin funktioniert, stellen Sie sicher, dass die Cluster im generierten Updatelauf alle mit LTS aktiviert sind. Nicht-LTS-Cluster führen dazu, dass die Updateausführung fehlschlägt, wenn der erste Nicht-LTS-Cluster gefunden wird.
  • Sie können die Kubernetes-Zielversion nicht auf eine zukünftige Kubernetes-Version festlegen, die AKS nicht veröffentlicht hat.

Aktualisieren Sie Mitgliedscluster auf eine bestimmte Kubernetes-Nebenversion

Aktualisieren Sie Membercluster auf eine bestimmte Kubernetes-Minor-Version, indem Sie den Befehl az fleet autoupgradeprofile create verwenden und den Parameter --target-kubernetes-version auf die gewünschte Version festlegen. Im folgenden Beispiel werden Membercluster auf Kubernetes, Version 1.33, aktualisiert.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.33"

Aktualisieren von Mitgliedsclustern mit aktiviertem LTS auf eine bestimmte Kubernetes-Minor-Version

Aktualisieren Sie Membercluster mit aktiviertem LTS auf eine bestimmte Kubernetes-Minor-Version, indem Sie den Befehl az fleet autoupgradeprofile create verwenden, wobei der Parameter --target-kubernetes-version auf die gewünschte Version gesetzt und das Flag --long-term-support aktiviert ist. Im folgenden Beispiel werden Membercluster auf Kubernetes, Version 1.29, aktualisiert, wobei LTS aktiviert ist.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.29" \
  --long-term-support

Aktualisierungen des Sicherheitspatchkanals

Aktualisieren Sie Linux-Knoten mit Sicherheitsfixes. Wenden Sie Updates nach Möglichkeit mithilfe von Livepatching an. Stellen Sie andernfalls ein neu gepatchtes Computerimage bereit, das Sicherheitsupdates enthält.

Aktualisieren Sie Knoten mit Sicherheitspatches nacheinander.

Aktualisieren Sie die Node-Images für Mitgliedscluster nacheinander mithilfe des Befehls az fleet autoupgradeprofile create.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel SecurityPatch

Aktualisieren von Knoten mit Sicherheitspatches mithilfe einer vorhandenen Updatestrategie

Aktualisieren Sie Node-Images für Member-Cluster mithilfe einer vorhandenen Update-Strategie. Verwenden Sie den az fleet autoupgradeprofile create Befehl, und legen Sie den --update-strategy-id Parameter auf die ID der vorhandenen Updatestrategie fest.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel SecurityPatch 

Anzeigen von Profilen für automatische Upgrades

Profile für automatische Upgrades sind Ressourcen auf Flottenebene. Sie sind nicht direkt einzelnen AKS-Clustern zugeordnet. Um zu ermitteln, welche Profile Ihre AKS-Cluster aktualisieren können, listen Sie zuerst die Flottenmitglieder auf und bestätigen, dass die Cluster Mitglieder der Flotte sind.

az fleet member list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --query "[].{memberName:name,clusterResourceId:clusterResourceId}" \
  --output table

Listet alle Profile für automatische Upgrades für die Flotte mithilfe des az fleet autoupgradeprofile list Befehls auf.

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --output table

Zeigen Sie mithilfe des az fleet autoupgradeprofile show Befehls ein bestimmtes Profil für das automatische Upgrade für die Flotte an. Überprüfen Sie den Kanal, den Status und updateStrategyId in der Ausgabe.

az fleet autoupgradeprofile show \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

Wenn updateStrategyId leer ist, verwendet das Profil die Aktualisierungsreihenfolge Eine nach der anderen und nimmt die Mitgliedscluster der Flotte nacheinander auf. Wenn updateStrategyId eine Ressourcen-ID enthält, zeigen Sie die referenzierte Strategie an, um die Phasen, Gruppen oder Mitgliedsselektoren zu überprüfen, die bestimmen, welche Fleet-Mitglieder in den generierten Updateausführungen enthalten sind.

PROFILE_STRATEGY_ID=$(az fleet autoupgradeprofile show \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --query updateStrategyId \
  --output tsv)

if [[ -n "$PROFILE_STRATEGY_ID" ]]; then
  az fleet updatestrategy show \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name "${PROFILE_STRATEGY_ID##*/}"
fi

Löschen eines Profils für automatische Upgrades

Verwenden Sie den Befehl az fleet autoupgradeprofile delete, um ein vorhandenes Profil für das automatische Upgrade zu löschen. Nachdem Sie diesen Befehl ausgeführt haben, werden Sie aufgefordert, den Löschvorgang zu bestätigen. Um die Bestätigung zu umgehen und das Profil sofort zu löschen, fügen Sie --yes in den Befehl ein.

az fleet autoupgradeprofile delete \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

Hinweis

Das Löschen eines Profils für automatische Upgrades wirkt sich nicht auf laufende Aktualisierungsläufe aus.

Erstellen von Profilen für automatische Upgrades

Das Terraform-Beispiel in diesem Abschnitt erstellt eine Ressourcengruppe, einen Azure Kubernetes Fleet Manager (ohne Hubcluster) und ein Auto-Upgrade-Profil der Flotte. Standardmäßig verwendet das Profil den Stable Kanal mit Latest Knotenbildauswahl und ist aktiviert. Legen Sie die Variablen auto_upgrade_disabled, node_image_selection, target_kubernetes_version, long_term_support und auto_upgrade_channel so fest, dass sie mit dem Kanal und den Optionen übereinstimmen, die in den vorherigen Abschnitten beschrieben werden. Im Beispiel wird keine Aktualisierungsstrategie festgelegt, sodass das resultierende Profil immer die Aktualisierungssequenz Schritt für Schritt verwendet.

Überprüfen Sie den Terraform-Code

Hinweis

Der Beispielcode für diesen Artikel befindet sich im Azure Terraform-GitHub-Repository. Zeigen Sie die Protokolldatei an, die die Testergebnisse aus den aktuellen und früheren Versionen von Terraform enthält.

Sehen Sie weitere Artikel und Beispielcode, die zeigen, wie Terraform zur Verwaltung von Azure-Ressourcen verwendet wird.

  1. Erstellen Sie ein Verzeichnis, um den Terraform-Beispielcode zu testen, und machen Sie es zum aktuellen Verzeichnis.

  2. Erstellen Sie eine Datei namens providers.tf, und fügen Sie den folgenden Code ein:

    terraform {
      required_version = ">= 1.9.0"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.0"
        }
        azapi = {
          source  = "Azure/azapi"
          version = "~> 2.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~> 3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    provider "azapi" {
    }
    
  3. Erstellen Sie eine Datei namens variables.tf, und fügen Sie den folgenden Code ein:

    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 "auto_upgrade_profile_name" {
      type        = string
      description = "Name of the Fleet auto-upgrade profile. If null, a unique name is generated."
      default     = null
    }
    
    variable "auto_upgrade_channel" {
      type        = string
      description = "Auto-upgrade channel used by the profile."
      default     = "Stable"
    
      validation {
        condition     = contains(["Rapid", "Stable", "NodeImage", "TargetKubernetesVersion"], var.auto_upgrade_channel)
        error_message = "Auto-upgrade channel must be one of: Rapid, Stable, NodeImage, TargetKubernetesVersion."
      }
    }
    
    variable "target_kubernetes_version" {
      type        = string
      description = "Target Kubernetes version in major.minor format, for example 1.31. Required when auto_upgrade_channel is TargetKubernetesVersion; otherwise leave null."
      default     = null
    
      validation {
        condition     = var.target_kubernetes_version == null || can(regex("^[0-9]+\\.[0-9]+$", var.target_kubernetes_version))
        error_message = "Target Kubernetes version must be in major.minor format, for example 1.31."
      }
    
      validation {
        condition     = var.auto_upgrade_channel != "TargetKubernetesVersion" || var.target_kubernetes_version != null
        error_message = "Target Kubernetes version is required when auto_upgrade_channel is TargetKubernetesVersion."
      }
    }
    
    variable "node_image_selection" {
      type        = string
      description = "Node image selection type. Latest uses the newest image per region; Consistent waits for the same image version across all member regions."
      default     = "Latest"
    
      validation {
        condition     = contains(["Latest", "Consistent"], var.node_image_selection)
        error_message = "Node image selection must be either Latest or Consistent."
      }
    }
    
    variable "auto_upgrade_disabled" {
      type        = bool
      description = "Set to true to stop the profile from creating new automatic update runs. In-progress update runs aren't cancelled."
      default     = false
    }
    
    variable "long_term_support" {
      type        = bool
      description = "Whether the profile targets long-term support Kubernetes versions. Only supported on the TargetKubernetesVersion channel."
      default     = false
    
      validation {
        condition     = !var.long_term_support || var.auto_upgrade_channel == "TargetKubernetesVersion"
        error_message = "Long-term support can only be enabled when auto_upgrade_channel is TargetKubernetesVersion."
      }
    }
    
    variable "tags" {
      type        = map(string)
      description = "Tags to apply to created resources."
      default = {
        environment = "demo"
        managed_by  = "terraform"
      }
    }
    
  4. Erstellen Sie eine Datei namens main.tf, und fügen Sie den folgenden Code ein:

    resource "random_string" "suffix" {
      length  = 5
      lower   = true
      numeric = true
      special = false
      upper   = false
    }
    
    locals {
      resource_group_name       = coalesce(var.resource_group_name, "rg-fleet-update-${random_string.suffix.result}")
      fleet_name                = coalesce(var.fleet_name, "fleet-update-${random_string.suffix.result}")
      auto_upgrade_profile_name = coalesce(var.auto_upgrade_profile_name, "stable-profile-${random_string.suffix.result}")
    
      # targetKubernetesVersion is only valid on the TargetKubernetesVersion channel.
      auto_upgrade_properties = merge(
        {
          channel         = var.auto_upgrade_channel
          disabled        = var.auto_upgrade_disabled
          longTermSupport = var.long_term_support
          nodeImageSelection = {
            type = var.node_image_selection
          }
        },
        var.auto_upgrade_channel == "TargetKubernetesVersion" ? {
          targetKubernetesVersion = var.target_kubernetes_version
        } : {}
      )
    }
    
    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
    }
    
    # autoUpgradeProfiles is only available on the preview API version, which requires schema validation to be disabled.
    resource "azapi_resource" "auto_upgrade_profile" {
      type                      = "Microsoft.ContainerService/fleets/autoUpgradeProfiles@2025-04-01-preview"
      name                      = local.auto_upgrade_profile_name
      parent_id                 = azurerm_kubernetes_fleet_manager.example.id
      schema_validation_enabled = false
    
      body = {
        properties = local.auto_upgrade_properties
      }
    }
    
  5. Erstellen Sie eine Datei namens outputs.tf, und fügen Sie den folgenden Code ein:

    output "resource_group_name" {
      description = "Name of the created resource group."
      value       = azurerm_resource_group.example.name
    }
    
    output "fleet_manager_name" {
      description = "Name of the Azure Kubernetes Fleet Manager."
      value       = azurerm_kubernetes_fleet_manager.example.name
    }
    
    output "fleet_manager_id" {
      description = "Resource ID of the Azure Kubernetes Fleet Manager."
      value       = azurerm_kubernetes_fleet_manager.example.id
    }
    
    output "auto_upgrade_profile_name" {
      description = "Name of the Fleet auto-upgrade profile."
      value       = azapi_resource.auto_upgrade_profile.name
    }
    
    output "auto_upgrade_profile_id" {
      description = "Resource ID of the Fleet auto-upgrade profile."
      value       = azapi_resource.auto_upgrade_profile.id
    }
    
  6. Kopieren Sie die Beispieldatei terraform.tfvars nach terraform.tfvars.example im selben Verzeichnis, und bearbeiten Sie dann die Werte so, dass sie dem Kanal für automatische Upgrades, der Auswahl des Knoten-Images und anderen Optionen Ihrer Wahl entsprechen.

    cp terraform.tfvars.example terraform.tfvars
    

Initialisieren, Überprüfen und Anwenden der Konfiguration

Führen Sie terraform init aus, um die Terraform-Bereitstellung zu initialisieren. Mit diesem Befehl werden die Azure Anbieter heruntergeladen, die zum Verwalten Ihrer Azure Ressourcen erforderlich sind.

terraform init

Führen Sie terraform fmt aus, um die Konfigurationsdateien konsistent zu formatieren.

terraform fmt

Führen Sie terraform validate , um zu bestätigen, dass die Konfigurationsdateien syntaktisch gültig sind.

terraform validate

Führen Sie terraform plan aus, um einen Ausführungsplan zu erstellen.

terraform plan -out main.tfplan

Führen Sie terraform apply aus, um den Ausführungsplan auf Ihre Cloudinfrastruktur anzuwenden.

terraform apply main.tfplan

Anzeigen von Profilen für automatische Upgrades

Rufen Sie die Ressourcengruppe, den Flotten-Manager und die Profilnamen für automatische Upgrades aus den Terraform-Ausgaben ab.

resource_group_name=$(terraform output -raw resource_group_name)
fleet_manager_name=$(terraform output -raw fleet_manager_name)
auto_upgrade_profile_name=$(terraform output -raw auto_upgrade_profile_name)

Zeigen Sie Kanal, Status und Aktualisierungssequenz des Auto-Upgrade-Profils mithilfe des Befehls az fleet autoupgradeprofile show an.

az fleet autoupgradeprofile show \
  --resource-group $resource_group_name \
  --fleet-name $fleet_manager_name \
  --name $auto_upgrade_profile_name

Im Beispiel wird keine Aktualisierungsstrategie festgelegt, sodass updateStrategyId in der Ausgabe leer ist und das Profil die Mitgliedscluster der Flotte sequenziell mithilfe der Aktualisierungssequenz Einzeln aktualisiert. Listet die aktuellen Flottenmitglieder mit dem folgenden Befehl auf.

az fleet member list \
  --resource-group $resource_group_name \
  --fleet-name $fleet_manager_name \
  --output table

Löschen eines Profils für automatische Upgrades

Führen Sie terraform plan mit dem Schalter -destroy aus, um einen Ausführungsplan zum Zerstören zu erstellen.

terraform plan -destroy -out main.destroy.tfplan

Führen Sie terraform apply aus, um den Destroy-Plan anzuwenden.

terraform apply main.destroy.tfplan

Warning

Dieser Befehl löscht das Profil für automatische Upgrades, den Azure Kubernetes Fleet Manager und die von diesem Beispiel erstellte Ressourcengruppe, nicht nur das Profil. Wenn Sie AKS-Clustern als Mitglieder der Flotte beigetreten sind, entfernen Sie sie zuerst als Flottenmitglieder. Vergewissern Sie sich, dass die Ressourcengruppe keine anderen Ressourcen enthält, die Sie beibehalten möchten, bevor Sie diesen Befehl ausführen.

Erstellen von Profilen für automatische Upgrades

Aktualisieren Sie auf die neueste unterstützte Kubernetes-Patchversion für Nebenversion N-1, wobei N die neueste unterstützte Nebenversion ist.

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Kubernetes Fleet Manager-Ressource.

  2. Wählen Sie im Menü „Dienst“ unter „Einstellungen“ die Option „Multicluster-Update“>Auto-Upgrade-Profile>+ Erstellen aus.

  3. Konfigurieren Sie beim Erstellen eines Profils für automatische Upgrades die folgenden Optionen:

    • Unter Details zum automatischen Upgrade:
      • Profilname für das automatische Upgrade: Geben Sie einen Namen für das Profil für das automatische Upgrade ein.
      • Status: Wählen Sie "Aktiviert " oder "Deaktiviert" aus. Deaktivierte Profile für automatische Upgrades werden nicht ausgelöst, wenn neue Versionen veröffentlicht werden.
      • Aktualisierungssequenz: Wählen Sie Phasen oder Einzeln aus.
    • Unter Automatische Upgrade-Auslöser:
      • Kanal: Wählen Sie "Stabil" aus.
      • Knotenbild: Wählen Sie "Neuestes Bild " oder "Konsistentes Bild" aus.
    • Unter Strategiedetails:
      • Wenn Sie eine Aktualisierungssequenz mit Phasen ausgewählt haben, wählen Sie eine vorhandene Strategie aus, oder erstellen Sie eine neue.
  4. Wählen Sie Erstellen aus, um das Profil für das automatische Upgrade zu erstellen.

    Screenshot des Azure Kubernetes Fleet Manager Azure-Portalbereichs zum Erstellen des Profils für das automatische Upgrade mithilfe des Stable-Kanals.

Anzeigen von Profilen für automatische Upgrades

Profile für automatische Upgrades sind Ressourcen auf Flottenebene. Sie sind nicht direkt einzelnen AKS-Clustern zugeordnet. Um zu ermitteln, welche Profile Ihre AKS-Cluster aktualisieren können, vergewissern Sie sich, dass die Cluster Mitglieder der Flotte sind, und überprüfen Sie dann die Profile der Flotte und deren Updatesequenzen.

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Kubernetes Fleet Manager-Ressource.
  2. Wählen Sie im Dienstmenü Flottenmitglieder aus, und vergewissern Sie sich, dass Ihre AKS-Cluster in der Mitgliederliste angezeigt werden.
  3. Wählen Sie unter Einstellungen die Option Multicluster-Update> aus.
  4. Wählen Sie ein Profil für das automatische Upgrade aus, um den Kanal, den Status und die Aktualisierungssequenz anzuzeigen.
  5. Wenn die Aktualisierungssequenz Eins nach dem anderen ist, umfasst das Profil die Mitgliedscluster der Fleet nacheinander. Wenn die Aktualisierungssequenz Phasen verwendet, überprüfen Sie die Phasen, Gruppen und Mitgliedsselektoren der zugeordneten Strategie, um zu bestimmen, welche Flottenmitglieder die generierten Updateläufe enthalten.

Löschen eines Profils für automatische Upgrades

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Kubernetes Fleet Manager-Ressource.
  2. Wählen Sie im Service-Menü unter Einstellungen die Option Multicluster-Aktualisierung>Auto-Upgrade-Profile aus.
  3. Wählen Sie das Profil aus, das Sie löschen möchten, und wählen Sie dann "Ja löschen>" aus, um dies zu bestätigen.

Hinweis

Das Löschen eines Profils für automatische Upgrades wirkt sich nicht auf laufende Aktualisierungsläufe aus.

Validierung automatischer Upgrades

Automatische Upgrades erfolgen nur, wenn neue Kubernetes- oder Knotenimages verfügbar sind. Wenn das automatische Upgrade ausgelöst wird, wird eine verknüpfte Updateausführung erstellt, sodass Sie Updateausführung verwalten verwenden können, um die Ergebnisse des automatischen Upgrades anzuzeigen.

Sie können Ihre vorhandenen Versionen auch als Referenz überprüfen.

Rufen Sie die aktuelle Kubernetes-Version für einen Mitgliedscluster ab, indem Sie den Befehl az aks show mit dem Parameter --query verwenden, um die Ausgabe nach der Eigenschaft currentKubernetesVersion zu filtern.

az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query currentKubernetesVersion

Rufen Sie die aktuelle Version des Knotenimages für einen Mitgliedscluster ab, indem Sie den az aks showBefehl mit dem --queryParameter verwenden, um die Ausgabe nach der Eigenschaft nodeImageVersion zu filtern.

az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"

Wenn die Aktualisierung abgeschlossen ist, können Sie diese Befehle erneut ausführen und die aktualisierten Versionen anzeigen, die bereitgestellt werden.

Generieren einer Updateausführung aus einem Profil für automatische Upgrades

Nachdem Sie ein Profil für das automatische Upgrade erstellt haben, kann es einige Zeit dauern, bevor eine neue Kubernetes- oder Knotenimageversion das automatische Upgrade auslöst, um eine Updateausführung zu erstellen und auszuführen. Mit dem automatischen Upgrade können Sie jederzeit ein neues Update generieren, indem Sie den az fleet autoupgradeprofile generate-update-run Befehl verwenden. Die resultierende Updateausführung basiert auf der von AKS veröffentlichten Kubernetes- oder Knotenimageversion.

Weitere Informationen zum Erstellen eines On-Demand-Updates aus einem Profil für automatische Upgrades finden Sie unter Generieren eines Updatelaufs aus einem Profil für automatische Upgrades.