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 sugli utenti.

Utilizza questa pagina per monitorare in modo proattivo il tuo ambiente GKE con Cloud Monitoring monitorando gli indicatori chiave delle prestazioni, 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. Aiutano anche gli sviluppatori di applicazioni a comprendere le prestazioni della loro app in condizioni reali, a rilevare le regressioni nei deployment e a ottenere informazioni per l'ottimizzazione. Per ulteriori informazioni sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Cloud de Confiance by S3NS contenuti, consulta Ruoli e attività comuni degli utenti 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 prestazioni dei container

Inizia con queste metriche quando sospetti un problema con un'app specifica. Queste metriche ti aiutano a monitorare l'integrità dell'app, ad esempio a scoprire se un container si riavvia di frequente, se sta esaurendo la memoria o se è limitato dai limiti della CPU.

Metrica Descrizione Importanza per la 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 causare 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 di memoria insufficiente (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 pagina maggiori indicano che la memoria viene letta dal disco (swapping), 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 tramite 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 temporanea completo.
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 memoria insufficiente.

Metriche di integrità e prestazioni dei nodi

Esamina queste metriche quando devi diagnosticare problemi con l'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 per la 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 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à del nodo come Ready, MemoryPressure o DiskPressure.
kubernetes.io/node/ephemeral_storage/used_bytes Byte di spazio di archiviazione temporanea locale utilizzati dal nodo. Aiuta a prevenire errori di avvio o espulsioni dei pod fornendo avvisi sull'utilizzo elevato dello spazio di archiviazione temporanea.
kubernetes.io/node/ephemeral_storage/inodes_free Numero di nodi indice (inode) liberi 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 delle espulsioni di sistema.

Metriche di integrità e prestazioni dei pod

Queste metriche ti aiutano a risolvere i problemi relativi all'interazione di un pod con il suo ambiente, ad esempio la rete e lo spazio di archiviazione. Utilizza queste metriche quando devi diagnosticare i pod che si avviano lentamente, esaminare potenziali problemi di connettività di rete o gestire in modo proattivo lo spazio di archiviazione per evitare errori di scrittura dovuti a volumi completi.

Metrica Descrizione Importanza per la risoluzione dei problemi
kubernetes.io/pod/network/received_bytes_count Numero cumulativo di byte ricevuti dal pod tramite la rete. Identifica attività di rete insolite (alte o basse) che possono indicare problemi di rete o dell'app.
kubernetes.io/pod/network/policy_event_count (BETA) Modifica del numero di eventi di 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 `Created` a `Ready`), inclusi i pull delle immagini. Diagnostica i pod che si avviano lentamente.

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, segui questi passaggi:

  1. Nella Cloud de Confiance console, 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 riga 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 di consumo di memoria.

Metrics Explorer offre una grande flessibilità nella creazione delle metriche che vuoi visualizzare. Per ulteriori informazioni sulle opzioni avanzate di Metrics Explorer, consulta Creare grafici con Esplora metriche nella documentazione di Cloud Monitoring.

Creare 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 invia una notifica quando il limite di CPU del container supera l'80% per cinque minuti, procedi nel seguente modo:

  1. Nella Cloud de Confiance console, vai alla pagina Avvisi.

    Vai ad Avvisi

  2. Fai clic su Crea policy.

  3. Nella casella Seleziona una metrica, filtra per CPU limit utilization e 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 mobile, seleziona 1 minuto. Questa impostazione indica che Cloud de Confiance calcola un valore medio ogni minuto.
    2. Nell'elenco Funzione finestra mobile, 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. In 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 brevi picchi.
    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 in 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 la policy e, se tutto sembra corretto, fai clic su Crea policy.

Per scoprire altri modi per creare avvisi, consulta la panoramica sugli avvisi nella documentazione di Cloud Monitoring.

Passaggi successivi