Configurazione della raccolta di metriche


Questo documento descrive come configurare Google Kubernetes Engine (GKE) per inviare metriche a Cloud Monitoring. Le metriche in Cloud Monitoring possono compilare dashboard personalizzate, generare avvisi, creare obiettivi a livello di servizio oppure essere recuperate da servizi di monitoraggio di terze parti utilizzando l'API Cloud Monitoring.

GKE fornisce diverse origini delle metriche:

  • Metriche di sistema: metriche dei componenti di sistema essenziali, che descrivono risorse di basso livello come CPU, memoria e spazio di archiviazione.
  • Google Cloud Managed Service per Prometheus: consente di monitorare e creare avvisi sui carichi di lavoro utilizzando Prometheus, senza dover gestire e utilizzare manualmente Prometheus su larga scala.
  • Pacchetti di metriche di osservabilità:

    • Metriche del piano di controllo: metriche esportate da determinati componenti del piano di controllo, come lo scheduler e il server API.
    • Metriche di stato kube: un insieme selezionato di metriche esportate dal servizio kube state, utilizzate per monitorare lo stato di oggetti Kubernetes come pod, deployment e altro ancora. Per il set di metriche incluse, consulta Utilizzare le metriche dello stato di kube.

      Il pacchetto dello stato kube è una soluzione gestita. Se hai bisogno di maggiore flessibilità, ad esempio se hai bisogno di raccogliere metriche aggiuntive, di gestire gli intervalli di scrape o di eseguire lo scraping di altre risorse, puoi disabilitare il pacchetto, se è abilitato, ed eseguire il deployment della tua istanza del servizio open source Kube State Metrics. Per ulteriori informazioni, consulta la documentazione dell'esportatore Google Cloud Managed Service per Prometheus per le metriche di stato del Kube.

    • cAdvisor/Kubelet: un set selezionato di metriche cAdvisor e Kubelet. Per l'insieme delle metriche incluse, consulta Utilizzare le metriche cAdvisor/Kubelet.

      Il pacchetto cAdvisor/Kubelet è una soluzione gestita. Se hai bisogno di maggiore flessibilità, ad esempio se hai bisogno di raccogliere metriche aggiuntive, gestire gli intervalli di scrape o eseguire lo scraping di altre risorse, puoi disabilitare il pacchetto, se è abilitato, ed eseguire il deployment della tua istanza dei servizi per le metriche open source cAdvisor/Kubelet. Per ulteriori informazioni, consulta la documentazione di Google Cloud Managed Service per Prometheus per cAdvisor/Kubelet.

Metriche di sistema

Quando viene creato un cluster, GKE raccoglie per impostazione predefinita alcune metriche emesse dai componenti di sistema.

Puoi scegliere se inviare o meno le metriche dal tuo cluster GKE a Cloud Monitoring. Se scegli di inviare le metriche a Cloud Monitoring, devi inviarle di sistema.

Tutte le metriche di sistema di GKE vengono importate in Cloud Monitoring con il prefisso kubernetes.io.

Prezzi

Cloud Monitoring non addebita alcun costo per l'importazione delle metriche di sistema GKE. Per ulteriori informazioni, consulta i prezzi di Cloud Monitoring.

Configurazione della raccolta di metriche di sistema

Per abilitare la raccolta delle metriche di sistema, passa il valore SYSTEM al flag --monitoring dei comandi gcloud container clusters create o gcloud container clusters update.

Per disabilitare la raccolta delle metriche di sistema, utilizza il valore NONE per il flag --monitoring. Se la raccolta delle metriche di sistema è disabilitata, le informazioni di base come l'utilizzo della CPU, l'utilizzo della memoria e l'utilizzo del disco non sono disponibili per un cluster nella scheda Osservabilità o nella sezione GKE della console Google Cloud.

Per i cluster GKE Autopilot, non puoi disabilitare la raccolta delle metriche di sistema.

Consulta Osservabilità per GKE per ulteriori dettagli sull'integrazione di Cloud Monitoring con GKE.

