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

Gli aggiornamenti avviati automaticamente rispettano le finestre di manutenzione pianificate stabilite a livello di cluster del servizio Azure Kubernetes. Per altre informazioni, vedere Manutenzione pianificata in più cluster membri che illustrano come gli aggiornamenti gestiscono i cluster membri con finestre di manutenzione pianificate configurate.

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
    

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 minor 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 utilizza il canale della versione secondaria di Kubernetes di destinazione. 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 membri con LTS abilitato a una specifica versione secondaria di Kubernetes usando il comando az fleet autoupgradeprofile create con il parametro --target-kubernetes-version impostato sulla versione desiderata e il flag --long-term-support abilitato. 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

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> 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.