Automatizzare gli aggiornamenti di Kubernetes e immagini dei nodi in più cluster usando Azure Kubernetes Fleet Manager

Si applica a: ✔️ Fleet Manager ✔️ Fleet Manager con cluster hub

Mantenere aggiornati i cluster in modo tempestivo e sicuro è un problema fondamentale per gli amministratori della piattaforma. Quando si adottano le esecuzioni degli aggiornamenti e le strategie di Azure Kubernetes Fleet Manager, è possibile usare i profili di aggiornamento automatico per automatizzare l'esecuzione degli aggiornamenti quando vengono rilasciate nuove versioni di Kubernetes o delle immagini dei nodi.

Questo articolo illustra come usare i profili di aggiornamento automatico per creare ed eseguire automaticamente le esecuzioni degli aggiornamenti quando Servizio Azure Kubernetes (AKS) rilascia nuove versioni di kubernetes o di immagini del nodo.

Nota

  • Finestre di manutenzione pianificata: Le esecuzioni degli aggiornamenti attivati dall'aggiornamento automatico rispettano le finestre di manutenzione pianificata impostate a livello di cluster del servizio Azure Kubernetes. Per ulteriori dettagli, vedere manutenzione pianificata in più cluster member.
  • Aggiornamenti avviati dalla piattaforma AKS: Se un cluster membro rimane in una versione Kubernetes non supportata dopo il periodo di tolleranza del supporto della piattaforma, AKS può aggiornarlo direttamente, al di fuori del profilo di aggiornamento automatico della flotta, della strategia di aggiornamento o della finestra di manutenzione. Per informazioni su come mantenere i cluster membri nell'orchestrazione fleet, vedere Aggiornamenti avviati dalla piattaforma AKS.

Prima di iniziare

  • Impostare le variabili di ambiente seguenti da usare nei comandi dell'interfaccia della riga di comando di Azure:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export AUTOUPGRADEPROFILE=<upgrade-profile-name>
    # Optional
    export STRATEGYID=<strategy-id>
    export CLUSTER=<aks-cluster-name>
    
  • Installare la versione interfaccia della riga di comando di Azure più recente. Per eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

  • Installare l'estensione interfaccia della riga di comando di Azure più recente fleet . Usare il az extension add comando per installare l'estensione.

    az extension add --name fleet
    

    Usare il comando per eseguire l'aggiornamento az extension update alla versione più recente dell'estensione.

    az extension update --name fleet
    
  • Installare e configurare Terraform.

  • Installare la versione interfaccia della riga di comando di Azure più recente. Per eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure. Usare il interfaccia della riga di comando di Azure per verificare il profilo di aggiornamento automatico creato da Terraform.

  • Installare l'estensione interfaccia della riga di comando di Azure più recente fleet . Usare il az extension add comando per installare l'estensione.

    az extension add --name fleet
    

    Usare il comando per eseguire l'aggiornamento az extension update alla versione più recente dell'estensione.

    az extension update --name fleet
    
  • L'esempio di Terraform usato in questo articolo crea il proprio gruppo di risorse e Gestione flotta Kubernetes di Azure e non aggiunge alcun cluster AKS come membro della flotta. Per testare il profilo di aggiornamento automatico risultante con esecuzioni di aggiornamento reali, aggiungere i cluster AKS esistenti alla Fleet come membri dopo aver applicato l'esempio. Per altre informazioni, vedere la guida introduttiva.

Nota

I cluster con pool di agenti creati da snapshot del pool di nodi sono interessati come segue in base al canale di aggiornamento automatico selezionato e all'opzione di immagine del nodo:

  • Canale immagine del nodo: l'immagine del nodo viene aggiornata alla versione determinata da Fleet Manager. Il riferimento allo snapshot (creationData) viene rimosso dal pool di agenti.
  • Canali per la versione secondaria di Kubernetes Stable o Rapid, o Target con immagine del nodo impostata su:
    • Immagine coerente: l'immagine del nodo viene aggiornata alla versione determinata da Fleet Manager. Il riferimento allo snapshot (creationData) viene rimosso dal pool di agenti.
    • Immagine più recente: il pool di agenti mantiene il riferimento allo snapshot (creationData) e l'immagine del nodo non viene modificata.

