Utilizza periodi di manutenzione ed esclusioni dalla manutenzione per controllare quando può essere eseguita la manutenzione automatica del cluster, ad esempio gli upgrade automatici, nei cluster Google Kubernetes Engine (GKE). Prima di configurare queste norme di manutenzione, assicurati di esaminare quali modifiche rispettano e non rispettano le norme di manutenzione di GKE.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializzala. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo
gcloud components update
.
Configurare un periodo di manutenzione
Per configurare un periodo di manutenzione, specifica quando inizia, quanto dura e con quale frequenza si ripete. Ad esempio, puoi configurare una periodo di manutenzione che si ripete ogni settimana dal lunedì al venerdì per quattro ore al giorno.
Puoi configurare una periodo di manutenzione utilizzando la console Google Cloud o Google Cloud CLI.
Considerazioni sulla configurazione di un periodo di manutenzione
Quando configuri un periodo di manutenzione, segui queste indicazioni:
- Scopri quali tipi di eventi di manutenzione rispettano e quali no i periodi di manutenzione di GKE. Per saperne di più, consulta Manutenzione automatica che rispetta le policy di manutenzione di GKE e Manutenzione automatica che non rispetta le policy di manutenzione di GKE.
- Puoi configurare un solo periodo di manutenzione per un cluster e la configurazione di un nuovo periodo sovrascrive quello precedente.
- Devi consentire almeno 48 ore di disponibilità per la manutenzione in una finestra temporale continua di 32 giorni. Sono considerate soltanto finestre di disponibilità contigue di almeno quattro ore.
- Quando utilizzi la console Google Cloud , gli orari vengono sempre visualizzati utilizzando il fuso orario locale.
- Le ricorrenze dei giorni della settimana sono sempre basate sul fuso orario UTC. Di conseguenza, consigliamo di impostare le finestre di manutenzione che prevedono tali ricorrenze interamente in UTC, tramite gcloud CLI. Sebbene l'ora locale possa essere utilizzata per impostare i flag, il fuso orario non verrà memorizzato. Ad esempio, se il tuo fuso orario è UTC+6 e vuoi che il periodo di manutenzione inizi alle 02:00 di mercoledì nel tuo fuso orario, specifica un valore UTC di 20:00 di martedì. Per saperne di più, vedi Fusi orari per le finestre di manutenzione.
Il periodo di manutenzione impedisce il completamento dell'aggiornamento del nodo
Se il cluster non riesce a completare gli aggiornamenti dei nodi, ad esempio gli upgrade della versione dei nodi, entro il periodo di manutenzione pianificato, la velocità degli upgrade potrebbe rallentare o il completamento delle modifiche ai nodi potrebbe essere ritardato. Potresti dover sperimentare la configurazione per trovare l'equilibrio ottimale tra velocità e interruzione per il tuo ambiente. I fattori che possono influire sul tasso di upgrade includono:
- Bassa disponibilità per la manutenzione (ad esempio, periodi di manutenzione brevi).
- Pool di nodi Standard di grandi dimensioni.
- Configurazione della strategia di upgrade dei nodi che privilegia l'interruzione minima rispetto alla velocità.
- Alcune scelte di configurazione del pod. Per saperne di più, consulta la sezione Considerazioni sulla durata dell'upgrade dei nodi.
Crea un cluster Standard con una semplice periodo di manutenzione
Puoi creare una semplice periodo di manutenzione in gcloud CLI specificando il flag --maintenance-window
. Questo flag ti consente di specificare un
periodo di manutenzione giornaliero di 4 ore utilizzando un formato semplificato. Per creare un cluster Autopilot con una periodo di manutenzione, utilizza la console Google Cloud .
Crea un nuovo cluster Standard con un semplice periodo di manutenzione:
gcloud container clusters create CLUSTER_NAME \
--maintenance-window START_TIME
Sostituisci quanto segue:
CLUSTER_NAME
: Il nome del nuovo cluster.START_TIME
: un timestamp di 24 ore in ora UTC, ad esempio16:00
.
La periodo di manutenzione viene eseguita ogni giorno all'ora specificata
START_TIME
e dura quattro ore.
Creare un periodo di manutenzione personalizzato
Puoi creare una periodo di manutenzione che si verifica in determinati momenti della settimana o del mese utilizzando i parametri aggiuntivi spiegati in questa sezione.
Ad esempio, il seguente comando crea un cluster denominato my-cluster
con una
periodo di manutenzione abilitata alle 02:00 UTC di venerdì 23 agosto 2024. Questa
periodo di manutenzionee si ripete settimanalmente ogni lunedì e venerdì e termina 30 ore
dopo. La prima occorrenza della periodo di manutenzione inizia venerdì 23 agosto alle ore 02:00 e termina sabato 24 agosto alle ore 08:00. Puoi scoprire di più sulla formattazione di date e ore.
gcloud container clusters create my-cluster \
--maintenance-window-start 2024-08-23T02:00:00Z \
--maintenance-window-end 2024-08-24T08:00:00Z \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,FR'
Per altri scenari, consulta gli esempi di finestre di manutenzione.
Crea un cluster con un periodo di manutenzione
Puoi creare un nuovo cluster Standard con un periodo di manutenzione utilizzando gcloud CLI o la console Google Cloud . Per creare un nuovo cluster Autopilot con unaperiodo di manutenzionee, utilizza la consoleGoogle Cloud .
gcloud
Crea un nuovo cluster Standard con un periodo di manutenzione:
gcloud container clusters create CLUSTER_NAME \
--maintenance-window-start START_TIME \
--maintenance-window-end END_TIME \
--maintenance-window-recurrence RRULE
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del nuovo cluster.START_TIME
: la data e l'ora in cui viene attivata la periodo di manutenzione ricorrente, espresse come valore DTSTART RFC-5545. Trascorso questo periodo di tempo, il periodo di manutenzione si ripete in base aRRULE
.START_TIME
indica anche a che ora del giorno inizia la periodo di manutenzione.END_TIME
: l'ora di fine per il calcolo della durata della periodo di manutenzione, espressa dalla quantità di tempo dopoSTART_TIME
, nello stesso formato. Il valore perEND_TIME
deve essere una data futura rispetto aSTART_TIME
. Calcola solo la durata della finestra e non imposta la fine della ricorrenza del periodo di manutenzione. I periodi di manutenzione smettono di ripetersi solo quando vengono rimossi.RRULE
: la ricorrenza del periodo di manutenzione, come espressa da una regola RRULE RFC-5545. Si tratta di un formato flessibile con diversi modi per specificare le regole di ricorrenza, che determinano il giorno in cui inizia la periodo di manutenzione. Ad esempio, puoi specificare una ricorrenza di determinate volte a settimana o al mese. Se la dataEND_TIME
è successiva alla dataSTART_TIME
, il periodo di manutenzione si estende su più giorni. Ad esempio, un periodo di manutenzione che inizia di domenica continuerà fino a lunedì.
Console
Nella console Google Cloud , vai alla pagina Crea un cluster Autopilot.
Vai a Crea un cluster Autopilot
Puoi completare questa attività anche creando un cluster Standard.
Configura il cluster.
Nel riquadro di navigazione, in Cluster, fai clic su Automazione.
Seleziona la casella di controllo Abilita periodo di manutenzione.
Seleziona l'ora di inizio e la durata, poi seleziona i giorni della settimana in cui si verifica il periodo di manutenzione. Per modificare direttamente la specifica della regola di ricorrenza (RRule), seleziona Editor personalizzato.
Fai clic su Crea.
Configura un periodo di manutenzione per un cluster esistente
gcloud
Crea o aggiorna un periodo di manutenzione per un cluster esistente:
gcloud container clusters update CLUSTER_NAME \
--maintenance-window-start START_TIME \
--maintenance-window-end END_TIME \
--maintenance-window-recurrence RRULE
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del nuovo cluster.START_TIME
: la data e l'ora in cui viene attivata la periodo di manutenzione ricorrente, espresse come valore DTSTART RFC-5545. Trascorso questo periodo di tempo, il periodo di manutenzione si ripete in base aRRULE
.START_TIME
indica anche a che ora del giorno inizia la periodo di manutenzione.END_TIME
: l'ora di fine per il calcolo della durata della periodo di manutenzione, espressa dalla quantità di tempo dopoSTART_TIME
, nello stesso formato. Il valore perEND_TIME
deve essere una data futura rispetto aSTART_TIME
. Calcola solo la durata della finestra e non imposta la fine della ricorrenza del periodo di manutenzione. I periodi di manutenzione smettono di ripetersi solo quando vengono rimossi.RRULE
: la ricorrenza del periodo di manutenzione, come espressa da una regola RRULE RFC-5545. Si tratta di un formato flessibile con diversi modi per specificare le regole di ricorrenza, che determinano il giorno in cui inizia la periodo di manutenzione. Ad esempio, puoi specificare una ricorrenza di determinate volte a settimana o al mese. Se la dataEND_TIME
è successiva alla dataSTART_TIME
, il periodo di manutenzione si estende su più giorni. Ad esempio, un periodo di manutenzione che inizia di domenica continuerà fino a lunedì.
Console
Per creare o modificare un periodo di manutenzione per un cluster esistente:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
In Automazione, fai clic su edit Modifica policy di manutenzione accanto al campo Periodo di manutenzione.
Seleziona la casella di controllo Abilita periodo di manutenzione.
Seleziona l'ora di inizio e la durata, poi seleziona i giorni della settimana in cui si verifica il periodo di manutenzione. Per modificare direttamente la RRule, seleziona Editor personalizzato.
Fai clic su Salva modifiche.
Terminare manualmente la manutenzione incompleta
Se un upgrade o un'altra manutenzione automatica richiede più tempo del periodo di manutenzione per essere completato, GKE tenta di interrompere le attività di manutenzione in corso e le riprende durante la successiva occorrenza del periodo di manutenzione. Se un upgrade automatico viene annullato e hai abilitato gli upgrade automatici dei nodi, i nodi potrebbero trovarsi in uno stato di versione mista, ma il cluster dovrebbe funzionare normalmente.
Per eseguire l'upgrade manuale del cluster o annullare o eseguire il rollback di un upgrade parziale, visita la pagina Aggiornamento manuale di un cluster.
Rimuovere un periodo di manutenzione
gcloud
Rimuovi un periodo di manutenzione da un cluster:
gcloud container clusters update CLUSTER_NAME --clear-maintenance-window
Sostituisci CLUSTER_NAME
con il nome del cluster esistente.
Console
Per rimuovere un periodo di manutenzione:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
In Automazione, fai clic su edit Modifica policy di manutenzione accanto al campo Periodo di manutenzione.
Deseleziona la casella di controllo Abilita periodo di manutenzione.
Fai clic su Salva modifiche.
Esempi di periodi di manutenzione
I seguenti esempi illustrano alcuni dei diversi modi in cui puoi configurare un periodo di manutenzione. Vengono visualizzati solo i flag pertinenti, perché utilizzano la stessa sintassi per creare un nuovo cluster o aggiornarne uno esistente.
Fine settimana, a partire dal 22 agosto 2026
In questo esempio, la differenza tra i timestamp di inizio e fine è di due
giorni interi, quindi laperiodo di manutenzionee viene eseguita per l'intero fine settimana, per
tutti i sabati e le domeniche. Se vuoi che la finestra abbia una durata diversa da
esattamente 48 ore, modifica -start
per cambiare l'inizio della finestra oppure
-end
per modificare la durata totale della finestra.
--maintenance-window-start 2026-08-22T00:00:00Z \
--maintenance-window-end 2026-08-24T00:00:00Z \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SA'
Tutti i giorni feriali dalle 09:00 alle 17:00 UTC-4
Questo esempio mostra come avere un periodo di manutenzione giornaliera, ma saltare i fine settimana. Questo esempio specifica un fuso orario non UTC.
--maintenance-window-start 2026-09-02T09:00:00-04:00 \
--maintenance-window-end 2026-09-02T17:00:00-04:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR'
Settimanale alle 16:00 per 8 ore, UTC-7
Se non specifichi un fuso orario per --maintenance-window-start
, viene utilizzata l'ora locale, come configurato nel tuo account Google Cloud .
La console Google Cloud utilizza sempre l'ora locale.
--maintenance-window-start 2026-08-13T16:00:00-7:00 \
--maintenance-window-end 2026-08-14T00:00:00-7:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY'
La sera nei giorni feriali
Questo esempio mostra una periodo di manutenzione giornaliera che viene eseguita durante la notte tra i giorni lavorativi nel fuso orario UTC-7. In questo esempio, la finestra va dalle 20:00 della sera alle 4:00 del mattino successivo.
--maintenance-window-start 2026-08-15T20:00:00-7:00 \
--maintenance-window-end 2026-08-16T04:00:00-7:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH'
Configura un'esclusione dalla manutenzione
Per configurare un'esclusione della manutenzione per il cluster, devi specificare quanto segue:
- Nome: il nome dell'esclusione (facoltativo).
- Ora di inizio: la data e l'ora in cui deve iniziare il periodo di esclusione. L'ora di inizio deve essere l'ora attuale o un'ora futura.
- Ora di fine: la data e l'ora in cui deve terminare il periodo di esclusione. Consulta la tabella seguente per le limitazioni alla durata di un periodo di esclusione per ciascuno degli ambiti disponibili.
- Ambito: l'ambito degli upgrade automatici da limitare. Consulta la tabella seguente, che elenca gli ambiti di esclusione disponibili.
Ambito | Descrizione | Durata massima dell'esclusione |
---|---|---|
Nessun upgrade (impostazione predefinita) | Sono esclusi tutti gli aggiornamenti minori e le patch. Evita interruzioni delle VM al piano di controllo e ai nodi del cluster a causa degli upgrade. | Non può superare i 30 giorni. |
Nessun upgrade secondario | Esclude tutti gli upgrade secondari. A causa degli upgrade delle patch, possono verificarsi interruzioni delle VM nel control plane e nei nodi del cluster. | Per i cluster registrati nei canali Rapid, Regular o Stable, non è possibile estendere oltre la fine dell'assistenza standard. Per i cluster registrati nel canale esteso, non può superare la fine del supporto esteso della versione secondaria. |
Nessun upgrade secondario o di nodi | Esclude tutti gli upgrade secondari e dei nodi. Evita interruzioni delle VM ai nodi del cluster a causa degli upgrade. Tuttavia, possono verificarsi interruzioni del control plane. | Per i cluster registrati nei canali Rapid, Regular o Stable, non è possibile estendere oltre la fine dell'assistenza standard. Per i cluster registrati nel canale esteso, non può superare la fine del supporto esteso della versione secondaria. |
Crea un cluster con un'esclusione dalla manutenzione
Puoi configurare un'esclusione della manutenzione quando crei un nuovo cluster utilizzando la console Google Cloud . Questa attività non può essere eseguita nella gcloud CLI.
Per creare un nuovo cluster con un'esclusione dalla manutenzione:
Nella console Google Cloud , vai alla pagina Crea un cluster Autopilot.
Vai a Crea un cluster Autopilot
Puoi completare questa attività anche creando un cluster Standard.
Configura il cluster.
Nel riquadro di navigazione, in Cluster, fai clic su Automazione.
Nella sezione Esclusioni dalla manutenzione, fai clic su add Aggiungi esclusione dalla manutenzione.
Seleziona l'ambito, un'ora di inizio e un'ora di fine.
Fai clic su Crea.
Puoi vedere un esempio di esclusione dalla manutenzione per il Black Friday.
Configura un'esclusione dalla manutenzione per un cluster esistente
Puoi configurare un'esclusione della manutenzione su un cluster esistente utilizzando la consoleGoogle Cloud o gcloud CLI.
gcloud
Configura un'esclusione dalla manutenzione per un cluster esistente:
gcloud container clusters update CLUSTER_NAME \
--add-maintenance-exclusion-name EXCLUSION_NAME \
--add-maintenance-exclusion-start START_DATE_TIME \
--add-maintenance-exclusion-end END_DATE_TIME \
--add-maintenance-exclusion-scope SCOPE
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del tuo cluster.EXCLUSION_NAME
: il nome dell'esclusione della manutenzione.START_DATE_TIME
: la data e l'ora di inizio dell'esclusione.END_DATE_TIME
: la data e l'ora di fine dell'esclusione.SCOPE
: l'ambito dell'upgrade da escludere, che può essere uno dei seguenti valori:no_upgrades
,no_minor_upgrades
ono_minor_or_node_upgrades
.
Per visualizzare i formati di data e ora supportati, esegui gcloud topic datetimes
.
Console
Per configurare un'esclusione dalla manutenzione per un cluster esistente:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Nella sezione Automazione, accanto al campo Esclusioni dalla manutenzione, fai clic su edit Modifica esclusioni dalla manutenzione.
Nella sezione Esclusioni dalla manutenzione, fai clic su add Aggiungi esclusione dalla manutenzione.
Seleziona l'ambito, un'ora di inizio e un'ora di fine.
Fai clic su Salva modifiche.
Rimuovere un'esclusione dalla manutenzione
Puoi rimuovere le esclusioni dalla manutenzione utilizzando la console Google Cloud o gcloud CLI.
gcloud
Per rimuovere un'esclusione dalla manutenzione esistente:
gcloud container clusters update CLUSTER_NAME \
--remove-maintenance-exclusion EXCLUSION_NAME
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster esistente.EXCLUSION_NAME
: il nome dell'esclusione dalla manutenzione da rimuovere.
Console
Per rimuovere un'esclusione della manutenzione da un cluster esistente:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Nella sezione Automazione, accanto al campo Esclusioni dalla manutenzione, fai clic su edit Modifica esclusioni dalla manutenzione.
Nella sezione Esclusioni dalla manutenzione, fai clic su delete Elimina elemento accanto al campo Ora di fine per l'esclusione che vuoi rimuovere.
Fai clic su Salva modifiche.
Per visualizzare tutte le esclusioni dalla manutenzione di un cluster, puoi visualizzare la policy di manutenzione del cluster.
Esempio di esclusione dalla manutenzione
L'esempio seguente impedisce la manutenzione nei quattro giorni che comprendono il Black Friday e il Cyber Monday, il periodo di vendite con il volume più elevato dell'anno per molte attività di vendita al dettaglio. Questo esempio mostra come impedire che si verifichi una periodo di manutenzione dal Black Friday 2021 (26 novembre 2021) al Cyber Monday 2021 (29 novembre 2021), da mezzanotte Eastern (UTC-5) alle 23:59:59 Pacific (UTC-8).
gcloud container clusters update sample-cluster \
--add-maintenance-exclusion-name black-friday \
--add-maintenance-exclusion-start 2021-11-26T00:00:00-05:00 \
--add-maintenance-exclusion-end 2021-11-29T23:59:59-08:00 \
--add-maintenance-exclusion-scope no_upgrades
Visualizzare la policy di manutenzione di un cluster
Per visualizzare la policy di manutenzione di un cluster, inclusi la finestra di manutenzione e tutte le esclusioni di manutenzione, utilizza il seguente comando:
gcloud container clusters describe CLUSTER_NAME
Identifica i cluster senza un periodo di manutenzione configurato
GKE identifica i cluster per i quali non hai configurato un periodo di manutenzione, in modo che tu possa scegliere un periodo ricorrente in cui GKE può eseguire la manutenzione del cluster. Ti consigliamo di configurare un periodo di manutenzione per garantire che GKE esegua gli upgrade automatici e altre attività di manutenzione del cluster che rispettano le norme di manutenzione nel momento più opportuno per l'ambiente del cluster.
GKE fornisce queste indicazioni con un approfondimento e un suggerimento tramite il servizio Recommender. Per scoprire di più su come gestire approfondimenti e suggerimenti di Recommender, consulta Ottimizzare l'utilizzo di GKE con approfondimenti e suggerimenti.
Per trovare i cluster senza un periodo di manutenzione configurato, puoi utilizzare uno dei seguenti metodi:
- Utilizza la console Google Cloud .
- Utilizza gcloud CLI o l'API Recommender specificando il
CLUSTER_MAINTENANCE_WINDOW_AND_EXCLUSIONS
sottotipo del motore per suggerimenti.
Per istruzioni, scopri come visualizzare approfondimenti e consigli.
Per implementare questo consiglio, configura una finestra di manutenzione.
Risoluzione dei problemi
La limitazione dell'ambito delle esclusioni dalla manutenzione può essere applicata solo ai canali di rilascio
Quando limiti l'ambito degli upgrade automatici in un'esclusione della manutenzione, il cluster deve essere registrato in un canale di rilascio, altrimenti potresti riscontrare i seguenti errori:
ERROR: (gcloud.container.clusters.update) INVALID_ARGUMENT: Cannot update to
STATIC channel since following maintenancePolicy.maintenanceExclusions can only
apply to release channels. Please remove those maintenance exclusions.
ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=MaintenancePolicy.maintenanceExclusions["no"] could not apply to cluster
in STATIC channel, only no_upgrades exclusions are allowed in STATIC channel.
Le esclusioni dalla manutenzione superano il limite
Puoi specificare un massimo di tre esclusioni di manutenzione che escludono tutti gli upgrade (ovvero un ambito di "nessun upgrade"), altrimenti riceverai il seguente errore:
ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=Number of active maintenance exclusions exceeds limit (3).
Puoi specificare un massimo di 20 esclusioni dalla manutenzione in totale, altrimenti riceverai il seguente errore:
ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=Number of total maintenance exclusions exceeds limit (20).
Passaggi successivi
- Scopri di più sugli upgrade di cluster e nodi.
- Scopri come attivare l'upgrade automatico dei nodi.
- Scopri di più sulle notifiche di cluster.