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

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:

  1. Nella console Cloud de Confiance , 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 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:

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

  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 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 Cloud de Confiance 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. Per 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 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.
    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 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