Per altre informazioni, vedere Guida agli upgrade delle immagini dei nodi e agli snapshot.

Creare profili di aggiornamento automatico

Creare profili di aggiornamento automatico usando il az fleet autoupgradeprofile create comando .

È possibile disabilitare un profilo di aggiornamento automatico includendo il --disabled flag con il az fleet autoupgradeprofile create comando . Per riabilitare un profilo di aggiornamento automatico disabilitato, eseguire di nuovo il az fleet autoupgradeprofile create comando senza il --disabled flag .

Nota

La disabilitazione di un profilo di aggiornamento automatico non influisce sulle esecuzioni degli aggiornamenti in corso. Tuttavia, il processo interrompe la generazione di nuovi aggiornamenti fino a quando non si riabilita il profilo.

Aggiornamenti del canale stabile di Kubernetes

Eseguire l'aggiornamento alla versione più recente della patch di Kubernetes supportata nella versione secondaria N-1, dove N è la versione secondaria supportata più recente.

Aggiornare i cluster membri uno per uno

Aggiorna i cluster membri in sequenza utilizzando il comando az fleet autoupgradeprofile create.

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

Aggiornare i cluster membri usando una strategia di aggiornamento esistente

Aggiornare i cluster membri usando una strategia di aggiornamento esistente. Usare il az fleet autoupgradeprofile create comando con il --update-strategy-id parametro impostato sull'ID della strategia di aggiornamento esistente.

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

Aggiornare i cluster membri usando una strategia di aggiornamento esistente con un'immagine del nodo coerente

Aggiornare i cluster membri usando una strategia di aggiornamento esistente e assicurarsi che la stessa versione dell'immagine del nodo venga usata in ogni area Azure. Usare il az fleet autoupgradeprofile create comando con il --node-image-selection parametro impostato su Consistent. Tutti i cluster membri eseguono la stessa versione dell'immagine del nodo.

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

Aggiornare i cluster membri usando una strategia di aggiornamento esistente con l'immagine del nodo più recente

Aggiornare i cluster membri usando una strategia di aggiornamento esistente e assicurarsi che venga usata la versione più recente dell'immagine del nodo disponibile per ogni area Azure. Usare il az fleet autoupgradeprofile create comando con il --node-image-selection parametro impostato su Latest. I cluster membri possono eseguire più versioni dell'immagine del nodo.

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

Aggiornamenti del canale d'immagine del nodo

Aggiornare i nodi con una nuova immagine del computer con patch che include correzioni di sicurezza e correzioni di bug.

Aggiornare le immagini dei nodi una alla volta

Aggiorna in sequenza le immagini dei nodi dei cluster membri utilizzando il comando az fleet autoupgradeprofile create.

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

Aggiornare le immagini dei nodi usando una strategia di aggiornamento esistente

Aggiornare le immagini dei nodi per i cluster membri usando una strategia di aggiornamento esistente. Usare il az fleet autoupgradeprofile create comando e impostare il --update-strategy-id parametro sull'ID della strategia di aggiornamento esistente.

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

Aggiornamenti della versione secondaria di Kubernetes Target

Aggiornare a una versione secondaria di Kubernetes di destinazione definita usando il parametro --target-kubernetes-version. Specificare la versione nel formato {major version}.{minor version} (ad esempio, 1.33). L'aggiornamento automatico di Fleet Manager aggiorna automaticamente i cluster membri alla versione patch più recente della versione di destinazione specificata quando la patch è disponibile.

Importante

Quando si usa il canale della versione secondaria di Kubernetes Target, tenere presenti le informazioni seguenti:

  • Specificare il parametro --target-kubernetes-version. Questo parametro non è supportato per gli altri canali di aggiornamento automatico (Rapid, Stable, immagine del nodo e patch di sicurezza).
  • Il flag di supporto a lungo termine (LTS) --long-term-support è disponibile solo quando si usa il canale della versione secondaria di Kubernetes Target. Per altri canali, impostare questo flag su False.
  • È possibile selezionare solo le versioni di Kubernetes LTS (N-2) per un profilo di aggiornamento automatico con il --long-term-support flag . Affinché l'aggiornamento automatico di Fleet continui a funzionare in questo scenario, assicurarsi che i cluster nell'esecuzione di aggiornamento generata siano tutti abilitati per LTS. I cluster non LTS causano l'esito negativo dell'esecuzione dell'aggiornamento quando viene rilevato il primo cluster non LTS.
  • Non è possibile impostare la versione di destinazione di Kubernetes su una versione futura di Kubernetes che AKS non ha ancora rilasciato.