Per configurare la raccolta di metriche di sistema utilizzando Terraform, consulta il blocco monitoring_config nel registro Terraform per google_container_cluster. Per informazioni generali sull'utilizzo di Google Cloud con Terraform, consulta Terraform con Google Cloud.

Elenco delle metriche di sistema

Le metriche di sistema includono metriche di componenti essenziali di sistema importanti per Kubernetes. Per un elenco di queste metriche, consulta Metriche di sistema GKE.

Metriche abilitate per impostazione predefinita in GKE Enterprise

Nelle tabelle seguenti, un segno di spunta () indica quali metriche sono abilitate per impostazione predefinita quando crei e registri un nuovo cluster in un progetto in cui è abilitato GKE Enterprise:

Nome metrica Autopilot Standard
Sistema
Server API
Scheduler
Gestore del controller
Volume permanente (archiviazione)
i pod
Deployment
StatefulState
DaemonSet
HorizonalPodAutoscaler
cAdvisor
Kubelet

Tutti i cluster registrati in un progetto in cui è abilitato GKE Enterprise possono utilizzare i pacchetti per le metriche del piano di controllo, le metriche dello stato kube e le metriche cAdvisor/kubelet senza alcun costo aggiuntivo. In caso contrario, queste metriche sono soggette ad addebiti di Cloud Monitoring.

Risoluzione dei problemi relativi alle metriche di sistema

Se le metriche di sistema non sono disponibili in Cloud Monitoring come previsto, consulta Risolvere i problemi relativi alle metriche di sistema.

Pacchetto: metriche del piano di controllo

Puoi configurare un cluster GKE per inviare a Cloud Monitoring determinate metriche emesse dal server API Kubernetes, dallo scheduler e dal gestore del controller.

Per maggiori informazioni, consulta Raccogliere e visualizzare le metriche del piano di controllo.

Pacchetto: metriche di stato kube

Puoi configurare un cluster GKE per inviare a Cloud Monitoring un set selezionato di metriche di stato kube in formato Prometheus. Questo pacchetto di metriche di stato kube include metriche per pod, deployment, oggetti StatefulSet, DaemonSet, risorse HorizontalPodAutoscaler, volumi permanenti e attestazioni di volumi permanenti.

Per maggiori informazioni, consulta Raccogliere e visualizzare le metriche dello stato Kube.

Pacchetto: metriche cAdvisor/Kubelet

Puoi configurare un cluster GKE per inviare a Cloud Monitoring un set selezionato di metriche cAdvisor/Kubelet in formato Prometheus. L'insieme selezionato di metriche è un sottoinsieme dell'ampio set di metriche cAdvisor/Kubelet integrate in ogni deployment di Kubernetes per impostazione predefinita. Il cAdvisor/Kubelet selezionato è progettato per fornire le metriche più utili, riducendo il volume di importazione e i costi associati.

Per maggiori informazioni, consulta Raccogliere e visualizzare le metriche di cAdvisor/Kubelet.

Disabilita pacchetti di metriche

Puoi disabilitare l'utilizzo di pacchetti di metriche nel cluster. Potrebbe essere opportuno disabilitare determinati pacchetti per ridurre i costi o se stai utilizzando un meccanismo alternativo per raccogliere le metriche, come Google Cloud Managed Service per Prometheus e un esportatore.

Console

Per disabilitare la raccolta di metriche dalla scheda Dettagli per il cluster:

  1. Nella console Google Cloud, vai alla pagina Cluster Kubernetes:

    Vai a Cluster Kubernetes

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Kubernetes Engine.

  2. Fai clic sul nome del cluster.

  3. Nella riga Funzionalità con l'etichetta Cloud Monitoring, fai clic sull'icona Modifica.

  4. Nel menu a discesa Componenti, deseleziona i componenti delle metriche che vuoi disabilitare.

  5. Fai clic su Ok.

  6. Fai clic su Salva modifiche.

