Configura periodi di manutenzione ed esclusioni


Utilizza le finestre di manutenzione e le esclusioni di manutenzione per controllare quando può e non può essere eseguita la manutenzione automatica dei cluster, ad esempio gli upgrade automatici, nei tuoi cluster Google Kubernetes Engine (GKE). Prima di configurare queste norme di manutenzione, assicurati di esaminare le modifiche che 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à, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni 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 periodo di manutenzione che si ripete settimanalmente 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 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 e la configurazione di una nuova finestra sovrascrive quella 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, 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 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 un periodo di manutenzione inizi alle 02:00 di mercoledì nel tuo fuso orario, specifica un valore UTC di 20:00 per i martedì. Per saperne di più, consulta Fusi orari per le finestre di manutenzione.

Periodo di manutenzione che impedisce il completamento dell'aggiornamento del nodo

Se il cluster non riesce a completare gli aggiornamenti dei nodi, come gli upgrade delle versioni dei nodi, entro il periodo di manutenzione pianificato, la frequenza degli upgrade può rallentare o il completamento delle modifiche ai nodi può essere ritardato. Potresti dover fare esperimenti sulla configurazione per trovare il giusto equilibrio 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 dà la priorità all'interruzione minima rispetto alla velocità.
  • Alcune opzioni di configurazione del pod. Per ulteriori informazioni, consulta la sezione Considerazioni sulla durata dell'upgrade dei nodi.

Creare un cluster standard con una periodo di manutenzione semplice

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 una 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 nell'ora UTC, ad esempio 16:00.

La periodo di manutenzione viene eseguita ogni giorno alle ore specificateSTART_TIME e dura quattro ore.

Creare una periodo di manutenzione personalizzata

Puoi creare una periodo di manutenzione che si verifica in determinati momenti della settimana o del mese utilizzando i parametri aggiuntivi descritti 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. Questo periodo di manutenzione si ripete settimanalmente ogni lunedì e venerdì e termina 30 ore più tardi. La prima occorrenza della periodo 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 altri scenari, consulta gli esempi di finestre di manutenzione.

Creare un cluster con un periodo di manutenzione

Puoi creare un nuovo cluster standard con una periodo di manutenzione utilizzando la gcloud CLI o la console Google Cloud. Per creare un nuovo cluster Autopilot con una periodo di manutenzione, utilizza la console Google Cloud.

gcloud

Crea un nuovo cluster standard con una 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 è attivata la periodo di manutenzione ricorrente, espressa come valore DTSTART RFC-5545. Dopo questo orario, il periodo di manutenzione si ripete in base al RRULE. START_TIME fornisce anche l'ora di inizio della 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'ora START_TIME, nello stesso formato. Il valore per END_TIME deve essere nel futuro rispetto a START_TIME. Viene calcolata solo la durata della finestra e non viene impostato il momento in cui il periodo di manutenzione smette di essere ricorrente. I periodi di manutenzione smettono di ripetersi solo quando vengono rimossi.
  • RRULE: la ricorrenza della periodo 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 periodo di manutenzione. Ad esempio, puoi specificare la ripetizione di determinate ore in una settimana o in un mese. Se la data END_TIME è successiva alla data START_TIME, il periodo di manutenzione si estende su più giorni. Ad esempio, un periodo di manutenzione che inizia di domenica continuerebbe fino a lunedì.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Configura il cluster.

  4. Nel riquadro di navigazione, fai clic su Automazione in Cluster.

  5. Seleziona la casella di controllo Abilita periodo di manutenzione.

  6. 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 specifica della regola di ricorrenza (RRule), seleziona Editor personalizzato.

  7. Fai clic su Crea.

Configurare 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 periodo di manutenzione ricorrente, espressa come valore DTSTART RFC-5545. Dopo questo orario, il periodo di manutenzione si ripete in base al RRULE. START_TIME fornisce anche l'ora di inizio della 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'ora START_TIME, nello stesso formato. Il valore di END_TIME deve essere nel futuro rispetto a START_TIME. Viene calcolata solo la durata della finestra e non viene impostato il momento in cui il periodo di manutenzione smette di essere ricorrente. I periodi di manutenzione smettono di ripetersi solo quando vengono rimossi.
  • RRULE: la ricorrenza della periodo 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 periodo di manutenzione. Ad esempio, puoi specificare la ripetizione di determinate ore in una settimana o in un mese. Se la data END_TIME è successiva alla data START_TIME, il periodo 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:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. In Automazione, fai clic su Modifica criterio di manutenzione accanto al campo Periodo di manutenzione.

  4. Seleziona la casella di controllo Abilita periodo di manutenzione.

  5. 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.

  6. Fai clic su Salva modifiche.

Completare manualmente la manutenzione incompleta

Se il completamento di un upgrade o di un'altra manutenzione automatica richiede più tempo del periodo di manutenzione, 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 attivato gli upgrade automatici dei nodi, i nodi potrebbero trovarsi in uno stato di versioni miste, 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

