Questa pagina mostra come gestire gli upgrade dei cluster GKE utilizzando la sequenza di implementazione. Per scoprire di più, consulta Informazioni sugli upgrade dei cluster con sequenza di implementazione.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività, installa e inizializza l'interfaccia alla gcloud CLI.
- Assicurati di aver attivato l'API Anthos nei progetti dell'host del parco risorse. Se non hai abilitato l'API Anthos per i progetti host del tuo parco risorse, puoi chiedere al team dedicato all'account di registrarti a una prova gratuita di Anthos per testare la funzionalità di sequenza di implementazione. Se effettui la registrazione alla prova gratuita per testare questa funzionalità, assicurati di eseguire la pulizia dopo aver terminato di utilizzare la funzionalità in Anteprima privata.
- Assicurati di aver abilitato le API richieste per i parchi risorse. Queste API devono essere abilitate nei progetti host del parco risorse.
- Assicurati di disporre delle autorizzazioni IAM richieste per la registrazione dei cluster. Devi concedere le seguenti autorizzazioni:
- Autorizzazioni di registrazione dei cluster, nei tuoi progetti host del parco risorse.
- Autorizzazioni di amministrazione del cluster per qualsiasi cluster GKE da registrare.
- Autorizzazioni di registrazione dei cluster tra progetti per tutti i cluster GKE da registrare a un parco risorse in un progetto diverso.
Configurare una sequenza di implementazione
Questo documento spiega come utilizzare i parchi risorse e gli ambiti del parco risorse per organizzare i cluster e creare sequenze di implementazione.
Con la sequenza di implementazione, puoi scegliere l'ordine e la tempistica di implementazione delle versioni nei set di cluster sullo stesso canale di rilascio. Puoi creare una sequenza di un massimo di tre ambiti.
Per creare una sequenza di implementazione, i cluster devono essere organizzati in ambiti. Per indicazioni su come organizzare i cluster in ambiti, consulta questo esempio. Una volta organizzate in ambiti, puoi creare una sequenza di lancio definendo le relazioni dell'ambito upstream e il tempo di attesa di ogni ambito. Per scoprire di più su come funziona, consulta l'articolo Come viene creata una sequenza di implementazione.
Organizza i cluster in ambiti
In una sequenza di implementazione, tutti i cluster in tutti gli ambiti devono essere registrati nello stesso canale di rilascio e devono trovarsi nella stessa versione secondaria. Se questi requisiti non sono soddisfatti e ci sono discrepanze nella versione tra i cluster, possono verificarsi problemi con l'implementazione della versione. Per ulteriori informazioni, consulta Idoneità all'implementazione.
Gli ambiti sono un'unità organizzativa all'interno di un parco risorse. I cluster possono essere registrati in un parco risorse e un ambito ospitati in un progetto diverso. Puoi creare una sequenza di implementazione con ambiti in più parchi risorse.
Se hai già organizzato i cluster in ambiti, puoi saltare i seguenti passaggi e procedere a Creare una sequenza di implementazione.
- Per ogni cluster nella sequenza, registra il cluster con un parco risorse. Il cluster deve essere registrato nel parco risorse nel progetto in cui creerai l'ambito per questo cluster. Se vuoi registrare un cluster per un parco risorse in un altro progetto host, assicurati di avere impostato le autorizzazioni necessarie per la registrazione tra progetti.
Crea 2-3 ambiti per organizzare i cluster. Esegui il comando nel progetto host del rispettivo parco risorse dell'ambito. Puoi avere fino a tre ambiti in una sequenza di implementazione. Ripeti il comando per ogni ambito che vuoi creare.
Consulta il riferimento per
gcloud alpha container fleet scopes create
per un elenco completo dei flag. Con il comandocreate
, puoi utilizzare i flag nelle istruzioni per creare una sequenza di implementazione.
Creare una sequenza di implementazione
Una sequenza di implementazione è organizzata come un elenco collegato. Per scoprire di più, consulta Come viene creata una sequenza di implementazione. Quando crei una sequenza di lancio, imposti le seguenti proprietà per ogni ambito:
- Ambito upstream: il percorso della risorsa dell'ambito upstream nel formato
projects/{project-number}/locations/global/scopes/{scope-name}
. Non imposti un ambito upstream per il primo ambito in una sequenza. L'ambito upstream qualifica le nuove versioni dell'ambito downstream. - Tempo di attesa: il tempo di attesa per un ambito è il tempo che intercorre tra il completamento degli upgrade (o l'implementazione ha richiesto 30 giorni) e il momento in cui può iniziare l'ambito a valle. Per scoprire di più, consulta la pagina Come funziona la qualificazione della versione in una sequenza di lancio.
Puoi impostare queste proprietà quando crei o aggiorni un ambito. Le seguenti istruzioni utilizzano il comando update
, ma puoi impostare le stesse proprietà quando crei un ambito con il comando create
.
Per ognuno dei seguenti comandi, sostituisci SOAK_TIME
con il tempo di attesa per l'ambito che stai aggiornando.
Imposta il tempo di attesa per il primo cluster della sequenza:
gcloud alpha container fleet scopes update FIRST_SCOPE \ --default-upgrade-soaking=SOAK_TIME \ --project=FIRST_SCOPE_PROJECT_ID
Sostituisci
FIRST_SCOPE
con il percorso completo del primo ambito eFIRST_SCOPE_PROJECT_ID
con l'ID del progetto in cui è ospitato il primo ambito.Imposta l'ambito upstream e il tempo di attesa per il secondo ambito nella sequenza:
gcloud alpha container fleet scopes update SECOND_SCOPE \ --upstream-scope=projects/FIRST_SCOPE_PROJECT_NUMBER/locations/global/scopes/FIRST_SCOPE \ --default-upgrade-soaking=SOAK_TIME \ --project=SECOND_SCOPE_PROJECT_ID
Sostituisci
SECOND_SCOPE
con il percorso completo del primo ambito eSECOND_SCOPE_PROJECT_ID
con l'ID progetto del progetto in cui è ospitato il secondo ambito.(Facoltativo) Se vuoi avere tre ambiti in una sequenza di lancio, imposta l'ambito upstream per il terzo ambito nella sequenza:
gcloud alpha container fleet scopes update THIRD_SCOPE \ --upstream-scope=projects/SECOND_SCOPE_PROJECT/locations/global/scopes/SECOND_SCOPE \ --default-upgrade-soaking=SOAK_TIME \ --project=THIRD_SCOPE_PROJECT_ID
Sostituisci
THIRD_SCOPE
con il percorso completo del primo ambito eTHIRD_SCOPE_PROJECT_ID
con l'ID progetto del progetto in cui è ospitato il terzo ambito.
Verificare la sequenza di implementazione
Descrivi il primo ambito nella sequenza per confermare le impostazioni. Per ogni ambito, quando descrivi l'ambito puoi vedere l'ambito upstream e downstream.
Controllare il processo di implementazione della versione
Gli upgrade dei cluster con GKE offrono una serie di meccanismi per il controllo manuale del processo. Oltre a questi controlli, hai a disposizione altri modi per controllare gli upgrade dei cluster con la sequenza di lancio. In questa sezione, scopri come, se necessario, puoi esercitare un controllo sugli upgrade.
Controllare lo stato di una sequenza di implementazione
Verifica lo stato di una sequenza di implementazione:
gcloud alpha container fleet scopes describe SCOPE_NAME \
--show-linked-cluster-upgrade
--project=SCOPE_PROJECT_ID
Sostituisci SCOPE_NAME
con il nome di qualsiasi ambito nella sequenza di lancio e SCOPE_PROJECT_ID
con l'ID progetto di questo ambito. Se la sequenza di lancio ha ambiti tra progetti in parchi risorse diversi, devi disporre delle autorizzazioni richieste per eseguire questo comando.
Nell'output, gli attributi clusterUpgrade(s).spec
e clusterUpgrade(s).state
contengono informazioni aggiuntive sull'upgrade del cluster, ad esempio il tempo di attesa, le sostituzioni dell'upgrade del cluster e lo stato dell'upgrade. Per ulteriori informazioni su quali informazioni vengono fornite con questo comando, consulta Controllare lo stato di implementazione della versione in sequenza.
Se hai bisogno solo di informazioni su un ambito nella sequenza, sostituisci il flag --show-linked-cluster-upgrade
con --show-cluster-upgrade
.
Consulta il riferimento per gcloud alpha container fleet scopes describe
per un elenco completo dei flag.
Per visualizzare lo stato di singoli cluster all'interno di un ambito, esegui questo comando nel progetto del parco risorse in cui si trova l'ambito:
gcloud alpha container fleet features describe clusterupgrade
Risolvere i problemi di idoneità all'implementazione
Se tutti i cluster in una sequenza di lancio non hanno lo stesso target di upgrade, GKE potrebbe non essere in grado di procedere con gli upgrade dei cluster poiché i cluster nell'ambito a monte non convalidano il target di upgrade necessario per i cluster nell'ambito a valle.
Per verificare se la sequenza di implementazione presenta problemi di idoneità all'implementazione, controlla lo stato della sequenza di implementazione. Se un ambito non è idoneo, segui le istruzioni per visualizzare lo stato dei singoli cluster in un ambito.
Se un cluster non è idoneo perché si trova in una versione precedente (ad esempio, la maggior parte dei cluster nell'ambito è in fase di upgrade da 1.23 a 1.24 e un cluster è sulla versione 1.22), puoi eseguire manualmente l'upgrade del cluster alla versione 1.24 per risolvere la discrepanza della versione.
Se un cluster non è idoneo perché è in una versione successiva (ad esempio, la maggior parte dei cluster nell'ambito è in fase di upgrade da 1.23 a 1.24 e un cluster è sulla versione 1.25), non puoi eseguire manualmente l'upgrade del cluster per risolvere la discrepanza della versione.
Per migliorare immediatamente gli upgrade dei cluster, rimuovi eventuali cluster con uno stato INELIGIBLE
seguendo le istruzioni per avanzare parzialmente le implementazioni idonee.
Modifica del tempo di attesa
Se vuoi che il tempo di attesa di un'implementazione di versione specifica sia diverso da quello di attesa configurato per la sequenza, puoi modificarlo utilizzando il flag --add-upgrade-soaking-override
con il seguente comando:
gcloud alpha container fleet scopes update SCOPE_NAME \
--add-upgrade-soaking-override=SOAK_TIME \
--upgrade-selector=name=UPGRADE_NAME,version=VERSION
Sostituisci quanto segue:
SCOPE_NAME
: il nome dell'ambito per cui vuoi sostituire il tempo di attesa utilizzato per l'implementazione della versione di una versione specifica.SOAK_TIME
: il tempo di attesa da utilizzare diverso da quello predefinito (ad esempio, "0d" se vuoi saltare il tempo di attesa per l'implementazione di una versione).UPGRADE_NAME
: il nome dell'upgrade, che può esserek8s_control_plane
ok8s_node
.VERSION
: la versione di GKE in cui vuoi il tempo di attesa dopo l'implementazione in questo ambito, ad esempio 1.25.2-gke.400.
Ad esempio, se hai già qualificato una nuova versione e vuoi che gli upgrade inizino nell'ambito successivo, puoi impostare il tempo di attesa su zero. Puoi anche utilizzarla se vuoi più tempo rispetto al tempo di attesa predefinito per qualificare una versione specifica.
Modificare l'ordine di una sequenza
Se vuoi modificare l'ordine di una sequenza, utilizza i comandi delle istruzioni per creare una sequenza di implementazione per aggiornare gli ambiti a monte.
Ritarda il completamento dell'implementazione della versione dell'ambito
Se devi impedire temporaneamente all'ambito di completare l'implementazione di una nuova versione nei relativi cluster, puoi aggiungere un'esclusione di manutenzione a tutti i cluster di cui non è stato eseguito l'upgrade alla versione di destinazione. Questo può mettere in pausa un ambito dal procedere al tempo di attesa o all'ambito downstream per un massimo di 30 giorni. Dopo 30 giorni, l'ambito inizierà a essere immerso.
Puoi anche modificare il tempo di attesa per tale ambito e impostarlo su 30 giorni per massimizzare il tempo di attesa della sequenza di implementazione prima di passare all'ambito successivo.
Se hai bisogno di ritardare ulteriormente gli upgrade a partire dall'ambito successivo, puoi utilizzare le esclusioni di manutenzione per i cluster nell'ambito successivo.
Passa a implementazioni parzialmente idonee
Se gli upgrade dei cluster in un ambito non hanno ancora raggiunto il limite di 30 giorni e non saranno completati a causa di problemi di idoneità all'implementazione (ad esempio, discrepanze nelle versioni in un ambito), puoi rimuovere un cluster da un ambito per completare l'implementazione della versione e iniziare il tempo di attesa o passare all'ambito successivo nella sequenza di lancio. Puoi anche rimuovere un cluster da un ambito per altri motivi, ad esempio se l'utilizzo di questo cluster non è più correlato agli altri cluster nell'ambito.
Segui le istruzioni per rimuovere i cluster dagli ambiti.
Una volta rimossi tutti i cluster che impediscono il completamento dell'implementazione della versione di un ambito, verrà completata l'implementazione della versione dell'ambito. Per verificarlo, segui le istruzioni per verificare lo stato di implementazione di una versione.
Eliminare una sequenza
Per eliminare una sequenza, utilizza il comando seguente per rimuovere l'associazione dell'ambito upstream per il secondo ambito (e il terzo ambito, se questa sequenza di implementazione include tre ambiti):
gcloud alpha container fleet scopes update SCOPE_NAME --reset-upstream-scope
Sostituisci SCOPE_NAME
con il nome dell'ambito che vuoi eliminare.
Esegui la pulizia
Per evitare addebiti di fatturazione imprevisti, se hai eseguito la registrazione a una prova gratuita dell'API Anthos per testare la funzionalità Sequenza di implementazione, assicurati di disattivare l'API al termine del test di questa funzionalità in Anteprima privata. Devi disabilitare l'API prima che il progetto host del parco risorse venga rimosso dalla lista consentita per questa funzionalità.