Utilizza periodi di manutenzione e periodi di manutenzione esclusioni controllare quando la manutenzione automatica del cluster, ad esempio gli upgrade automatici, può non possono essere presenti sui tuoi cluster Google Kubernetes Engine (GKE). Prima di configurare questi criteri di manutenzione, assicurati di esaminare le modifiche che rispettano e non rispettano i criteri di manutenzione di GKE.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
install e poi
inizializzare
con gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente
eseguendo
gcloud components update
.
Configurare un periodo di manutenzione
Per configurare un periodo di manutenzione, specifica quando inizia, la durata e la frequenza di ripetizione. Ad esempio, puoi configurare una finestra di manutenzione che si ripete settimanalmente dal lunedì al venerdì per quattro ore al giorno.
Puoi configurare un periodo di manutenzione utilizzando la console Google Cloud o Google Cloud CLI.
Considerazioni per la configurazione di un periodo di manutenzione
Quando configuri un periodo di manutenzione, segui queste indicazioni:
- Scopri quali tipi di eventi di manutenzione rispettano e non rispettano i periodi di manutenzione di GKE. Per saperne di più, consulta Manutenzione automatica che rispetta le norme di manutenzione di GKE e Manutenzione automatica che non rispetta le norme di manutenzione di GKE.
- Puoi configurare un solo periodo di manutenzione per un cluster la configurazione di una nuova finestra sovrascrive quella precedente.
- Devi consentire almeno 48 ore di disponibilità per la manutenzione in un periodo di 32 giorni finestra temporale continua. Sono considerate soltanto finestre di disponibilità contigue di almeno quattro ore.
- Quando utilizzi la console Google Cloud, le ore vengono sempre visualizzate utilizzando il fuso orario locale.
- Le ricorrenze del giorno della settimana si basano sempre sul fuso orario UTC. Di conseguenza, consigliamo di impostare le finestre di manutenzione che prevedono queste ricorrenze interamente in UTC tramite la CLI gcloud. Sebbene l'ora locale possa essere utilizzata per impostare i flag, il fuso orario non verrà memorizzato. Ad esempio, se il fuso orario è UTC+6 e vuoi che il periodo di manutenzione inizi alle 02:00 di mercoledì nel tuo fuso orario, specifica il valore UTC alle 20:00 del martedì. Per apprendere per saperne di più, consulta Fusi orari per la manutenzione .
Se il cluster non riesce a completare gli upgrade dei nodi entro il periodo di manutenzione pianificata, la frequenza degli upgrade può rallentare. 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:
- Scarsa disponibilità di manutenzione (ad esempio brevi periodi di manutenzione).
- Pool di nodi standard di grandi dimensioni.
- Configurazione della strategia di upgrade dei nodi che dà la priorità all'interruzione minima rispetto alla velocità.
- Alcune opzioni di configurazione del pod. Vedi Considerazioni sull'upgrade dei nodi durata per ulteriori informazioni.
Creare un cluster standard con una finestra di manutenzione semplice
Puoi creare una semplice finestra di manutenzione nella CLI gcloud specificando il flag --maintenance-window
. Questo flag consente di specificare
di periodo di manutenzione giornaliera di 4 ore in un formato semplificato. Per creare un
Cluster Autopilot con un periodo di manutenzione, usa la console Google Cloud.
Crea un nuovo cluster standard con una semplice finestra 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 nell'ora UTC, ad esempio16:00
.
Il periodo di manutenzione viene eseguito ogni giorno al
START_TIME
e viene eseguito per quattro ore.
Crea un periodo di manutenzione personalizzato
Puoi creare un periodo di manutenzione che si verifica in determinati momenti della settimana mese utilizzando i parametri aggiuntivi spiegati in questa sezione.
Ad esempio, il seguente comando crea un cluster denominato my-cluster
con una finestra di manutenzione abilitata alle 02:00 UTC di venerdì 23 agosto 2024. Questo
periodo di manutenzione si ripete settimanalmente ogni lunedì e venerdì e termina 30 ore
più tardi. La prima occorrenza della finestra di manutenzione inizia venerdì 23 agosto alle ore 02:00 e termina sabato 24 agosto alle ore 08:00. Scopri 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 ulteriori scenari, consulta gli esempi di periodi di manutenzione.
Creare un cluster con un periodo di manutenzione
Puoi creare un nuovo cluster standard con una finestra di manutenzione utilizzando la CLI gcloud o la console Google Cloud. Per creare un nuovo cluster Autopilot con una finestra di manutenzione, utilizza la console Google Cloud.
gcloud
Crea un nuovo cluster standard con una finestra 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 è attivata la finestra di manutenzione ricorrente, espressa come valore DTSTART RFC-5545. Dopo questo orario, il periodo di manutenzione si ripete in base alRRULE
.START_TIME
fornisce anche l'ora di inizio della finestra di manutenzione.END_TIME
: l'ora di fine per il calcolo del durata del periodo di manutenzione, espressa dalla quantità di tempo dopoSTART_TIME
, nello stesso formato. Il valore perEND_TIME
deve essere nel futuro rispetto aSTART_TIME
. Questo calcola solo durata del periodo di manutenzione e non viene impostata quando il periodo di manutenzione non più ricorrente. I periodi di manutenzione smettono di ripetersi solo quando vengono rimossi.RRULE
: la ricorrenza della finestra di manutenzione, come espressa da una regola RRULE RFC-5545. Si tratta di un formato flessibile con più modi per specificare le regole di ripetizione, che determinano il giorno di inizio della finestra di manutenzione. Ad esempio: puoi specificare la ricorrenza di determinati orari della settimana o del mese. Se La data diEND_TIME
è successiva alla data DataSTART_TIME
, il periodo di manutenzione dura più giorni. Ad esempio, un periodo di manutenzione che inizia di domenica continuerebbe fino a lunedì.
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
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, quindi seleziona i giorni della settimana durante il quale 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 è attivata la finestra di manutenzione ricorrente, espressa come valore DTSTART RFC-5545. Dopo questo orario, il periodo di manutenzione si ripete in base alRRULE
. LaSTART_TIME
indica inoltre a che ora del giorno del periodo di manutenzione.END_TIME
: l'ora di fine per il calcolo della durata del periodo di manutenzione, espressa dal periodo di tempo successivo all'oraSTART_TIME
, nello stesso formato. Il valore perEND_TIME
deve essere nel futuro rispetto aSTART_TIME
. Questo calcola solo durata del periodo di manutenzione e non viene impostata quando il periodo di manutenzione non più ricorrente. I periodi di manutenzione si interrompono solo quando si verificano rimosso.RRULE
: la ricorrenza della finestra di manutenzione, come espressa da una regola RRULE RFC-5545. Si tratta di un formato flessibile con diversi modi per specificare la ricorrenza che determinano il giorno di inizio del periodo di manutenzione. Ad esempio: puoi specificare la ricorrenza di determinati orari della settimana o del mese. Se la dataEND_TIME
è successiva alla dataSTART_TIME
, la finestra di manutenzione si estende su più giorni. Ad esempio, un periodo di manutenzione che inizia di domenica continuerebbe 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 criterio 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, quindi i giorni della settimana in cui si verifica il periodo di manutenzione. Per modificare direttamente la regola RRule, seleziona Editor personalizzato.
Fai clic su Salva modifiche.
Termina manualmente la manutenzione incompleta
Se un upgrade o un'altra manutenzione automatica richiede più tempo della manutenzione finestra da completare, GKE tenta di interrompere la manutenzione in corso le attività e le riprende alla successiva occorrenza del periodo di manutenzione. Se un upgrade automatico viene annullato e gli upgrade automatici dei nodi sono abilitati, i nodi potrebbero essere in stato di versione mista, ma il cluster dovrebbe funzionare normalmente.
Per eseguire l'upgrade manuale del cluster, annullare o eseguire il rollback di un upgrade parziale, consulta Eseguire l'upgrade 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 criterio di manutenzione accanto al campo Periodo di manutenzione.
Deseleziona la casella di controllo Abilita periodo di manutenzione.
Fai clic su Salva modifiche.
Esempi di finestre di manutenzione
I seguenti esempi illustrano alcuni dei diversi modi in cui puoi configurare un periodo di manutenzione. Vengono visualizzati solo i flag pertinenti, poiché i flag utilizzano la stessa sintassi per creare un nuovo cluster o aggiornarne uno esistente.
Nei fine settimana, a partire dal 22 agosto 2026
In questo esempio, la differenza tra i timestamp di inizio e di fine è di due giorni interi, pertanto la finestra di manutenzione viene eseguita per l'intero fine settimana, tra sabato e domenica. Se vuoi che la finestra sia di lunghezza diversa rispetto a
esattamente 48 ore, modifica -start
per cambiare l'ora di inizio della finestra oppure
-end
per modificare la lunghezza 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, nei giorni feriali dalle 09:00 alle 17:00 UTC-4
Questo esempio mostra come avere una finestra di manutenzione giornaliera, ma saltare i fine settimana. Questo esempio specifica un fuso orario diverso da 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
, 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'
Giorni feriali di notte
Questo esempio mostra un periodo di manutenzione giornaliera durante la notte tra giorni lavorativi nel fuso orario UTC-7. In questo esempio, la finestra viene eseguita dalle 20:00 la sera fino 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 di manutenzione
Per configurare un'esclusione per la manutenzione per il tuo cluster, devi specificare quanto segue:
- Nome: il nome dell'esclusione (facoltativo).
- Start time (Ora di inizio): la data e l'ora di inizio del periodo di esclusione.
- Ora di fine: la data e l'ora di fine del periodo di esclusione. Consulta la tabella seguente per le limitazioni relative alla durata di un periodo di esclusione per ciascuno degli ambiti disponibili.
- Ambito: l'ambito degli upgrade automatici da limitare. Consulta la seguente tabella che elenca gli ambiti di esclusione disponibili.
Ambito | Descrizione | Lunghezza massima dell'esclusione |
---|---|---|
Nessun upgrade (impostazione predefinita) | Sono esclusi tutti gli upgrade di patch e di minorenni. Evita interruzioni delle VM ai piani di controllo e ai nodi del cluster a causa degli upgrade. | Non può superare i 30 giorni. |
Nessun upgrade secondario | Sono esclusi tutti gli upgrade secondari. Possono verificarsi interruzioni delle VM nel piano di controllo e nei nodi del cluster a causa degli upgrade delle patch. | Per i cluster registrati nei canali Rapido, Regolare o Stabile, non può si estendono oltre la fine dell'assistenza standard. Per i cluster registrati nel canale Extended, non può estendersi oltre il fine del supporto esteso della versione in modo minore. |
Nessun upgrade secondario o di nodi | Sono esclusi tutti gli upgrade secondari e gli upgrade dei nodi. Evita interruzioni delle VM ai nodi del cluster a causa degli upgrade. Tuttavia, possono verificarsi interruzioni nel piano di controllo. | Per i cluster registrati nei canali Rapido, Regolare o Stabile, non è possibile estendere il periodo oltre la fine dell'assistenza standard. Per i cluster registrati nel canale esteso, non può estendersi oltre la fine del supporto esteso della versione secondaria. |
Crea un cluster con un'esclusione di manutenzione
Puoi configurare un'esclusione di manutenzione quando crei un nuovo cluster utilizzando la console Google Cloud. Questa attività non può essere eseguita nella CLI gcloud.
Per creare un nuovo cluster con un'esclusione di manutenzione:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Configura il cluster.
Nel riquadro di navigazione, in Cluster, fai clic su Automazione.
In Esclusioni di manutenzione, fai clic su add Aggiungi esclusione per la manutenzione.
Seleziona l'Ambito, un'Ora di inizio e un'Ora di fine.
Fai clic su Crea.
Puoi vedere un esempio esclusione della manutenzione per il Black Friday.
Configurare un'esclusione dalla manutenzione per un cluster esistente
Puoi configurare un'esclusione di manutenzione su un cluster esistente utilizzando il metodo console Google Cloud o gcloud CLI.
gcloud
Configura un'esclusione di 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 di 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 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, accanto al campo Esclusioni per la manutenzione, fai clic su edit Modifica esclusioni per la manutenzione.
In 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 di manutenzione
Puoi rimuovere le esclusioni per la manutenzione utilizzando la console Google Cloud o la riga di comando gcloud.
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 per la manutenzione da rimuovere.
Console
Per rimuovere un'esclusione per la 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.
In Automazione, accanto al campo Esclusioni di manutenzione, fai clic su edit Modifica esclusioni di manutenzione.
In Esclusioni per la manutenzione, fai clic su delete Elimina elemento accanto al campo Ora di fine per l'esclusione da rimuovere.
Fai clic su Salva modifiche.
Per visualizzare tutte le esclusioni di manutenzione in un cluster, puoi visualizzare il criterio di manutenzione del cluster.
Esempio di esclusione dalla manutenzione
L'esempio seguente impedisce la manutenzione nell'arco di quattro giorni che include Black Friday fino al Cyber Monday, il periodo dell'anno con il maggior volume di vendite per molte attività di vendita al dettaglio. Questo esempio mostra come evitare che si verifichi un periodo di manutenzione Dal Black Friday 2021 (26 novembre 2021) al Cyber Monday 2021 (29 novembre 2021), dalla mezzanotte della costa orientale degli Stati Uniti (UTC-5) alle 23:59:59 del Pacifico (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 il criterio di manutenzione di un cluster
Per visualizzare il criterio di manutenzione di un cluster, ad esempio se è presente una finestra di manutenzione e tutte le relative esclusioni, utilizza il seguente comando:
gcloud container clusters describe CLUSTER_NAME
Risoluzione dei problemi
La limitazione dell'ambito delle esclusioni di manutenzione può essere applicata solo ai canali di rilascio
Quando limiti l'ambito degli upgrade automatici in un'esclusione di 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 di manutenzione superano il limite
Puoi specificare solo un massimo di 3 esclusioni di manutenzione che escludono tutti gli upgrade (ovvero un ambito di "nessun upgrade"), altrimenti viene visualizzato 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 di manutenzione in totale, altrimenti ricevi 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 come ricevere notifiche relative al cluster.