Eseguire il monitoraggio proattivo con Cloud Monitoring


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:

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:

  1. Nella console Google Cloud , vai alla pagina Esplora metriche.

    Vai a Esplora metriche

  2. Nel campo Metriche, seleziona o inserisci la metrica che vuoi esaminare.

  3. 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:

  1. Nell'elenco Seleziona una metrica, scegli la metrica kubernetes.io/container/memory/used_bytes e fai clic su Applica.
  2. Fai clic su Aggiungi filtro e seleziona namespace_name.
  3. Nell'elenco Valore, seleziona lo spazio dei nomi che vuoi esaminare.
  4. Nel campo Aggregazione, seleziona Somma > pod_name e fai clic su Ok. Questa impostazione mostra una linea di serie temporale separata per ogni pod.
  5. 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:

  1. Nella Google Cloud console, vai alla pagina Avvisi.

    Vai ad Avvisi

  2. Fai clic su Crea criterio.

  3. Nella casella Seleziona una metrica, filtra per CPU limit utilization e poi seleziona la seguente metrica: kubernetes.io/container/cpu/limit_utilization.

  4. Fai clic su Applica.

  5. Lascia vuoto il campo Aggiungi un filtro. Questa impostazione attiva un avviso quando un cluster viola la soglia.

  6. Nella sezione Trasforma i dati, segui questi passaggi:

    1. Nell'elenco Finestra temporale continua, seleziona 1 minuto. Questa impostazione indica che Google Cloud calcola un valore medio ogni minuto.
    2. 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.

  7. Fai clic su Avanti.

  8. Nella sezione Configura avviso, segui questi passaggi:

    1. In Tipo di condizione, seleziona Soglia.
    2. Per Attivatore di avvisi, seleziona Qualsiasi violazione della serie temporale.
    3. In Posizione soglia, seleziona Sopra la soglia.
    4. In Valore soglia, inserisci 0.8. Questo valore rappresenta la soglia dell'80% che vuoi monitorare.
    5. Fai clic su Opzioni avanzate.
    6. 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.
    7. Nel campo Nome condizione, assegna alla condizione un nome descrittivo.
    8. Fai clic su Avanti.
  9. Nella sezione Configura le notifiche e finalizza l'avviso, segui questi passaggi:

    1. 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.
    2. Nel campo Assegna un nome alla policy di avviso, assegna alla policy un nome chiaro e descrittivo.
    3. Lascia invariati i valori predefiniti degli altri campi.
    4. Fai clic su Avanti.
  10. 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