gcloud

  1. Apri una finestra del terminale con Google Cloud SDK e Google Cloud CLI installato. Un modo per farlo è utilizzare Cloud Shell.

  2. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  3. Richiama il comando gcloud container clusters update e passa un insieme aggiornato di valori al flag --monitoring. L'insieme di valori fornito al flag --monitoring sostituisce qualsiasi impostazione precedente.

    Ad esempio, per disattivare la raccolta di tutte le metriche tranne quelle di sistema, esegui questo comando:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM
    

    Questo comando disabilita la raccolta di eventuali pacchetti di metriche configurati in precedenza.

Terraform

Per configurare la raccolta di metriche utilizzando Terraform, consulta il blocco monitoring_config nel registro Terraform per google_container_cluster. Per informazioni generali sull'utilizzo di Google Cloud con Terraform, consulta Terraform con Google Cloud.

Informazioni sulla fattura di Monitoring

Puoi usare Cloud Monitoring per identificare le metriche dello stato del piano di controllo o di kube che scrivono il maggior numero di campioni. Queste metriche contribuiscono maggiormente ai costi. Dopo aver identificato le metriche più costose, puoi modificare le configurazioni di scrape per filtrarle in modo appropriato.

La pagina Gestione delle metriche di Cloud Monitoring fornisce informazioni che possono aiutarti a controllare l'importo speso per le metriche addebitabili senza influire sull'osservabilità. La pagina Gestione delle metriche riporta le seguenti informazioni:

  • Volumi di importazione per la fatturazione basata su byte e campioni, nei domini delle metriche e per le singole metriche.
  • Dati su etichette e cardinalità delle metriche.
  • Utilizzo delle metriche nei criteri di avviso e nelle dashboard personalizzate.
  • Percentuale di errori di scrittura delle metriche.

Per visualizzare la pagina Gestione delle metriche:

  1. Nella console Google Cloud, vai alla pagina  Gestione delle metriche:

    Vai a Gestione delle metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.

  2. Nella barra degli strumenti, seleziona la finestra temporale. Per impostazione predefinita, la pagina Gestione delle metriche mostra informazioni sulle metriche raccolte il giorno precedente.

Per saperne di più sulla pagina Gestione delle metriche, consulta Visualizzare e gestire l'utilizzo delle metriche.

Per identificare le metriche dello stato del piano di controllo o kube con il maggior numero di campioni importati:

  1. Nella console Google Cloud, vai alla pagina  Gestione delle metriche:

    Vai a Gestione delle metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.

  2. Nel prospetto Campioni fatturabili importati, fai clic su Visualizza grafici.

  3. Individua il grafico Importazione del volume dello spazio dei nomi, quindi fai clic su  Altre opzioni grafico.

  4. Nel campo Metrica, verifica che siano selezionate le seguenti risorse e metriche:
    Metric Ingestion Attribution e Samples written by attribution id.

  5. Nella pagina Filtri, procedi nel seguente modo:

    1. Nel campo Etichetta, verifica che il valore sia attribution_dimension.

    2. Nel campo Confronto, verifica che il valore sia = (equals).

    3. Nel campo Valore, seleziona cluster.

  6. Deseleziona l'impostazione Raggruppa per.

  7. (Facoltativo) Filtra solo in base a determinate metriche. Ad esempio, le metriche del server API del piano di controllo includono tutte "apiserver" nel nome della metrica e le metriche dei pod dello stato kube includono tutte "kube_pod" come parte del nome della metrica, quindi puoi filtrare in base alle metriche contenenti quelle stringhe:

    • Fai clic su Aggiungi filtro.

    • Nel campo Etichetta, seleziona metric_type.

    • Nel campo Confronto, seleziona =~ (equals regex).

    • Nel campo Valore, inserisci .*apiserver.* o .*kube_pod.*.

  8. Facoltativamente, raggruppa il numero di campioni importati per regione o progetto GKE:

    • Fai clic su Raggruppa per.

    • Assicurati che metric_type sia selezionato.

    • Per eseguire il raggruppamento per regione GKE, seleziona località.

    • Per raggruppare per progetto, seleziona project_id.

    • Fai clic su Ok.

  9. Facoltativamente, raggruppa il numero di campioni importati in base al nome del cluster GKE:

    • Fai clic su Raggruppa per.

    • Per eseguire il raggruppamento in base al nome del cluster GKE, assicurati che siano selezionati sia attribution_dimension e attribution_id.

    • Fai clic su Ok.

  10. Per visualizzare il volume di importazione per ciascuna metrica, utilizza il pulsante di attivazione/disattivazione con etichetta Tabella relativa a entrambi, seleziona Entrambe. La tabella mostra il volume importato per ogni metrica nella colonna Valore.

    Fai clic due volte sull'intestazione della colonna Valore per ordinare le metriche in base al volume di importazione decrescente.

