Reagire ai problemi dopo che si sono verificati può causare tempi di inattività. Per mantenere un sistema resiliente in Google Kubernetes Engine (GKE), devi identificare i potenziali problemi prima che influiscano sui tuoi utenti.
Utilizza questa pagina per monitorare in modo proattivo il tuo ambiente GKE con Cloud Monitoring monitorando gli indicatori chiave di prestazione, visualizzando le tendenze e configurando avvisi per rilevare problemi come l'aumento dei tassi di errore o i vincoli delle risorse.
Queste informazioni sono importanti per gli amministratori e gli operatori della piattaforma responsabili di garantire l'integrità, l'affidabilità e l'efficienza dell'ambiente GKE. Inoltre, aiuta gli sviluppatori di applicazioni a comprendere le prestazioni della loro app in condizioni reali, rilevare regressioni tra le implementazioni e ottenere informazioni per l'ottimizzazione. Per maggiori informazioni sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli utente e attività comuni di GKE.
Esaminare le metriche utili
GKE invia automaticamente un insieme di metriche a Cloud Monitoring. Le sezioni seguenti elencano alcune delle metriche più importanti per la risoluzione dei problemi:
- Metriche di rendimento e stato del contenitore
- Metriche di rendimento e integrità dei nodi
- Metriche di rendimento e stato del pod
Per un elenco completo delle metriche GKE, consulta Metriche di sistema GKE.
Metriche di integrità e rendimento dei container
Inizia con queste metriche quando sospetti un problema con un'app specifica. Queste metriche ti aiutano a monitorare l'integrità della tua app, ad esempio a scoprire se un container si riavvia frequentemente, esaurisce la memoria o viene limitato dai limiti della CPU.
Metrica | Descrizione | Importanza della risoluzione dei problemi |
---|---|---|
kubernetes.io/container/cpu/limit_utilization |
Frazione del limite di CPU attualmente in uso nell'istanza. Questo valore può essere maggiore di 1 in quanto a un container potrebbe essere consentito di superare il limite di CPU. | Identifica la limitazione della CPU. Valori elevati possono comportare un peggioramento delle prestazioni. |
kubernetes.io/container/memory/limit_utilization |
Frazione del limite di memoria attualmente in uso nell'istanza. Questo valore non può essere maggiore di 1. | Monitora il rischio di errori OutOfMemory (OOM). |
kubernetes.io/container/memory/used_bytes |
Memoria effettiva utilizzata dal container in byte. | Monitora il consumo di memoria per identificare potenziali perdite di memoria o il rischio di errori di memoria insufficiente. |
kubernetes.io/container/memory/page_fault_count |
Numero di errori pagina, suddivisi per tipo: maggiori e minori. | Indica una pressione significativa sulla memoria. Gli errori di pagina principali indicano che la memoria viene letta dal disco (scambio), anche se i limiti di memoria non vengono raggiunti. |
kubernetes.io/container/restart_count |
Numero di riavvii del container. | Evidenzia potenziali problemi come arresti anomali delle app, configurazioni errate o esaurimento delle risorse a causa di un numero elevato o crescente di riavvii. |
kubernetes.io/container/ephemeral_storage/used_bytes |
Utilizzo dello spazio di archiviazione temporanea locale in byte. | Monitora l'utilizzo del disco temporaneo per evitare l'espulsione dei pod a causa dell'archiviazione temporanea completa. |
kubernetes.io/container/cpu/request_utilization |
Frazione dell'utilizzo della CPU richiesto attualmente in uso nell'istanza. Questo valore può essere maggiore di 1 in quanto l'utilizzo può superare la richiesta. | Identifica le richieste di CPU con provisioning eccessivo o insufficiente per aiutarti a ottimizzare l'allocazione delle risorse. |
kubernetes.io/container/memory/request_utilization |
Frazione della memoria richiesta attualmente in uso nell'istanza. Questo valore può essere maggiore di 1 in quanto l'utilizzo può superare la richiesta. | Identifica le richieste di memoria con provisioning eccessivo o insufficiente per migliorare la pianificazione ed evitare errori di esaurimento della memoria. |
Metriche di integrità e prestazioni dei nodi
Esamina queste metriche quando devi diagnosticare problemi relativi all'infrastruttura GKE sottostante. Queste metriche sono fondamentali per comprendere l'integrità e la capacità complessive dei nodi, aiutandoti a verificare se il nodo non è integro o è sotto pressione o se ha memoria sufficiente per pianificare nuovi pod.
Metrica | Descrizione | Importanza della risoluzione dei problemi |
---|---|---|
kubernetes.io/node/cpu/allocatable_utilization |
Frazione della CPU allocabile attualmente in uso nell'istanza. | Indica se la somma dell'utilizzo dei pod sta mettendo a dura prova le risorse della CPU disponibili del nodo. |
kubernetes.io/node/memory/allocatable_utilization |
Frazione della memoria allocabile attualmente in uso nell'istanza. Questo valore non può essere maggiore di 1 in quanto l'utilizzo non può superare i byte di memoria allocabili. | Suggerisce che il nodo non ha memoria sufficiente per pianificare nuovi pod o per il funzionamento dei pod esistenti, soprattutto quando i valori sono elevati. |
kubernetes.io/node/status_condition (BETA) |
Condizione di un nodo dal campo della condizione di stato del nodo. | Segnala le condizioni di integrità dei nodi, ad esempio Ready , MemoryPressure o DiskPressure . |
kubernetes.io/node/ephemeral_storage/used_bytes |
Byte di spazio di archiviazione temporanea locale utilizzati dal nodo. | Aiuta a evitare errori di avvio o espulsioni dei pod fornendo avvisi sull'utilizzo elevato dello spazio di archiviazione temporaneo. |
kubernetes.io/node/ephemeral_storage/inodes_free |
Numero gratuito di nodi indice (inode) nello spazio di archiviazione temporanea locale. | Monitora il numero di inode liberi. L'esaurimento degli inode può interrompere le operazioni anche se lo spazio su disco è disponibile. |
kubernetes.io/node/interruption_count (BETA) |
Le interruzioni sono espulsioni di sistema dell'infrastruttura mentre il cliente ha il controllo di questa infrastruttura. Questa metrica è il conteggio attuale delle interruzioni per tipo e motivo. | Spiega perché un nodo potrebbe scomparire inaspettatamente a causa di espulsioni del sistema. |
Metriche di salute e rendimento del pod
Queste metriche ti aiutano a risolvere i problemi relativi all'interazione di un pod con il suo ambiente, ad esempio la rete e l'archiviazione. Utilizza queste metriche quando devi diagnosticare i pod a esecuzione lenta, esaminare potenziali problemi di connettività di rete o gestire in modo proattivo lo spazio di archiviazione per evitare errori di scrittura dovuti a volumi pieni.
Metrica | Descrizione | Importanza della risoluzione dei problemi |
---|---|---|
kubernetes.io/pod/network/received_bytes_count |
Numero cumulativo di byte ricevuti dal pod tramite la rete. | Identifica l'attività di rete insolita (alta o bassa) che può indicare problemi di app o di rete. |
kubernetes.io/pod/network/policy_event_count (BETA) |
Variazione del numero di eventi dei criteri di rete visualizzati nel piano dati. | Identifica i problemi di connettività causati dalle policy di rete. |
kubernetes.io/pod/volume/utilization |
Frazione del volume attualmente utilizzata dall'istanza. Questo valore non può essere maggiore di 1 in quanto l'utilizzo non può superare lo spazio di volume totale disponibile. | Consente la gestione proattiva dello spazio del volume avvisando quando un utilizzo elevato (che si avvicina a 1) potrebbe causare errori di scrittura. |
kubernetes.io/pod/latencies/pod_first_ready (BETA) |
La latenza di avvio end-to-end del pod (da "Creato" a "Pronto"), inclusi i pull delle immagini. | Diagnostica i pod con avvio lento. |
Visualizzare le metriche con Metrics Explorer
Per visualizzare lo stato del tuo ambiente GKE, crea grafici basati sulle metriche con Metrics Explorer.
Per utilizzare Metrics Explorer, completa i seguenti passaggi:
Nella console Google Cloud , vai alla pagina Esplora metriche.
Nel campo Metriche, seleziona o inserisci la metrica che vuoi esaminare.
Visualizza i risultati e osserva le tendenze nel tempo.
Ad esempio, per esaminare il consumo di memoria dei pod in uno spazio dei nomi specifico, puoi procedere nel seguente modo:
- Nell'elenco Seleziona una metrica, scegli la metrica
kubernetes.io/container/memory/used_bytes
e fai clic su Applica. - Fai clic su Aggiungi filtro e seleziona namespace_name.
- Nell'elenco Valore, seleziona lo spazio dei nomi che vuoi esaminare.
- Nel campo Aggregazione, seleziona Somma > pod_name e fai clic su Ok. Questa impostazione mostra una linea di serie temporale separata per ogni pod.
- Fai clic su Salva grafico.
Il grafico risultante mostra l'utilizzo della memoria per ogni pod nel tempo, il che può aiutarti a identificare visivamente i pod con un consumo di memoria insolitamente elevato o con picchi.
Metrics Explorer offre una grande flessibilità nella creazione delle metriche che vuoi visualizzare. Per ulteriori informazioni sulle opzioni avanzate di Metrics Explorer, consulta Crea grafici con Esplora metriche nella documentazione di Cloud Monitoring.
Crea avvisi per il rilevamento proattivo dei problemi
Per ricevere notifiche quando si verificano problemi o quando le metriche superano determinate soglie, configura criteri di avviso in Cloud Monitoring.
Ad esempio, per configurare un criterio di avviso che ti avvisi quando il limite di CPU del container supera l'80% per cinque minuti, segui questi passaggi:
Nella Google Cloud console, vai alla pagina Avvisi.
Fai clic su Crea criterio.
Nella casella Seleziona una metrica, filtra per
CPU limit utilization
e poi seleziona la seguente metrica: kubernetes.io/container/cpu/limit_utilization.Fai clic su Applica.
Lascia vuoto il campo Aggiungi un filtro. Questa impostazione attiva un avviso quando un cluster viola la soglia.
Nella sezione Trasforma i dati, segui questi passaggi:
- Nell'elenco Finestra temporale continua, seleziona 1 minuto. Questa impostazione indica che Google Cloud calcola un valore medio ogni minuto.
Nell'elenco Funzione finestra temporale continua, seleziona media.
Entrambe queste impostazioni calcolano la media dell'utilizzo del limite di CPU per ogni container ogni minuto.
Fai clic su Avanti.
Nella sezione Configura avviso, segui questi passaggi:
- In Tipo di condizione, seleziona Soglia.
- Per Attivatore di avvisi, seleziona Qualsiasi violazione della serie temporale.
- In Posizione soglia, seleziona Sopra la soglia.
- In Valore soglia, inserisci
0.8
. Questo valore rappresenta la soglia dell'80% che vuoi monitorare. - Fai clic su Opzioni avanzate.
- Nell'elenco Finestra di ripetizione del test, seleziona 5 min. Questa impostazione indica che l'avviso viene attivato solo se l'utilizzo della CPU rimane superiore all'80% per un periodo continuo di cinque minuti, il che riduce i falsi allarmi dovuti a picchi brevi.
- Nel campo Nome condizione, assegna alla condizione un nome descrittivo.
- Fai clic su Avanti.
Nella sezione Configura le notifiche e finalizza l'avviso, segui questi passaggi:
- Nell'elenco Canali di notifica, seleziona il canale su cui vuoi ricevere l'avviso. Se non hai un canale, fai clic su Gestisci canali di notifica per crearne uno.
- Nel campo Assegna un nome alla policy di avviso, assegna alla policy un nome chiaro e descrittivo.
- Lascia invariati i valori predefiniti degli altri campi.
- Fai clic su Avanti.
Esamina le norme e, se tutto sembra corretto, fai clic su Crea norma.
Per scoprire altri modi per creare avvisi, consulta la panoramica degli avvisi nella documentazione di Cloud Monitoring.
Passaggi successivi
Leggi Accelerare la diagnosi con Gemini Cloud Assist (la pagina successiva di questa serie).
Vedi questi concetti applicati nello scenario di esempio per la risoluzione dei problemi.
Per consigli sulla risoluzione di problemi specifici, consulta le guide alla risoluzione dei problemi di GKE.
Se non riesci a trovare una soluzione al tuo problema nella documentazione, consulta la sezione Richiedere assistenza per ulteriore aiuto, inclusi consigli sui seguenti argomenti:
- Aprire una richiesta di assistenza contattando l'assistenza clienti cloud.
- Ricevere assistenza dalla community
ponendo domande su StackOverflow e utilizzando il tag
google-kubernetes-engine
per cercare problemi simili. Puoi anche unirti al canale Slack#kubernetes-engine
per ulteriore assistenza della community. - Apertura di bug o richieste di funzionalità utilizzando lo strumento di monitoraggio dei problemi pubblico.