Questa pagina descrive come configurare un cluster Google Kubernetes Engine (GKE) per invia un insieme selezionato di stati kube, incluse le metriche per i pod deployment, Cloud Monitoring tramite Google Cloud Managed Service per Prometheus. Questa pagina descrive inoltre come vengono formattate queste metriche quando vengono scritte in Monitoraggio e come eseguire query sulle metriche.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Attiva l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
install e poi
inizializzare
con gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
Requisiti
Per raccogliere le metriche dello stato di Kube, il cluster GKE deve soddisfare i seguenti requisiti:
- Il cluster deve eseguire GKE 1.27.2-gke.1200 o versioni successive. Per i cluster GKE Standard a partire dalla versione 1.29.2-gke.2000 e per i cluster GKE Autopilot a partire dalla versione 1.27.4-gke.900, il pacchetto delle metriche dello stato di Kube è abilitato per impostazione predefinita.
- Il cluster deve avere metriche di sistema in un bucket in cui è abilitato il controllo delle versioni.
- Nel cluster deve essere attivata la raccolta gestita di Google Cloud Managed Service per Prometheus. La raccolta gestita di Google Cloud Managed Service per Prometheus è abilitata per impostazione predefinita per i nuovi cluster.
Configura la raccolta delle metriche dello stato di Kube
Puoi attivare le metriche dello stato di kube utilizzando la console Google Cloud, gcloud CLI o Terraform:
Console
Puoi abilitare le metriche di stato Kubernetes Scheda Osservabilità per un cluster o un deployment all'interno di un cluster. Puoi anche visualizzare l'anteprima delle metriche e dei grafici disponibili prima di attivare il pacchetto di metriche.
Nella scheda Osservabilità di un cluster, puoi filtrare l'insieme di grafici per le metriche relative allo stato di kube in base ai seguenti due elementi:
- Stato dei carichi di lavoro: include le metriche per le risorse Pods, Deployment, StatefulSet, DaemonSet e HorizontalPodAutoscaler.
- Spazio di archiviazione > Persistente: include le metriche per Persistente di volumi permanenti e attestazioni di volumi permanenti.
Puoi attivare uno o entrambi gli insiemi di metriche.
Per attivare le metriche dello stato di Kube dalla scheda Osservabilità per un 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 e seleziona la scheda Osservabilità.
Seleziona Stato carichi di lavoro o Archiviazione > Permanente dall'elenco delle funzionalità.
Fai clic su Attiva pacchetto.
Se il pacchetto di metriche di stato kube è già abilitato, un insieme di grafici per le metriche di stato kube.
Per abilitare le metriche di stato Kubernetes dalla scheda Observability: per un deployment, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina Carichi di lavoro:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Kubernetes Engine.
Fai clic sul nome del deployment, quindi seleziona la scheda Osservabilità.
Seleziona Stato Kube dall'elenco delle funzionalità.
Fai clic su Abilita pacchetto. Il pacchetto è abilitato per l'intero cluster.
Se il pacchetto di metriche di stato kube è già abilitato, un insieme di grafici per le metriche di pod, deployment e Horizontal Pod Autoscaler.
Per configurare le metriche dello stato di Kube dalla scheda Dettagli per il cluster, procedi nel seguente modo:
-
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à etichettata Monitoraggio cloud, fai clic sull'icona Modifica.
Nella finestra di dialogo Modifica monitoraggio cloud visualizzata, verifica che sia selezionata l'opzione Abilita monitoraggio cloud.
Nel menu a discesa Componenti, seleziona Componenti dello stato kube da cui raccogliere le metriche.
Fai clic su OK.
Fai clic su Salva modifiche.
gcloud
Aggiorna il cluster per raccogliere le metriche:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--enable-managed-prometheus \
--monitoring=SYSTEM,DAEMONSET,DEPLOYMENT,HPA,POD,STATEFULSET,STORAGE
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster esistente.COMPUTE_LOCATION
: la posizione di Compute Engine del cluster.
L'insieme di valori fornito al flag monitoring
sostituisce qualsiasi precedente
dell'ambientazione.
Terraform
Per configurare la raccolta di metriche di stato kube mediante Terraform,
vedi il blocco monitoring_config
nella
Registro Terraform per google_container_cluster
.
Per informazioni generali sull'utilizzo di Google Cloud con Terraform, consulta
Terraform con Google Cloud.
Quota
Le metriche di stato kube utilizzano Quota per le richieste di importazione di serie temporali al minuto di Cloud Monitoring tramite Google Cloud CLI o tramite l'API Compute Engine. Prima di abilitare le metriche di stato kube, controllare l'utilizzo massimo recente di quella quota. Se hai molti cluster nello stesso progetto o sono già che stai per raggiungere il limite della quota, puoi richiedere un aumento del limite della quota prima di abilitare uno dei due pacchetti di osservabilità.
Prezzi
Utilizzo delle metriche di stato kube Google Cloud Managed Service per Prometheus da caricare in Cloud Monitoring. Cloud Monitoring addebita i costi per l'importazione di queste metriche si basano sul numero di campioni importati. Tuttavia, questi le metriche sono gratuite per il registrato in cluster che appartengono a un progetto Versione di GKE Enterprise in un bucket in cui è abilitato il controllo delle versioni.
Per maggiori informazioni, consulta Prezzi di Cloud Monitoring.
Formato della metrica
Tutte le metriche dello stato del kube di Kubernetes scritte in Cloud Monitoring
utilizzano il tipo di risorsa
prometheus_target
.
Ogni nome della metrica è preceduto dal prefisso
prometheus.googleapis.com/
e ha un suffisso che indica
Tipo di metrica Prometheus, ad esempio /gauge
, /histogram
,
o /counter
. In caso contrario, ogni nome della metrica è identico al nome della metrica esposto da Kubernetes open source.
Esportazione da Cloud Monitoring
Le metriche di stato kube possono essere esportate da Cloud Monitoring utilizzando l'API Cloud Monitoring. Poiché tutte le metriche di stato kube vengono importate tramite Google Cloud Managed Service per Prometheus, È possibile eseguire query su metriche di stato kube utilizzando Prometheus Query Language (PromQL). È anche possibile eseguire query utilizzando Monitoring Query Language (MQL).
Eseguire query sulle metriche
Quando esegui query sulle metriche dello stato di kube, il nome che utilizzi dipende dal fatto che tu stia utilizzando PromQL o funzionalità basate su Cloud Monitoring come MQL o l' interfaccia basata su menu di Metrics Explorer.
Le seguenti tabelle delle metriche di stato kube mostrano due versioni ogni nome di metrica:
- Nome della metrica PromQL: quando utilizzi PromQL nelle pagine di Cloud Monitoring della console Google Cloud o nei campi PromQL dell'API Cloud Monitoring, utilizza il nome della metrica PromQL.
- Nome della metrica Cloud Monitoring Quando utilizzi altre funzionalità di Cloud Monitoring, utilizza il nome della metrica Cloud Monitoring riportato nelle tabelle seguenti. Questo nome deve essere preceduto dal prefisso
prometheus.googleapis.com/
, che è stata omessa dalla tabella. le voci nella tabella.
Metriche di archiviazione
I nomi delle metriche di Cloud Monitoring in questa tabella devono avere il prefisso prometheus.googleapis.com/
. Questo prefisso è stato omesso dalla
le voci nella tabella.
Nome della metrica PromQL Nome della metrica Cloud Monitoring |
|
---|---|
Tipo, Tipo, Unità
Risorse monitorate Versione GKE richiesta |
Descrizione Etichette |
kube_persistentvolume_capacity_bytes kube_persistentvolume_capacity_bytes/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.27.2-gke.1200 |
Capacità del volume permanente in byte.
Campionamento eseguito ogni 30 secondi.persistentvolume : persistentvolume.
|
kube_persistentvolume_claim_ref kube_persistentvolume_claim_ref/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informazioni sul riferimento della richiesta di volume permanente.
Campionamento eseguito ogni 30 secondi.claim_name : claim_name.
name : nome.
persistentvolume : persistentvolume.
|
kube_persistentvolume_info kube_persistentvolume_info/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informazioni su persistentvolume.
Campionamento eseguito ogni 30 secondi.csi_driver : driver_csi.
csi_volume_handle : csi_volume_handle.
local_fs : local_fs.
local_path : percorso_locale.
persistentvolume : persistentvolume.
storageclass : storageclass.
|
kube_persistentvolume_status_phase kube_persistentvolume_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
La fase indica se un volume è disponibile, associato a una richiesta o
ritirato in seguito a una rivendicazione.
Campionamento eseguito ogni 30 secondi.persistentvolume : persistentvolume.
phase : fase.
|
kube_persistentvolumeclaim_info kube_persistentvolumeclaim_info/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Informazioni sulla richiesta di volume permanente.
Campionamento eseguito ogni 30 secondi.persistentvolumeclaim : persistentvolumeclaim.
storageclass : storageclass.
volumename : nome volume.
|
kube_persistentvolumeclaim_resource_requests_storage_bytes kube_persistentvolumeclaim_resource_requests_storage_bytes/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.27.2-gke.1200 |
La capacità di archiviazione richiesta dalla richiesta di volume permanente.
Campionamento eseguito ogni 30 secondi.persistentvolumeclaim : persistentvolumeclaim.
|
kube_persistentvolumeclaim_status_phase kube_persistentvolumeclaim_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
La fase in cui si trova attualmente la richiesta di volume permanente.
Campionamento eseguito ogni 30 secondi.persistentvolumeclaim : volumeclaim permanente.
phase : fase.
|
Per ulteriori informazioni, vedi Metriche PersistentVolume e Metriche PersistentVolumeClaim.
Metriche pod
Un pod è un gruppo di uno o più container con una specifica su come eseguire i container, che condividono risorse di rete e di archiviazione.
Tabella delle metriche dei pod
Le metriche dei pod ti consentono di monitorare il comportamento dei pod e generare avvisi sul loro comportamento. La tabella seguente mostra le metriche disponibili nello stato kube pacchetto delle metriche:
I nomi delle metriche di Cloud Monitoring in questa tabella devono essere preceduti dal prefisso
prometheus.googleapis.com/
. Questo prefisso è stato omesso dalla
le voci nella tabella.
Nome della metrica PromQL Nome della metrica Cloud Monitoring |
|
---|---|
Tipo, Tipo, Unità
Risorse monitorate Versione GKE richiesta |
Descrizione Etichette |
kube_pod_container_status_ready kube_pod_container_status_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Descrive se il controllo di idoneità dei container è riuscito.
Campionamento eseguito ogni 30 secondi.container : contenitore.
pod : pod.
uid : uid.
|
kube_pod_container_status_waiting_reason kube_pod_status_container_status_waiting_reason/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Descrivi il motivo per cui il contenitore è attualmente in stato di attesa.
Campionamento eseguito ogni 30 secondi.container : contenitore.
pod : pod.
reason : motivo.
uid : uid.
|
kube_pod_status_phase kube_pod_status_phase/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
La fase attuale dei pod. Campionamento eseguito ogni 30 secondi.phase : fase.
pod : pod.
uid : uid.
|
kube_pod_status_unschedulable kube_pod_status_unschedulable/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Descrivi lo stato non pianificabile del pod.
Campionamento eseguito ogni 30 secondi.pod : pod.
uid : uid.
|
Per ulteriori informazioni, vedi Metriche dei pod.
Query di esempio per le metriche dei pod
Per determinare se hai pod non pianificabili, utilizza il seguente PromQL :
sum(kube_pod_status_unschedulable{cluster="CLUSTER", namespace="NAMESPACE"})
Per inviare avvisi su un numero di pod non pianificabili in uno spazio dei nomi, puoi utilizzare seguente espressione PromQL:
sum(kube_pod_status_unschedulable{cluster="CLUSTER", namespace="NAMESPACE"}) > LIMIT
Puoi utilizzare la metrica kube_pod_container_status_waiting_reason
per creare
un avviso relativo a un container bloccato in uno stato di attesa specifico utilizzando un prompt PromQL
come la seguente:
max_over_time(kube_pod_container_status_waiting_reason{reason="REASON", cluster="CLUSTER", namespace="NAMESPACE"}[5m]) >= 1
Il valore REASON specifica lo stato di attesa del container, Ad esempio:
CrashLoopBackOff
ImagePullBackOff
ContainerCreating
Per creare un avviso per un contenitore bloccato in uno degli stati di attesa, utilizza la seguente espressione PromQL:
max_over_time(kube_pod_container_status_waiting_reason{cluster="CLUSTER", namespace="NAMESPACE"}[5m]) >= 1
Per determinare quanti container non superano i controlli di idoneità, utilizza la seguente espressione PromQL
sum(kube_pod_container_status_ready) by (pod, container) == 0
Alcune delle espressioni di query e avviso in questa
sezione sono state adattate dal
file kubernetes-apps.yaml
nel repository Kubernetes Helm Charts della community Prometheus su GitHub.
Playbook interattivi
Le metriche dello stato di Kube vengono utilizzate anche nei playbook interattivi GKE per la risoluzione dei problemi relativi ai pod non pianificabili o in crashloop. Per ulteriori informazioni su queste modalità di errore, consulta quanto segue: documenti per la risoluzione dei problemi:
Senza il pacchetto di metriche di stato kube abilitato, il modo principale
rilevare problemi di pianificazione dei pod è eseguire una query su "Failed Scheduling" (Pianificazione non riuscita) log degli eventi. Dopo il giorno
puoi abilitare il pacchetto di metriche di stato kube, puoi utilizzare
kube_pod_status_unschedulable
, che ha lo stesso scopo, ma
è più facile aggregare e creare grafici. Utilizzando la metrica, puoi vedere quante
I pod non sono pianificabili e quando il problema è stato avviato.
Analogamente, la metrica di sistema GKE
kubernetes.io/container/restart_count
può aiutarti a rilevare i pod in crashloop. La
La metrica kube_pod_container_status_waiting_reason
elenca anche gli arresti anomali
oltre a determinare se i pod sono bloccati in stati di attesa.
di CrashLookBackOff
, come ImagePullBackOff
e ContainerCreating
.
Per esplorare i playbook interattivi, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Filtra l'elenco delle dashboard facendo clic sull'icona Categoria G C P.
- Fai clic sul nome di una dashboard "Playbook interattivo GKE" nell'elenco.
Metriche di deployment
Un deployment è un controller che aggiorna lo stato di risorse come i pod per gestire eventi come implementazioni e ritiri.
Tabella delle metriche di deployment
Le metriche di Deployment ti consentono di monitorare e generare avvisi sul comportamento del controller. La tabella seguente mostra le metriche disponibili nel package delle metriche dello stato di kube:
I nomi delle metriche di Cloud Monitoring in questa tabella devono essere preceduti dal prefisso
prometheus.googleapis.com/
. Questo prefisso è stato omesso dalle voci della tabella.
Nome della metrica PromQL Nome della metrica Cloud Monitoring |
|
---|---|
Tipo, Tipo, Unità
Risorse monitorate Versione GKE richiesta |
Descrizione Etichette |
kube_deployment_spec_replicas kube_deployment_spec_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Numero di pod desiderati per un deployment. Campionamento eseguito ogni 30 secondi.deployment : deployment.
|
kube_deployment_status_replicas_available kube_deployment_status_replicas_available/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Il numero di repliche disponibili per deployment. Campionamento eseguito ogni 30 secondi.deployment : deployment.
|
kube_deployment_status_replicas_updated kube_deployment_status_replicas_updated/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Il numero di repliche aggiornate per deployment. Campionamento eseguito ogni 30 secondi.deployment : deployment.
|
Per ulteriori informazioni, consulta Metriche di deployment.
Query di esempio per le metriche di deployment
Puoi creare grafici e criteri di avviso per singoli deployment filtrando le metriche di deployment per cluster, spazio dei nomi e nome per il deployment.
Ad esempio, per confrontare il numero di repliche disponibili con di repliche desiderato in un singolo deployment, puoi usare quanto segue Query PromQL per tracciare entrambe le metriche in un singolo grafico:
kube_deployment_spec_replicas{cluster="CLUSTER", namespace="NAMESPACE", deployment=DEPLOYMENT"}
kube_deployment_status_replicas_available{cluster="CLUSTER", namespace="NAMESPACE", deployment=DEPLOYMENT"}
Per ricevere un avviso in caso di implementazione non riuscita o in stallo, puoi utilizzare la seguente expression PromQL:
( kube_deployment_spec_replicas{cluster="CLUSTER", namespace="NAMESPACE", deployment="DEPLOYMENT"} > kube_deployment_status_replicas_available{cluster="CLUSTER", namespace="NAMESPACE", deployment="DEPLOYMENT"} ) and ( changes(kube_deployment_status_replicas_updated{cluster="CLUSTER", namespace="NAMESPACE", deployment="DEPLOYMENT"}[10m]) == 0 )
Alcune delle espressioni di query e di avviso
sono stati adattati
file kubernetes-apps.yaml
nel repository dei grafici Helm della community Prometheus su GitHub.
Metriche StatefulSet
Uno StatefulSet è un controller che gestisce il deployment e la scalabilità di un di pod per le applicazioni stateful. Questo controller gestisce l'ordine e l'univocità dei pod.
Tabella delle metriche di StatefulSet
Le metriche StatefulSet consentono di monitorare il comportamento e generare avvisi sul comportamento del titolare. La tabella seguente mostra le metriche disponibili nella Pacchetto di metriche di stato kube:
I nomi delle metriche di Cloud Monitoring in questa tabella devono essere preceduti dal prefisso
prometheus.googleapis.com/
. Questo prefisso è stato omesso dalle voci della tabella.
Nome della metrica PromQL Nome della metrica Cloud Monitoring |
|
---|---|
Tipo, Tipo, Unità
Risorse monitorate Versione GKE richiesta |
Descrizione Etichette |
kube_statefulset_replicas kube_statefulset_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Numero di pod desiderati per uno StatefulSet. Campionamento eseguito ogni 30 secondi.statefulset : statefulset.
|
kube_statefulset_status_replicas_ready kube_statefulset_status_replicas_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Il numero di repliche pronte per StatefulSet. Campionamento eseguito ogni 30 secondi.statefulset : statefulset.
|
kube_statefulset_status_replicas_updated kube_statefulset_status_replicas_updated/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Il numero di repliche aggiornate per StatefulSet. Campionamento eseguito ogni 30 secondi.statefulset : statefulset.
|
Per ulteriori informazioni, vedi Metriche StatefulSet.
Query di esempio per le metriche StatefulSet
Puoi creare grafici e criteri di avviso per singoli StatefulSet filtrando le metriche statefulset per cluster, spazio dei nomi e nome l'oggetto StatefulSet.
Ad esempio, per confrontare il numero di repliche disponibili con di repliche desiderato in un singolo StatefulSet, puoi usare: Query PromQL per tracciare entrambe le metriche in un singolo grafico:
kube_statefulset_replicas{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}
kube_statefulset_status_replicas_ready{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}
Per ricevere un avviso in caso di implementazione di StatefulSet non riuscita o in stallo, puoi utilizzare la seguente expression PromQL:
( kube_statefulset_replicas{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"} > kube_statefulset_status_replicas_ready{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"} ) and ( changes(kube_statefulset_status_replicas_updated{cluster="CLUSTER", namespace="NAMESPACE", statefulset="STATEFULSET"}[10m]) == 0 )
Alcune delle espressioni di query e di avviso
sono stati adattati
file kubernetes-apps.yaml
nel repository dei grafici Helm della community Prometheus su GitHub.
Metriche DaemonSet
Un DaemonSet è un controller che garantisce che un insieme di nodi esegua una copia di un pod. Ad esempio, quando i nodi vengono aggiunti a un cluster, DaemonSet aggiunge i pod ai nodi. Questo controller è utile per garantire che determinate procedure vengano eseguite su ogni nodo.
Tabella delle metriche DaemonSet
Le metriche DaemonSet ti consentono di monitorare e generare avvisi sul comportamento del controller. La tabella seguente mostra le metriche disponibili nella Pacchetto di metriche di stato kube:
I nomi delle metriche di Cloud Monitoring in questa tabella devono essere preceduti dal prefisso
prometheus.googleapis.com/
. Questo prefisso è stato omesso dalle voci della tabella.
Nome della metrica PromQL Nome della metrica Cloud Monitoring |
|
---|---|
Tipo, Tipo, Unità
Risorse monitorate Versione GKE richiesta |
Descrizione Etichette |
kube_daemonset_status_desired_number_scheduled kube_daemonset_status_desired_number_scheduled/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Il numero di nodi che dovrebbero eseguire il pod del daemon.
Campionamento eseguito ogni 30 secondi.daemonset : daemonset.
|
kube_daemonset_status_number_misscheduled kube_daemonset_status_number_misscheduled/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Il numero di nodi che eseguono un pod del daemon, ma che non dovrebbero farlo. Campionamento eseguito ogni 30 secondi.daemonset : daemonset.
|
kube_daemonset_status_number_ready kube_daemonset_status_number_ready/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Il numero di nodi che dovrebbero eseguire il pod del daemon e
uno o più pod del daemon sono in esecuzione e pronti. Campionamento eseguito ogni 30 secondi.daemonset : daemonset.
|
kube_daemonset_status_updated_number_scheduled kube_daemonset_status_updated_number_scheduled/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Il numero di nodi che eseguono il pod del daemon aggiornato.
Campionamento eseguito ogni 30 secondi.daemonset : daemonset.
|
Per ulteriori informazioni, consulta Metriche DaemonSet.
Query di esempio per le metriche DaemonSet
Puoi creare grafici e criteri di avviso per singoli DaemonSet filtrando le metriche del daemonset per cluster, spazio dei nomi e nome DaemonSet.
Ad esempio, per confrontare il numero di repliche disponibili con il numero di repliche previsto in un singolo DaemonSet, puoi utilizzare le seguenti query PromQL per tracciare entrambe le metriche in un singolo grafico:
kube_daemonset_status_updated_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonsetset=DAEMONSET"}
kube_daemonset_status_desired_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset=DAEMONSET"}
Per generare un avviso in caso di implementazione di DaemonSet non riuscita o in stallo, puoi utilizzare la seguente expression PromQL:
( ( kube_daemonset_status_number_misscheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"} != 0 ) or ( kube_daemonset_status_updated_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"} != kube_daemonset_status_desired_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"} ) ) and ( changes(kube_daemonset_status_updated_number_scheduled{cluster="CLUSTER", namespace="NAMESPACE", daemonset="DAEMONSET"}[5m]) == 0 )
Alcune delle espressioni di query e di avviso
sono stati adattati
file kubernetes-apps.yaml
nel repository dei grafici Helm della community Prometheus su GitHub.
Metriche HorizontalPodAutoscaler
Un HorizontalPodAutoscaler (HPA) è un controller che modifica periodicamente il numero di pod in un carico di lavoro, ad esempio un deployment o un StatefulSet, in risposta a una metrica come l'utilizzo della CPU o della memoria. Modifica del numero dei pod disponibili per un carico di lavoro lo mantiene efficiente ma reattivo.
Per ulteriori informazioni sugli HPA, consulta Visualizzazione dei dettagli su un pod orizzontale Gestore della scalabilità automatica.
Tabella delle metriche HPA
Le metriche HorizontalPodAutoscaler ti consentono di monitorare e generare avvisi sul comportamento del controller. La tabella seguente mostra le metriche disponibili nel package delle metriche dello stato di kube:
I nomi delle metriche di Cloud Monitoring in questa tabella devono essere preceduti dal prefisso
prometheus.googleapis.com/
. Questo prefisso è stato omesso dalle voci della tabella.
Nome della metrica PromQL Nome della metrica Cloud Monitoring |
|
---|---|
Tipo, Tipo, Unità
Risorse monitorate Versione GKE richiesta |
Descrizione Etichette |
kube_horizontalpodautoscaler_spec_max_replicas kube_horizontalpodautoscaler_spec_max_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Il limite superiore del numero di pod che può essere impostato dal gestore della scalabilità automatica non può essere inferiore a MinReplicas.
Campionamento eseguito ogni 30 secondi.horizontalpodautoscaler : horizontalpodautoscaler.
|
kube_horizontalpodautoscaler_spec_min_replicas kube_horizontalpodautoscaler_spec_min_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Limite inferiore per il numero di pod che possono essere impostati dal gestore della scalabilità automatica,
impostazione predefinita 1.
Campionamento eseguito ogni 30 secondi.horizontalpodautoscaler : horizontalpodautoscaler.
|
kube_horizontalpodautoscaler_spec_target_metric kube_horizontalpodautoscaler_spec_target_metric/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Le specifiche delle metriche utilizzate da questo gestore della scalabilità automatica per calcolare il
numero di repliche desiderato.
Campionamento eseguito ogni 30 secondi.horizontalpodautoscaler : horizontalpodautoscaler.
metric_name : metric_name.
metric_target_type : metric_target_type.
|
kube_horizontalpodautoscaler_status_condition kube_horizontalpodautoscaler_status_condition/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
La condizione di questo gestore della scalabilità automatica.
Campionamento eseguito ogni 30 secondi.condition : condizione.
horizontalpodautoscaler : Horizontalpodautoscaler.
namespace : spazio dei nomi.
status : stato.
|
kube_horizontalpodautoscaler_status_current_replicas kube_horizontalpodautoscaler_status_status_current_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Numero corrente di repliche dei pod gestiti da questo Autoscaler.
Campionamento eseguito ogni 30 secondi.horizontalpodautoscaler : horizontalpodautoscaler.
|
kube_horizontalpodautoscaler_status_desired_replicas kube_horizontalpodautoscaler_status_desired_replicas/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.27.2-gke.1200 |
Numero desiderato di repliche dei pod gestiti da questo gestore della scalabilità automatica.
Campionamento eseguito ogni 30 secondi.horizontalpodautoscaler : horizontalpodautoscaler.
|
Per ulteriori informazioni, consulta Metriche del gestore della scalabilità automatica dei pod orizzontali.
Query di esempio per le metriche HPA
Ad esempio, per determinare se l'HPA si sta avvicinando al numero massimo di repliche, puoi tracciare il seguente rapporto:
kube_horizontalpodautoscaler_status_current_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"} / kube_horizontalpodautoscaler_spec_max_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"}
Quando l'HPA è in esecuzione con il numero massimo di repliche, ti consigliamo di aumentare la specifica per il numero massimo di pod. Puoi utilizzare le seguenti opzioni Espressione PromQL per creare un avviso che ti avvisi di questa richiesta:
kube_horizontalpodautoscaler_status_current_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"} == kube_horizontalpodautoscaler_spec_max_replicas{cluster="CLUSTER", namespace="NAMESPACE", horizontalpodautoscaler="HPA"}
Puoi anche confrontare i valori
kube_horizontalpodautoscaler_status_current_replicas
e le metriche kube_horizontalpodautoscaler_status_desired_replicas
per determinare se c'è una differenza tra lo stato attuale e quello necessario
di repliche. Una differenza potrebbe indicare un vincolo di risorse
nel cluster. La seguente espressione PromQL cerca differenze
tra il numero attuale di repliche e i valori necessari, minimi e massimi
di repliche, nonché le variazioni del numero attuale di repliche:
(kube_horizontalpodautoscaler_status_desired_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"} != kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}) and (kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"} > kube_horizontalpodautoscaler_spec_min_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}) and (kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"} < kube_horizontalpodautoscaler_spec_max_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}) and changes(kube_horizontalpodautoscaler_status_current_replicas{job="kube-state-metrics", namespace=~"NAMESPACE"}[15m]) == 0
Le etichette condition
e status
nella metrica kube_horizontalpodautoscaler_status_condition
possono anche aiutarti a rilevare quando gli HPA riscontrano varie modalità di errore. Ad esempio:
- La condizione
ScalingLimited
e lo statotrue
indicano che l'HPA è vincolato dal conteggio minimo o massimo delle repliche:kube_horizontalpodautoscaler_status_condition{status="true", condition="ScalingLimited"} == 1
La condizione
AbleToScale
e lo statofalse
indicano che l'HPA riscontra problemi durante il recupero o l'aggiornamento delle scale:kube_horizontalpodautoscaler_status_condition{status="false", condition="AbleToScale"} == 1
La condizione
ScalingActive
e uno statofalse
indicano che l'HPA è disattivato o non è in grado di calcolare una nuova scala:kube_horizontalpodautoscaler_status_condition{status="false", condition="ScalingActive"} == 1
Alcune delle espressioni di query e avviso in questa
sezione sono state adattate dal
file kubernetes-apps.yaml
nel repository Kubernetes Helm Charts della community Prometheus su GitHub.