Definire strategie di aggiornamento riutilizzabili con Azure Kubernetes Fleet Manager

Gli amministratori possono controllare la sequenza di aggiornamenti ai cluster gestiti da Fleet definendo una serie di fasi e gruppi. Possono configurare quando le approvazioni e le pause devono essere eseguite all'interno di tali fasi e gruppi. L'intera configurazione può essere salvata come strategia di aggiornamento che può essere gestita indipendentemente dalle esecuzioni degli aggiornamenti o dagli aggiornamenti automatici, consentendo di riutilizzare le strategie in base alle esigenze.

Questo articolo illustra come definire strategie di aggiornamento usando gruppi e fasi.

Diagramma che mostra una strategia di aggiornamento di esempio contenente due fasi di aggiornamento. Ogni fase di aggiornamento contiene due gruppi di aggiornamento. Ogni gruppo di aggiornamento contiene due cluster membri.

Prerequisiti

  • Leggere la panoramica concettuale degli aggiornamenti di Fleet, che fornisce una spiegazione delle esecuzioni degli aggiornamenti, delle fasi, dei gruppi e delle strategie a cui si fa riferimento in questa guida.

  • È necessario disporre di una risorsa flotta con uno o più cluster membri. In caso contrario, seguire l’avvio rapido per creare una risorsa Fleet e unire i cluster di Servizio Azure Kubernetes (AKS) come membri.

  • Impostare le seguenti variabili di ambiente:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export CLUSTERID=<aks-cluster-resource-id>
    export STRATEGY=<strategy-name>
    
  • Se si seguono le istruzioni dell'interfaccia della riga di comando di Azure in questo articolo, è necessaria l'interfaccia della riga di comando di Azure versione 2.70.0 o successiva installata. Per eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

  • È necessaria anche l'estensione della fleet CLI di Azure versione 1.6.0 o successiva, che è possibile installare eseguendo il comando seguente:

    az extension add --name fleet
    

    Eseguire il comando per eseguire l'aggiornamento az extension update alla versione più recente dell'estensione rilasciata:

    az extension update --name fleet
    

Selezionare i cluster per la strategia

Esistono due modi per selezionare i cluster inclusi in ogni fase e gruppo della strategia di aggiornamento per controllare la sequenza di aggiornamento:

  • Etichette dei membri (scelta consigliata): assegnare etichette a ogni membro della flotta e usare memberSelector per selezionare i membri in base a tali etichette. Ogni membro può avere più etichette.
  • Aggiornare i gruppi: assegnare un gruppo di aggiornamento a ogni membro della flotta, quindi definire i gruppi nella strategia che corrispondono a tali nomi di gruppo. Ogni membro può appartenere a un solo gruppo.

Creare una strategia di aggiornamento usando selettori di membri (anteprima)

Le etichette dei membri sono l'approccio consigliato per la selezione dei cluster nelle strategie di aggiornamento perché offrono maggiore flessibilità. Per informazioni concettuali, vedere Raggruppare i cluster usando le etichette dei membri.

Importante

Le funzionalità di anteprima di Azure Kubernetes Fleet Manager sono disponibili in modalità self-service e richiedono l'adesione dell'utente. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le versioni di anteprima di Azure Kubernetes Fleet Manager sono parzialmente coperte dall'assistenza clienti su base di miglior sforzo. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione.

Applicare etichette sui cluster membri

Applicare etichette all'aggiunta di un cluster membro alla flotta

Applicare etichette ai membri della flotta usando il az fleet member create comando . L'esempio seguente applica due etichette al cluster membro: env=staging e tier=frontend:

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

Applicare etichette a un membro della flotta esistente

Applicare etichette ai membri della flotta usando il az fleet member update comando

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

Creare una strategia di aggiornamento

Una strategia di aggiornamento è costituita da una o più fasi, in cui una fase può contenere uno o più gruppi di aggiornamento.

  1. Creare un file JSON per definire le fasi e i gruppi per l'esecuzione dell'aggiornamento. Le fasi vengono eseguite in sequenza nell'ordine in cui vengono visualizzate nel file JSON. I gruppi vengono eseguiti in parallelo in ogni fase. Il file di esempio seguente (example-labels-strategy.json) definisce una strategia con due fasi usando memberSelector per selezionare i cluster in base alle etichette e include impostazioni facoltative maxConcurrency :

    • La fase staging utilizza un memberSelector a livello di fase per selezionare tutti i cluster con l'etichetta env=staging e creare un gruppo implicito.
    • La fase production utilizza un memberSelector a livello di fase per prefiltrare tutti i cluster con l'etichetta env=production, quindi definisce due gruppi, ciascuno dotato del proprio memberSelector per selezionare i cluster in base all'etichetta tier.

    Quando memberSelector è impostato su un gruppo, il name campo del gruppo viene usato solo come identificatore di visualizzazione per la reportistica dello stato e la registrazione dei log e non viene più usato per la selezione dei membri della flotta basata sui gruppi di aggiornamento.

    {
        "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"
                    }
                ]
            }
        ]
    }
    

Nota

Il maxConcurrency campo è facoltativo e controlla il numero di cluster che possono eseguire l'aggiornamento simultaneo a livello di fase o di gruppo. Usare un valore più grande per aggiornare i cluster più velocemente all'interno della flotta o un valore inferiore per un'implementazione più controllata che limita il raggio di esplosione in caso di problemi.

