Le applicazioni in esecuzione nei cluster Google Kubernetes Engine (GKE) devono essere preparate a eventuali interruzioni come gli upgrade dei nodi e altri eventi di manutenzione. Le applicazioni stateful, che spesso richiedono tempo per arrestare in modo pulito l'I/O e lo smontaggio dall'archiviazione, sono particolarmente vulnerabili alle interruzioni. Puoi utilizzare funzionalità di Kubernetes come i budget di interruzione dei pod (PDB) e i probe di idoneità per mantenere disponibili le applicazioni durante gli upgrade.
GKE monitora i cluster e utilizza il servizio del motore per suggerimenti per fornire indicazioni su come ottimizzare l'utilizzo della piattaforma. GKE rileva le opportunità per preparare i carichi di lavoro all'interruzione e fornisce indicazioni su come aggiornare i PDB o i probe di idoneità per massimizzare la resilienza dei carichi di lavoro all'interruzione. Ad esempio, se uno StatefulSet non è protetto da un PDB, il cluster potrebbe rimuovere tutti i pod contemporaneamente durante un upgrade del nodo. Per evitare che questo accada, GKE fornisce indicazioni per creare un PDB in modo che la maggior parte dei pod possa rimanere in esecuzione durante un upgrade.
Per conoscere le condizioni specifiche in cui GKE fornisce indicazioni relative alle interruzioni, consulta Quando GKE identifica i carichi di lavoro con vulnerabilità all'interruzione.
Per saperne di più su come gestire gli insight e i suggerimenti dei motori per suggerimenti, consulta Ottimizzare l'utilizzo di GKE con insight e suggerimenti.
Identifica i carichi di lavoro con vulnerabilità all'interruzione
GKE genera insight che identificano i carichi di lavoro vulnerabili alle interruzioni del cluster. Per ottenere questi insight, segui le istruzioni per visualizzare insight e suggerimenti utilizzando Google Cloud CLI o l'API Recommender. Utilizza i sottotipi elencati nella sezione seguente per filtrare i dati in base a informazioni specifiche. Questi insight non sono disponibili nella console Google Cloud.
Quando GKE identifica i carichi di lavoro con vulnerabilità
Consulta la tabella seguente per gli scenari in cui GKE fornisce informazioni e suggerimenti e il sottotipo pertinente:
Sottotipo di insight | Descrizione | Azione |
---|---|---|
PDB_UNPROTECTED_STATEFULSET |
Avvisa quando esiste uno StatefulSet in cui nessuna etichetta PDB esistente corrisponde alle etichette del selettore pod dello StatefulSet. Ciò significa che tutti i pod nello StatefulSet possono essere rimossi durante un evento come un upgrade del nodo. | Aggiungi un PDB le cui etichette corrispondano a quelle nel campo Selettore pod di StatefulSet. Nel PDB, specifica in che misura l'interruzione può essere tollerata dallo StatefulSet. Il suggerimento associato a questo insight suggerisce quali etichette un PDB dovrebbe impostare per coprire lo StatefulSet menzionato. |
PDB_UNPERMISSIVE |
Avvisa quando è impossibile rispettare un PDB che corrisponde a un pod per attività di manutenzione, come l'upgrade di un nodo. Un PDB deve consentire l'interruzione di almeno un pod, quindi GKE viola questo PDB per la manutenzione necessaria dopo un'ora. | Modifica l'impostazione minAvailable del PDB in modo che sia inferiore al numero totale di pod o l'impostazione maxUnavailable in modo che sia maggiore di zero. |
PDB_STATEFULSET_WITHOUT_PROBES |
Avvisa quando uno StatefulSet viene configurato con un PDB ma senza probe di idoneità, quindi il PDB non è così efficace nel misurare l'idoneità dell'applicazione. I PDB rispettano i probe di idoneità quando esaminano quali pod possono essere conteggiati come integri. Di conseguenza, se per un pod coperto da un PDB non è configurato un probe di idoneità, il PDB ha una visibilità limitata se il pod è integro o solo in esecuzione. | Aggiungi probe di idoneità ai pod negli oggetti StatefulSet per il PDB menzionato nell'insight. Ti consigliamo inoltre di aggiungere probe di attività. |
Implementa le indicazioni per migliorare la preparazione alle interruzioni
Se hai ricevuto insight e suggerimenti per i carichi di lavoro nel tuo cluster e vuoi migliorarne la preparazione alle interruzioni, implementa le istruzioni descritte nel suggerimento e l'azione per quel sottotipo di insight, come mostrato nella sezione precedente.
I suggerimenti vengono valutati una volta al giorno, pertanto potrebbero essere necessarie fino a 24 ore prima che vengano risolti dopo l'implementazione delle modifiche. Se sono trascorse meno di 24 ore dall'implementazione della guida del suggerimento, puoi contrassegnarlo come risolto. Se non vuoi implementare il suggerimento, puoi ignorarlo.
Passaggi successivi
- Per saperne di più su come garantire affidabilità e uptime per il tuo cluster GKE, consulta le Best practice per le operazioni del giorno 2 di GKE.
- Per saperne di più sulle possibili interruzioni dei pod in Kubernetes, consulta Interruzioni.