Per rimuovere 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 una periodo di manutenzione:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. In Automazione, fai clic su Modifica criterio di manutenzione accanto al campo Periodo di manutenzione.

  4. Deseleziona la casella di controllo Abilita periodo di manutenzione.

  5. Fai clic su Salva modifiche.

Periodi di manutenzione di esempio

Gli esempi riportati di seguito 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 periodo di manutenzione viene eseguita per l'intero fine settimana, tra sabato e domenica. Se vuoi che la finestra abbia una durata diversa da esattamente 48 ore, modifica -start per modificare l'inizio della finestra o -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 dal lunedì al venerdì dalle 9:00 alle 17:00 UTC-4

Questo esempio mostra come avere una periodo 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, 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'

Giorni feriali di notte

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 di 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'

Configurare un'esclusione dalla manutenzione

Per configurare un'esclusione per la manutenzione per il tuo cluster, devi specificare quanto segue:

  • Nome: il nome dell'esclusione (facoltativo).
  • Ora di inizio: la data e l'ora di inizio del periodo di esclusione. L'ora di inizio deve essere attuale o futura.
  • 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 tabella seguente che elenca gli ambiti di esclusione disponibili.
Ambito Descrizione Lunghezza massima dell'esclusione
Nessun upgrade (impostazione predefinita) Sono escluse tutte le patch e gli upgrade minori. Evita interruzioni delle VM per gli upgrade del piano di controllo e dei nodi del cluster. 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 è possibile estendere il periodo di assistenza 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.
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 di assistenza 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.

Creare un cluster con un'esclusione per la manutenzione

Puoi configurare un'esclusione per la manutenzione durante la creazione di 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:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Configura il cluster.

  4. Nel riquadro di navigazione, fai clic su Automazione in Cluster.

  5. In Esclusioni dalla manutenzione, fai clic su Aggiungi esclusione dalla manutenzione.

  6. Seleziona l'Ambito, un'ora di inizio e un'ora di fine.

  7. Fai clic su Crea.

Puoi vedere un esempio di esclusione dalla manutenzione per il Black Friday.

Configurare un'esclusione dalla manutenzione per un cluster esistente

Puoi configurare un'esclusione per la manutenzione su un cluster esistente utilizzando la console Google Cloud o la 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 dalla 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 o no_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:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. In Automazione, accanto al campo Esclusioni per la manutenzione, fai clic su Modifica esclusioni per la manutenzione.

  4. In Esclusioni dalla manutenzione, fai clic su Aggiungi esclusione dalla manutenzione.

  5. Seleziona l'Ambito, un'ora di inizio e un'ora di fine.

  6. Fai clic su Salva modifiche.

Rimuovere un'esclusione dalla manutenzione

Puoi rimuovere le esclusioni per la manutenzione utilizzando la console Google Cloud o la 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 per la manutenzione da rimuovere.

Console

Per rimuovere un'esclusione per la manutenzione da un cluster esistente:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. In Automazione, accanto al campo Esclusioni per la manutenzione, fai clic su Modifica esclusioni per la manutenzione.

  4. In Esclusioni per la manutenzione, fai clic su Elimina elemento accanto al campo Ora di fine per l'esclusione da rimuovere.

  5. 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

Il seguente esempio impedisce la manutenzione nei quattro giorni che vanno dal Black Friday al Cyber Monday, il periodo di vendita 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), dalla mezzanotte EST (UTC-5) alle 23:59:59 PST (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

Identificare i cluster senza un periodo di manutenzione configurato

GKE identifica i cluster per i quali non hai configurato un periodo di manutenzione in modo da poter scegliere un periodo ricorrente in cui GKE può eseguire la manutenzione del cluster. Ti consigliamo di configurare un periodo di manutenzione per assicurarti che GKE esegua gli upgrade automatici e altra manutenzione del cluster che rispetti le norme di manutenzione quando è più conveniente per il tuo ambiente cluster.

GKE fornisce queste indicazioni con un approfondimento e un consiglio tramite il servizio di consigli. Per scoprire di più su come gestire gli approfondimenti e i consigli di Recommender, consulta Ottimizzare l'utilizzo di GKE con approfondimenti e consigli.

Per trovare i cluster senza un periodo di manutenzione configurato, puoi utilizzare uno dei seguenti metodi:

  • Utilizza la console Google Cloud.
  • Utilizza l'interfaccia a riga di comando gcloud o l'API Recommender, specificando il CLUSTER_MAINTENANCE_WINDOW_AND_EXCLUSIONS tipo di 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 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.

Il numero di esclusioni dalla manutenzione supera 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 per la manutenzione in totale, altrimenti viene visualizzato il seguente errore:

ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=Number of total maintenance exclusions exceeds limit (20).

Passaggi successivi