Definire strategie di aggiornamento riutilizzabili con Azure Kubernetes Fleet Manager

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

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
    

Creare una strategia di aggiornamento usando i gruppi di aggiornamento

I cluster possono 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 cluster membro a un gruppo di aggiornamento quando si aggiunge il cluster membro alla flotta usando il comando az fleet member create con il parametro --update-group impostato sul nome del gruppo di aggiornamento.

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

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.

Assegna un membro esistente della flotta a un gruppo di aggiornamento usando il comando az fleet member update con il flag --update-group assegnato al nome del gruppo di aggiornamento.

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

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.

Per questo scenario vengono create fasi e gruppi in modo che corrispondano ai dettagli usati per il processo del portale di Azure.

  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 all'interno di ogni fase, quindi l'ordinamento non è importante. Il file di esempio seguente (example-stages.json) definisce una strategia con due fasi e include impostazioni facoltative maxConcurrency :

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

    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.

    In questo esempio, stage-1 imposta maxConcurrency su "7", il che consente fino a "7" cluster in questa fase di eseguire l'aggiornamento contemporaneamente. All'interno di stage-1, group-1 limita la concorrenza a "3" cluster, il che significa che fino a "3" elementi in questo gruppo possono eseguire l'aggiornamento simultaneamente. group-2 consente l'aggiornamento "50%" simultaneo dei cluster, ad esempio se il gruppo contiene 4 cluster, fino a 2 può eseguire l'aggiornamento contemporaneamente.

    I valori possono essere un numero intero fisso (ad esempio, "3") o una percentuale (ad esempio, "100%"). 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).

  2. 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-stages.json
    

Passaggi successivi

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