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 sugli 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. Aiuta inoltre gli sviluppatori di applicazioni a comprendere le prestazioni della loro app in condizioni reali, a rilevare regressioni tra le implementazioni e a ottenere informazioni per l'ottimizzazione. Per saperne di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Cloud de Confiance by S3NS , consulta Ruoli utente e attività comuni di GKE.
Esamina 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 sullo stato e sul rendimento dei container
- Metriche di rendimento e stato dei nodi
- Metriche di rendimento e stato del pod
Per un elenco completo delle metriche GKE, consulta Metriche di sistema GKE.
Metriche di rendimento e integrità 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 per scoprire se un container si riavvia di frequente, se la memoria è out of memory o se è limitato dai limiti della CPU.
| Metrica | Descrizione | Risoluzione dei problemi relativi alla significatività |
|---|---|---|
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 superiore a 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 della memoria significativa. 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, errori di configurazione 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 dello spazio di archiviazione temporaneo esaurito. |
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 OOM. |
Metriche di salute e rendimento 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. | Contribuisce 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 di nodi di indice (inode) liberi nello spazio di archiviazione temporaneo 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 infrastrutture da parte del sistema mentre il cliente ha il controllo di quell'infrastruttura. Questa metrica indica il numero attuale di interruzioni per tipo e motivo. | Spiega perché un nodo potrebbe scomparire inaspettatamente a causa di espulsioni del sistema. |
Metriche di rendimento e salute 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 pod con avvio lento, 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 sulla 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 della policy 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 Cloud de Confiance , vai alla pagina Esplora metriche.
Nel campo Metriche, seleziona o inserisci la metrica che vuoi esaminare.
Visualizza i risultati e osserva eventuali 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_bytese 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 riga 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 in aumento.
Metrics Explorer offre una grande flessibilità nella creazione delle metriche che vuoi visualizzare. Per saperne di più 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 le policy di avviso in Cloud Monitoring.
Ad esempio, per configurare una criterio di avviso che ti avvisa quando il limite di CPU del container supera l'80% per cinque minuti:
Nella Cloud de Confiance console, vai alla pagina Avvisi.
Fai clic su Crea policy.
Nella casella Seleziona una metrica, filtra per
CPU limit utilizatione 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 Cloud de Confiance 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:
- Per 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 test, seleziona 5 min. Questa impostazione significa che l'avviso viene attivato solo se l'utilizzo della CPU rimane superiore all'80% per un periodo di cinque minuti continui, 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 la policy e, se tutto sembra corretto, fai clic su Crea policy.
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 Richiedere assistenza per ulteriore aiuto, inclusi consigli sui seguenti argomenti:
- Aprire una richiesta di assistenza contattando l'assistenza clienti Google Cloud.
- Ricevere assistenza dalla community ponendo domande su Stack Overflow e utilizzando il tag
google-kubernetes-engineper cercare problemi simili. Puoi anche unirti al canale Slack#kubernetes-engineper assistenza dalla community. - Apertura di problemi o richieste di funzionalità utilizzando l'Issue Tracker pubblico.