Quando una fase utilizza memberSelector senza gruppi (come staging), tutti i membri corrispondenti formano un unico gruppo implicito e la maxConcurrency fase controlla direttamente la concorrenza. Quando i gruppi sono definiti (ad esempio production), il livello maxConcurrency di fase funge da limite complessivo in tutti i gruppi.

In questo esempio, la staging fase imposta maxConcurrency su "1", in modo che i cluster di staging si aggiornino uno alla volta. La fase production consente fino a "4" cluster contemporaneamente, mentre i gruppi frontend e backend sono ciascuno limitati a "3".

I valori possono essere un numero intero fisso (ad esempio, "3") o una percentuale (ad esempio, "50%"). Se omesso, il sistema applica i valori predefiniti. Per informazioni dettagliate su come questi valori vengono risolti e sui relativi limiti superiori, vedere Concorrenza massima (anteprima).

  1. Creare una nuova strategia di aggiornamento usando il az fleet updatestrategy create comando con il --stages flag impostato sul nome del file JSON.

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

Creare una strategia di aggiornamento usando i gruppi di aggiornamento

I cluster possono anche essere selezionati nelle strategie di aggiornamento assegnandoli a un singolo gruppo di aggiornamento. È possibile definire una strategia di aggiornamento che assegna questi gruppi di aggiornamento alle fasi. All'interno di una fase di aggiornamento, gli aggiornamenti vengono applicati a ogni gruppo di aggiornamento in parallelo. All'interno di un gruppo di aggiornamento, i cluster membri vengono aggiornati in sequenza.

Nota

Un membro della flotta può far parte solo di un gruppo di aggiornamento, ma un gruppo di aggiornamento può avere più membri della flotta assegnati. Un gruppo di aggiornamento non è un tipo di risorsa separato. I gruppi di aggiornamento sono semplicemente stringhe che rappresentano riferimenti ai membri della flotta. Pertanto, se tutti i membri della flotta con riferimenti a un gruppo di aggiornamento comune vengono eliminati, tale gruppo di aggiornamento specifico smette di esistere.

Assegnare cluster a gruppi di aggiornamento

Assegnarlo al gruppo quando si aggiunge il cluster membro alla flotta

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

  2. Nel menu del servizio, in Impostazioni, selezionare Cluster membri>Aggiungi.

    Screenshot della pagina del portale di Azure per Gestione flotta Kubernetes di Azure per l'aggiunta di cluster membri.

  3. Selezionare il cluster da aggiungere e quindi selezionare Avanti: Rivedi e aggiungi.

  4. Immettere il nome del gruppo di aggiornamento a cui si vuole assegnare il cluster e quindi selezionare Aggiungi.

    Screenshot della pagina del portale di Azure per il passaggio di revisione e aggiunta dei cluster membri in Azure Kubernetes Fleet Manager.

Assegnare un membro della flotta esistente a un gruppo di aggiornamento

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

  2. Nel menu del servizio, in Impostazioni, selezionare Cluster membri.

  3. Selezionare i cluster da assegnare a un gruppo di aggiornamento e quindi selezionare Assegna gruppo di aggiornamento

    Screenshot della pagina del portale di Azure per l'assegnazione di cluster membri esistenti a un gruppo.

  4. Immettere il nome del gruppo di aggiornamento a cui si vuole assegnare il cluster e quindi selezionare Assegna.

    Screenshot della pagina del portale di Azure per i cluster membri che mostra il modulo per l'aggiornamento del gruppo di un cluster membro.

Creare una strategia di aggiornamento

Una strategia di aggiornamento è costituita da una o più fasi, in cui una fase può contenere uno o più gruppi di aggiornamento.

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

  2. Dal menu del servizio, in Impostazioni, selezionare Strategie di aggiornamento> e quindi Crea.

  3. Immettere un nome per la strategia.

  4. La prima volta che si visualizza la pagina, viene visualizzato un diagramma di spiegazione della strategia di aggiornamento che consente di visualizzare il funzionamento delle strategie.

    Screenshot del portale di Azure che mostra la creazione della strategia di aggiornamento.

  5. Selezionare Crea fase e immettere:

    • Nome della fase - nomina la fase - deve essere univoco tra tutti i nomi delle fasi nella strategia.
    • (Facoltativo) Approvazioni delle fasi: selezionare questa opzione se si desidera attendere un'approvazione prima che inizi questa fase o dopo che viene completata. Per altre informazioni, vedere Aggiungere approvazioni per aggiornare gruppi e fasi.
    • (Facoltativo) Pausa dopo la fase : selezionare questa opzione se si vuole definire una pausa prima di passare alla fase successiva.
    • (Facoltativo) Sospendere la durata : selezionare una durata predefinita oppure immettere un valore personalizzato in secondi.

    Screenshot del portale di Azure che mostra la creazione della fase di strategia di aggiornamento di Azure Kubernetes Fleet Manager.

  6. Assegnare uno o più gruppi di aggiornamento alla fase e quindi selezionare Crea.

    Nota

    Il numero massimo di gruppi di aggiornamento in ogni fase dell’aggiornamento è 50.

    Screenshot del portale di Azure che mostra la creazione della fase di strategia di aggiornamento di Azure Kubernetes Fleet Manager, selezionando i gruppi di aggiornamento da includere.

Passaggi successivi

È possibile usare una strategia di aggiornamento come parte di un'esecuzione di aggiornamento manuale o di un profilo di aggiornamento automatico. Vedere: