Questo documento descrive come configurare Google Kubernetes Engine (GKE) per inviare metriche a Cloud Monitoring. Le metriche in Cloud Monitoring possono essere utilizzate per compilare dashboard personalizzate, generare avvisi, creare obiettivi del livello di servizio o essere recuperate da servizi di monitoraggio di terze parti utilizzando l'API Cloud Monitoring.
GKE fornisce diverse fonti di 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 tuoi workload utilizzando Prometheus, senza dover gestire e utilizzare manualmente Prometheus su larga scala.
Pacchetti di metriche di osservabilità:
- Metriche del control plane: metriche esportate da determinati componenti del control plane, come il server API e lo scheduler.
Metriche di stato Kube: un insieme selezionato di metriche esportate dal servizio kube state, utilizzato per monitorare lo stato degli oggetti Kubernetes come pod, deployment e altro ancora. Per il set di metriche incluse, consulta Utilizzare Kube State Metrics.
Il pacchetto kube-state è una soluzione gestita. Se hai bisogno di una maggiore flessibilità, ad esempio se devi raccogliere metriche aggiuntive o se devi gestire gli intervalli di scraping o eseguire lo scraping di altre risorse, puoi disattivare il pacchetto, se è attivo, ed eseguire il deployment della tua istanza del servizio kube-state-metrics open source. Per saperne di più, consulta la documentazione dell'esportatore di Google Cloud Managed Service per Prometheus per le metriche di stato kube.
cAdvisor/Kubelet: un insieme selezionato di metriche cAdvisor e
kubelet. Per l'insieme di metriche incluse, consulta Utilizzare le metriche cAdvisor/Kubelet.Il pacchetto cAdvisor/Kubelet è una soluzione gestita. Se hai bisogno di maggiore flessibilità, ad esempio se devi raccogliere metriche aggiuntive o gestire intervalli di scraping o eseguire lo scraping di altre risorse, puoi disattivare il pacchetto, se è attivato, ed eseguire il deployment della tua istanza dei servizi di metriche cAdvisor/Kubelet open source.
Metriche NVIDIA Data Center GPU Manager (DCGM): metriche di DCGM che forniscono una visualizzazione completa di integrità, prestazioni e utilizzo della GPU.
Metriche Kubernetes: metriche non elaborate in formato Prometheus emesse dai componenti Kubernetes e disponibili negli endpoint
/metricsper questi componenti. I pacchetti di metriche selezionate per GKE sono un sottoinsieme di queste metriche. Puoi configurare Google Cloud Managed Service per Prometheus in modo da importare queste metriche utilizzando risorse personalizzate come PodMonitoring e ClusterNodeMonitoring. Per saperne di più, consulta Raccogli metriche Prometheus specifiche da Kubernetes.
Puoi anche configurare il monitoraggio automatico delle applicazioni per determinati workload.
Metriche di sistema
Quando viene creato un cluster, GKE raccoglie per impostazione predefinita determinate 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 inviare le metriche 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 Prezzi di Cloud Monitoring.
Configurazione della raccolta delle metriche di sistema
Per attivare 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 disattivare la raccolta delle metriche di sistema, utilizza il valore NONE per il flag --monitoring. Se la raccolta delle metriche di sistema è disattivata, le informazioni di base come l'utilizzo della CPU, la memoria utilizzata e l'utilizzo del disco non sono disponibili per un cluster quando visualizzi le metriche di osservabilità.
Per i cluster GKE Autopilot, non puoi disabilitare la raccolta delle metriche di sistema.
Per ulteriori dettagli sull'integrazione di Cloud Monitoring con GKE, consulta Osservabilità per GKE.
Per configurare la raccolta delle 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 provenienti da componenti di sistema essenziali importanti per Kubernetes. Per un elenco di queste metriche, consulta Metriche di sistema di GKE.
Se abiliti Cloud Monitoring per il tuo cluster, non puoi disabilitare il monitoraggio del sistema (--monitoring=SYSTEM).
Risoluzione dei problemi relativi alle metriche di sistema
Se le metriche di sistema non sono disponibili in Cloud Monitoring come previsto, consulta Risolvi i problemi relativi alle metriche di sistema.
Pacchetto: metriche del control plane
Puoi configurare un cluster GKE per inviare determinate metriche emesse dal server API Kubernetes, dallo scheduler e dal gestore del controller a Cloud Monitoring.
Per saperne di più, consulta Raccogli e visualizza le metriche del control plane.
Pacchetto: Kube State Metrics
Puoi configurare un cluster GKE per inviare un insieme selezionato di metriche di stato kube in formato Prometheus a Cloud Monitoring. Questo pacchetto di metriche di stato di Kube include metriche per Pod, Deployment, StatefulSet, DaemonSet, risorse HorizontalPodAutoscaler, volumi permanenti, richieste di volumi permanenti e JobSet.
Per saperne di più, consulta Raccogli e visualizza le metriche di stato di Kube.
Pacchetto: metriche cAdvisor/Kubelet
Puoi configurare un cluster GKE per inviare un insieme selezionato di metriche cAdvisor/Kubelet in formato Prometheus a Cloud Monitoring. Il set di metriche selezionato è un sottoinsieme dell'ampio set di metriche cAdvisor/Kubelet integrate per impostazione predefinita in ogni deployment Kubernetes. cAdvisor/Kubelet curato è progettato per fornire le metriche più utili, riducendo il volume di importazione e i costi associati.
Per saperne di più, consulta Raccogliere e visualizzare le metriche cAdvisor/Kubelet.
Pacchetto: metriche NVIDIA Data Center GPU Manager (DCGM)
Puoi monitorare l'utilizzo, le prestazioni e lo stato della GPU configurando GKE per inviare le metriche NVIDIA Data Center GPU Manager (DCGM) a Cloud Monitoring.
Per saperne di più, consulta Raccogliere e visualizzare le metriche di NVIDIA Data Center GPU Manager (DCGM).
Disabilita pacchetti di metriche
Puoi disattivare l'utilizzo dei pacchetti di metriche nel cluster. Potresti voler disabilitare alcuni pacchetti per ridurre i costi o se utilizzi un meccanismo alternativo per la raccolta delle metriche, come Google Cloud Managed Service per Prometheus e un esportatore.
Console
Per disattivare la raccolta delle metriche dalla scheda Dettagli del cluster, segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Cluster Kubernetes:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Kubernetes Engine.
Fai clic sul nome del cluster.
Nella riga Funzionalità con l'etichetta Cloud Monitoring, fai clic sull'icona Modifica.
Nel menu a discesa Componenti, deseleziona i componenti delle metriche che vuoi disattivare.
Fai clic su OK.
Fai clic su Salva modifiche.
gcloud
Apri una finestra del terminale con Google Cloud SDK e Google Cloud CLI installati. Un modo per farlo è utilizzare Cloud Shell.
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Chiama il comando
gcloud container clusters updatee trasmetti un insieme aggiornato di valori al flag--monitoring. L'insieme di valori forniti al flag--monitoringsostituisce 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=SYSTEMQuesto comando disattiva la raccolta di tutti i pacchetti di metriche configurati in precedenza.
Terraform
Per configurare la raccolta delle 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 utilizzare Cloud Monitoring per identificare il piano di controllo o le metriche di stato di kube che scrivono il maggior numero di campioni. Queste metriche contribuiscono maggiormente ai tuoi costi. Dopo aver identificato le metriche più costose, puoi modificare le configurazioni di scraping per filtrare queste metriche in modo appropriato.
La pagina Gestione delle metriche di Cloud Monitoring fornisce informazioni che possono aiutarti a controllare l'importo che spendi per le metriche fatturabili senza influire sull'osservabilità. La pagina Gestione delle metriche riporta le seguenti informazioni:
- Volumi di importazione per la fatturazione basata su byte e campioni, in tutti i domini delle metriche e per le singole metriche.
- Dati sulle etichette e sulla cardinalità delle metriche.
- Numero di letture per ogni metrica.
- Utilizzo delle metriche nelle policy di avviso e nelle dashboard personalizzate.
- Frequenza degli errori di scrittura delle metriche.
Puoi anche utilizzare la pagina Gestione metriche per escludere le metriche non necessarie, eliminando il costo della loro importazione.
Per visualizzare la pagina Gestione delle metriche, segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Gestione metriche:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nella barra degli strumenti, seleziona la finestra temporale. Per impostazione predefinita, la pagina Gestione metriche mostra informazioni sulle metriche raccolte nel giorno precedente.
Per saperne di più sulla pagina Gestione delle metriche, consulta Visualizza e gestisci l'utilizzo delle metriche.
Per identificare quali metriche del control plane o di stato di kube hanno il maggior numero di campioni importati, segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Gestione metriche:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
Nella scorecard Campioni fatturabili importati, fai clic su Visualizza grafici.
Individua il grafico Inserimento volume spazio dei nomi e poi fai clic su more_vert Altre opzioni per il grafico.
Nel campo Metrica, verifica che siano selezionate le seguenti risorsa e metrica:
Metric Ingestion AttributioneSamples written by attribution id.Nella pagina Filtri, segui questi passaggi:
Nel campo Etichetta, verifica che il valore sia
attribution_dimension.Nel campo Confronto, verifica che il valore sia
= (equals).Nel campo Valore, seleziona
cluster.
Deseleziona l'impostazione Raggruppa per.
Se vuoi, filtra solo determinate metriche. Ad esempio, le metriche del server API del control plane includono tutte "apiserver" nel nome della metrica, mentre le metriche dei pod di stato kube includono tutte "kube_pod" nel nome della metrica, quindi puoi filtrare le metriche contenenti queste 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.*.
(Facoltativo) Raggruppa il numero di campioni importati per regione GKE o progetto:
Fai clic su Raggruppa per.
Assicurati che sia selezionato metric_type.
Per raggruppare per regione GKE, seleziona posizione.
Per raggruppare per progetto, seleziona project_id.
Fai clic su OK.
(Facoltativo) Raggruppa il numero di campioni importati in base al nome del cluster GKE:
Fai clic su Raggruppa per.
Per raggruppare in base al nome del cluster GKE, assicurati che siano selezionati sia attribution_dimension sia attribution_id.
Fai clic su OK.
Per visualizzare il volume di importazione di ciascuna metrica, seleziona Entrambi nell'opzione di attivazione/disattivazione con l'etichetta Grafico e tabella. 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 frequenza 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 il tasso di importazione dei campioni più elevato.
Altre metriche
Oltre alle metriche di sistema e ai pacchetti di metriche descritti in questo documento, per i cluster GKE sono disponibili anche le metriche Istio. Per informazioni sui prezzi, consulta Prezzi di Cloud Monitoring.
Metriche disponibili
La tabella seguente indica i valori supportati per il flag --monitoring per i comandi create e update.
| Origine | Valore --monitoring |
Metriche raccolte |
|---|---|---|
| Nessuno | NONE |
Nessuna metrica inviata a Cloud Monitoring; nessun agente di raccolta delle metriche installato nel cluster. Questo valore non è supportato per i cluster Autopilot. |
| Sistema | SYSTEM |
Metriche dei componenti di sistema essenziali richiesti 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.
|
| Controller Manager | CONTROLLER_MANAGER |
Metriche di kube-controller-manager.
Per un elenco completo delle metriche, consulta
Metriche di Controller Manager. |
| Volume permanente (archiviazione) | STORAGE |
Metriche di archiviazione di kube-state-metrics.
Include metriche per PersistentVolume e PersistentVolumeClaim.
Per un elenco completo delle metriche, consulta
Metriche di archiviazione.
|
| Pod | POD |
Metriche dei 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
Metriche StatefulSet. |
| DaemonSet | DAEMONSET |
Metriche DaemonSet da kube-state-metrics.
Per un elenco completo delle metriche, consulta
Metriche DaemonSet.
|
| HorizontalPodAutoscaler | HPA |
Metriche HPA da kube-state-metrics.
Consulta un elenco completo delle
metriche di HorizontalPodAutoscaler.
|
| JobSet | JOBSET |
Metriche del JobSet a partire dal giorno kube-state-metrics.
Consulta l'elenco completo delle
metriche JobSet.
|
| cAdvisor | CADVISOR |
Metriche cAdvisor dal pacchetto di metriche cAdvisor/Kubelet. Per un elenco completo delle metriche, consulta Metriche cAdvisor. |
kubelet |
KUBELET |
Metriche kubelet di cAdvisor/Kubelet
Per un elenco completo delle metriche, consulta
Metriche kubelet.
|
| Metriche NVIDIA Data Center GPU Manager (DCGM) | DCGM |
Metriche di NVIDIA Data Center GPU Manager (DCGM). |
Puoi anche raccogliere metriche in stile Prometheus esposte da qualsiasi carico di lavoro GKE utilizzando Google Cloud Managed Service per Prometheus, che ti consente di monitorare e creare avvisi sui tuoi carichi di lavoro utilizzando Prometheus, senza dover gestire e utilizzare manualmente Prometheus su larga scala.
Passaggi successivi
- Scopri come risolvere i problemi relativi alle metriche di sistema.
- Scopri come raccogliere e visualizzare le metriche di stato di Kube.
- Scopri come visualizzare le metriche di osservabilità.
- Scopri come raccogliere e visualizzare le metriche del control plane.