Questi passaggi mostrano le metriche con la percentuale più alta di campioni importati in Cloud Monitoring. Poiché le metriche nei pacchetti di osservabilità vengono addebitate in base al numero di campioni importati, presta attenzione alle metriche con la maggiore percentuale di campioni importati.

Altre metriche

Oltre alle metriche di sistema e ai pacchetti di metriche descritti in questo documento, sono disponibili anche le metriche Istio per i cluster GKE. Per informazioni sui prezzi, consulta la pagina relativa ai prezzi di Cloud Monitoring.

Metriche disponibili

La seguente tabella indica i valori supportati per il flag --monitoring per i comandi create e update.

Origine Valore --monitoring Metriche raccolte
Nessuna NONE Nessuna metrica inviata a Cloud Monitoring; nessun agente per la raccolta delle metriche installato nel cluster. Questo valore non è supportato per i cluster Autopilot.
Sistema SYSTEM Metriche dei componenti di sistema essenziali necessari per Kubernetes. Per un elenco completo delle metriche, consulta Metriche Kubernetes.
Server API API_SERVER Metriche di kube-apiserver. Per un elenco completo delle metriche, consulta Metriche del server API.
Scheduler SCHEDULER Metriche di kube-scheduler. Per un elenco completo delle metriche, consulta Metriche dello scheduler.
Gestore del controller CONTROLLER_MANAGER Metriche di kube-controller-manager. Per un elenco completo delle metriche, consulta le metriche del Gestore del controller.
Volume permanente (archiviazione) STORAGE Metriche relative allo spazio di archiviazione di kube-state-metrics. Include metriche per volumi permanenti e attestazioni di volumi permanenti. Per un elenco completo delle metriche, consulta Metriche di archiviazione.
Pod POD Metriche relative ai pod di kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche dei pod.
Deployment DEPLOYMENT Metriche di deployment da kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche di deployment.
StatefulSet STATEFULSET Metriche StatefulSet da kube-state-metrics. Per un elenco completo delle metriche, consulta le metriche StatefulSet.
DaemonSet DAEMONSET Metriche DaemonSet da kube-state-metrics. Per un elenco completo delle metriche, consulta Metriche DaemonSet.
HorizonalPodAutoscaler HPA Metriche HPA di kube-state-metrics. Consulta un elenco completo delle metriche di HorizonalPodAutoscaler.
cAdvisor CADVISOR Metriche cAdvisor dal pacchetto di metriche cAdvisor/Kubelet. Per un elenco completo delle metriche, consulta le metriche di cAdvisor.
Kubelet KUBELET Metriche di kubelet da cAdvisor/Kubelet Per un elenco completo delle metriche, consulta le metriche di Kubelet.

Puoi inoltre raccogliere metriche di Prometheus esposte da qualsiasi carico di lavoro GKE utilizzando Google Cloud Managed Service per Prometheus, che ti consente di monitorare e creare avvisi sui carichi di lavoro utilizzando Prometheus, senza dover gestire e utilizzare manualmente Prometheus su larga scala.

Passaggi successivi