Aggiornare i cluster membri a una versione secondaria di Kubernetes specifica

Aggiornare i cluster membri a una versione minor specifica di Kubernetes usando il comando az fleet autoupgradeprofile create con il parametro --target-kubernetes-version impostato sul valore della versione desiderata. L'esempio seguente aggiorna i cluster membri a Kubernetes versione 1.33.

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

Aggiornare i cluster membri con LTS abilitato a una versione secondaria di Kubernetes specifica

Aggiornare i cluster dei membri con LTS abilitato a una versione secondaria di Kubernetes specifica usando il comando az fleet autoupgradeprofile create con il parametro --target-kubernetes-version impostato sulla versione desiderata e abilitando il flag --long-term-support. L'esempio seguente aggiorna i cluster membri a Kubernetes versione 1.29 con LTS abilitato.

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

Aggiornamenti del canale delle patch di sicurezza

Aggiornare i nodi Linux con correzioni di sicurezza. Applica gli aggiornamenti tramite patching live quando possibile. In caso contrario, distribuisci una nuova immagine macchina aggiornata con patch che contiene correzioni di sicurezza.

Aggiornare i nodi con patch di sicurezza uno alla volta

Aggiorna in sequenza le immagini dei nodi dei cluster membri utilizzando il comando az fleet autoupgradeprofile create.

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

Aggiornare i nodi con patch di sicurezza usando una strategia di aggiornamento esistente

Aggiornare le immagini dei nodi per i cluster membri usando una strategia di aggiornamento esistente. Usare il az fleet autoupgradeprofile create comando e impostare il --update-strategy-id parametro sull'ID della strategia di aggiornamento esistente.

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

Visualizzare i profili di aggiornamento automatico

I profili di aggiornamento automatico sono risorse a livello di flotta. Non sono collegati direttamente a singoli cluster del servizio Azure Kubernetes. Per determinare quali profili possono aggiornare i cluster AKS, elencare prima i membri della Fleet e verificare che i cluster siano membri della Fleet.

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

Elencare tutti i profili di aggiornamento automatico per la flotta usando il az fleet autoupgradeprofile list comando .

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

Visualizzare un profilo di aggiornamento automatico specifico per la Flotta usando il az fleet autoupgradeprofile show comando . Esaminare il canale, lo stato e updateStrategyId nell'output.

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

Se updateStrategyId è vuoto, il profilo utilizza la sequenza di aggiornamento Uno per uno e include i cluster membri della Fleet in modo sequenziale. Se updateStrategyId contiene un ID della risorsa, mostra la strategia di riferimento per esaminare le fasi, i gruppi o i selettori dei membri che determinano quali membri della flotta sono inclusi nelle esecuzioni di aggiornamento generate.

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

Eliminare un profilo di aggiornamento automatico

Usare il az fleet autoupgradeprofile delete comando per eliminare un profilo di aggiornamento automatico esistente. Dopo aver eseguito questo comando, viene richiesto di confermare l'eliminazione. Per ignorare la conferma ed eliminare immediatamente il profilo, includere --yes nel comando .

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

Nota

L'eliminazione di un profilo di aggiornamento automatico non influisce sulle esecuzioni degli aggiornamenti in corso.

Creare profili di aggiornamento automatico

L'esempio Terraform in questa sezione crea un gruppo di risorse, un Azure Kubernetes Fleet Manager (senza un cluster hub) e un profilo di aggiornamento automatico fleet. Per impostazione predefinita, il profilo usa il canale Stable con la selezione dell'immagine del nodo Latest ed è abilitato. Impostare le auto_upgrade_channelvariabili , auto_upgrade_disablednode_image_selection, target_kubernetes_version, e long_term_support in modo che corrispondano al canale e alle opzioni descritte nelle sezioni precedenti. L'esempio non imposta una strategia di aggiornamento, quindi il profilo risultante usa sempre la sequenza di aggiornamento One by one.

Esaminare il codice Terraform

Nota

Il codice di esempio per questo articolo si trova nel repository Azure Terraform GitHub. Visualizzare il file di log contenente i risultati del test delle versioni correnti e precedenti di Terraform.

Vedere altri articoli e codice di esempio che illustrano come usare Terraform per gestire le risorse di Azure.

  1. Creare una directory per testare il codice Terraform di esempio e impostarla come directory corrente.

  2. Creare un file denominato providers.tfe inserire il codice seguente:

    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. Creare un file denominato variables.tfe inserire il codice seguente:

    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. Creare un file denominato main.tfe inserire il codice seguente:

    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. Creare un file denominato outputs.tfe inserire il codice seguente:

    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. Copiare il file di esempio terraform.tfvars in terraform.tfvars.example nella stessa directory, quindi modificare i valori in modo che corrispondano al canale di aggiornamento automatico, alla selezione dell'immagine del nodo e alle altre opzioni desiderate.

    cp terraform.tfvars.example terraform.tfvars
    

Inizializzare, convalidare e applicare la configurazione

Per inizializzare la distribuzione di Terraform, eseguire terraform init. Questo comando scarica i provider di Azure necessari per gestire le risorse Azure.

terraform init

Eseguire terraform fmt per formattare i file di configurazione in modo coerente.

terraform fmt

Eseguire terraform validate per verificare che i file di configurazione siano sintatticamente validi.

terraform validate

Eseguire terraform plan per creare un piano di esecuzione.

terraform plan -out main.tfplan

Esegui terraform apply per applicare il piano di esecuzione all'infrastruttura cloud.

terraform apply main.tfplan

Visualizzare i profili di aggiornamento automatico

Recupera il gruppo di risorse, Fleet Manager e i nomi dei profili di aggiornamento automatico dagli output di Terraform.

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)

Visualizzare il canale, lo stato e la sequenza di aggiornamento del profilo di aggiornamento automatico usando il az fleet autoupgradeprofile show comando .

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

L'esempio non imposta una strategia di aggiornamento, quindi updateStrategyId nell'output è vuoto e il profilo aggiorna i cluster membri della Fleet in sequenza, utilizzando la sequenza di aggiornamento Uno per uno. Elenca gli attuali membri di Fleet con il comando seguente.

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

Eliminare un profilo di aggiornamento automatico

Esegui terraform plan con il flag -destroy per creare un piano di esecuzione per la distruzione.

terraform plan -destroy -out main.destroy.tfplan

Esegui terraform apply per applicare il piano di distruzione.

terraform apply main.destroy.tfplan

Avvertimento

Questo comando elimina il profilo di aggiornamento automatico, il Azure Kubernetes Fleet Manager e il gruppo di risorse creato da questo esempio, non solo il profilo. Se sono stati aggiunti cluster AKS come membri della flotta, rimuoverli prima della flotta. Verificare che il gruppo di risorse non contenga altre risorse da mantenere prima di eseguire questo comando.

Creare profili di aggiornamento automatico

Eseguire l'aggiornamento alla versione più recente della patch di Kubernetes supportata nella versione secondaria N-1, dove N è la versione secondaria supportata più recente.

  1. Nel portale di Azure, naviga alla risorsa Azure Kubernetes Fleet Manager.

  2. Dal menu del servizio, in Impostazioni, selezionare Aggiornamento Multicluster>Profili di aggiornamento automatico>+ Crea.

  3. In Crea un profilo di aggiornamento automatico configurare le opzioni seguenti:

    • In Dettagli aggiornamento automatico:
      • Nome del profilo di aggiornamento automatico: immettere un nome per il profilo di aggiornamento automatico.
      • Stato: selezionare Abilitato o Disabilitato. I profili di aggiornamento automatico disabilitati non vengono attivati quando vengono rilasciate nuove versioni.
      • Sequenza di aggiornamento: selezionare Fasi o Una alla sola.
    • Sotto Trigger di aggiornamento automatico:
      • Canale: selezionare Stabile.
      • Immagine del nodo: selezionare Immagine più recente o Immagine coerente.
    • Sotto Dettagli della strategia:
      • Se è stata selezionata una sequenza di aggiornamento usando fasi, selezionare una strategia esistente o crearne una nuova.
  4. Selezionare Crea per creare il profilo di aggiornamento automatico.

    Screenshot del riquadro del portale di Azure Kubernetes Fleet Manager per la creazione del profilo di aggiornamento automatico usando il canale Stable.

Visualizzare i profili di aggiornamento automatico

I profili di aggiornamento automatico sono risorse a livello di flotta. Non sono collegati direttamente a singoli cluster del servizio Azure Kubernetes. Per determinare quali profili possono aggiornare i cluster AKS, verificare che i cluster siano membri della Fleet, quindi esaminarne i profili e le relative sequenze di aggiornamento.

  1. Nel portale di Azure, naviga alla risorsa Azure Kubernetes Fleet Manager.
  2. Nel menu del servizio, seleziona Fleet members e verifica che i cluster AKS siano presenti nell'elenco dei membri.
  3. In Impostazioni, seleziona Aggiornamento multicluster>Profili di aggiornamento automatico.
  4. Selezionare un profilo di aggiornamento automatico per visualizzare il canale, lo stato e la sequenza di aggiornamento.
  5. Se la sequenza di aggiornamento è one-by-one, il profilo include i cluster membri della Flotta in sequenza. Se la sequenza di aggiornamento usa Fasi, rivedi le fasi, i gruppi e i selettori dei membri della strategia associata per determinare quali membri della fleet sono inclusi nelle esecuzioni di aggiornamento generate.

Eliminare un profilo di aggiornamento automatico

  1. Nel portale di Azure, naviga alla risorsa Azure Kubernetes Fleet Manager.
  2. Dal menu del servizio, in Impostazioni, selezionare Aggiornamento multicluster>Profili di aggiornamento automatico.
  3. Selezionare il profilo da eliminare e quindi selezionare Elimina>sì per confermare.

Nota

L'eliminazione di un profilo di aggiornamento automatico non influisce sulle esecuzioni degli aggiornamenti in corso.

Convalidare gli aggiornamenti automatici

Gli aggiornamenti automatici vengono eseguiti solo quando sono disponibili nuove immagini di nodi o Kubernetes. Quando viene attivato l'aggiornamento automatico, viene creata un'esecuzione di aggiornamento collegato, quindi è possibile usare l'esecuzione dell'aggiornamento gestito per visualizzare i risultati dell'aggiornamento automatico.

È anche possibile controllare le versioni esistenti come baseline.

Ottieni la versione corrente di Kubernetes per un cluster membro usando il comando az aks show con il parametro --query per filtrare l'output in base alla proprietà currentKubernetesVersion.

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

Ottieni la versione corrente dell'immagine del nodo per un cluster membro usando il comando az aks show con il parametro --query per filtrare l'output in base alla proprietà nodeImageVersion.

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

Al termine dell'esecuzione dell'aggiornamento, è possibile eseguire di nuovo questi comandi e visualizzare le versioni aggiornate distribuite.

Generare un'esecuzione di aggiornamento da un profilo di aggiornamento automatico

Dopo aver creato un profilo di aggiornamento automatico, potrebbe trascorrere del tempo prima che una nuova versione di Kubernetes o immagine del nodo attivi l'aggiornamento automatico per creare ed eseguire un'esecuzione di aggiornamento. L'aggiornamento automatico consente di generare una nuova esecuzione di aggiornamento in qualsiasi momento usando il az fleet autoupgradeprofile generate-update-run comando . L'esecuzione dell'aggiornamento risultante si basa sulla versione corrente di Kubernetes o dell'immagine del nodo pubblicata dal servizio Azure Kubernetes.

Per altre informazioni sulla creazione di un aggiornamento su richiesta eseguito da un profilo di aggiornamento automatico, vedere Generare un'esecuzione di aggiornamento da un profilo di aggiornamento automatico.