Questa pagina descrive le metriche e le dashboard disponibili per il monitoraggio della latenza di avvio dei carichi di lavoro di Google Kubernetes Engine (GKE) e dei nodi del cluster sottostanti. Puoi utilizzare le metriche per monitorare, risolvere i problemi e ridurre la latenza di avvio.
Questa pagina è rivolta agli amministratori e agli operatori della piattaforma che devono monitorare e ottimizzare la latenza di avvio dei loro carichi di lavoro. Per scoprire di più sui ruoli comuni a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività comuni degli utenti di GKE Enterprise.
Panoramica
La latenza di avvio influisce notevolmente sulla risposta dell'applicazione agli picchi di traffico, sulla rapidità con cui le sue repliche si riprendono dalle interruzioni e sull'efficienza dei costi operativi dei cluster e dei carichi di lavoro. Il monitoraggio della latenza di avvio dei tuoi carichi di lavoro può aiutarti a rilevare i cali di latenza e a monitorare l'impatto degli aggiornamenti del carico di lavoro e dell'infrastruttura sulla latenza di avvio.
L'ottimizzazione della latenza di avvio del carico di lavoro presenta i seguenti vantaggi:
- Riduce la latenza di risposta del servizio agli utenti durante i picchi di traffico.
- Riduce la capacità di pubblicazione in eccesso necessaria per assorbire i picchi di domanda durante la creazione di nuove repliche.
- Riduce il tempo di inattività delle risorse già di cui è stato eseguito il deployment e che sono in attesa dell'avvio delle risorse rimanenti durante i calcoli batch.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installa e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
Abilita le API Cloud Logging e Cloud Monitoring.
Requisiti
Per visualizzare le metriche e le dashboard relative alla latenza di avvio dei carichi di lavoro, il cluster GKE deve soddisfare i seguenti requisiti:
- Devi disporre di GKE versione 1.31.1-gke.1678000 o successive.
- Devi configurare la raccolta delle metriche di sistema.
- Devi configurare la raccolta dei log di sistema.
- Abilita le metriche di stato Kube con il componente
POD
sui tuoi cluster per visualizzare le metriche dei pod e dei contenitori.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni necessarie per attivare la generazione dei log e per accedere ed elaborare i log, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Visualizza i cluster, i nodi e i carichi di lavoro GKE:
Kubernetes Engine Viewer (
roles/container.viewer
) nel tuo progetto -
Accedi alle metriche sulla latenza di avvio e visualizza le dashboard:
Visualizzatore di monitoraggio (
roles/monitoring.viewer
) nel tuo progetto -
Accedi ai log con informazioni sulla latenza, ad esempio gli eventi di estrazione delle immagini Kubelet, e visualizzali in Esplora log e Log Analytics:
Visualizzatore dei log (
roles/logging.viewer
) nel tuo progetto
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Metriche sulla latenza di avvio
Le metriche sulla latenza di avvio sono incluse nelle metriche di sistema di GKE e vengono esportate in Cloud Monitoring nello stesso progetto del cluster GKE.
I nomi delle metriche di Cloud Monitoring in questa tabella devono avere il prefisso kubernetes.io/
. Questo prefisso è stato omesso dalle voci della tabella.
Tipo di metrica (livelli della gerarchia delle risorse) Nome visualizzato |
|
---|---|
Tipo, unità
Risorse monitorate |
Descrizione Etichette |
pod/latencies/pod_first_ready
(project)
Latenza prima disponibilità pod |
|
GAUGE , Double , s
k8s_pod |
La latenza di avvio end-to-end del pod (dal pod Created a Ready ), inclusi i pull delle immagini. Campionamento eseguito ogni 60 secondi. |
node/latencies/startup
(project)
Latenza di avvio dei nodi |
|
GAUGE , INT64 , s
k8s_node |
La latenza totale di avvio del nodo, da CreationTimestamp dell'istanza GCE a Kubernetes node ready per la prima volta. Campionamento eseguito ogni 60 secondi.accelerator_family : una classificazione dei nodi in base agli acceleratori hardware: gpu , tpu , cpu .
kube_control_plane_available : indica se la richiesta di creazione del nodo è stata ricevuta quando il KCP (piano di controllo di Kube) era disponibile.
|
autoscaler/latencies/per_hpa_recommendation_scale_latency_seconds
(project)
Per la latenza della scala dei consigli HPA |
|
GAUGE , DOUBLE , s
k8s_scale |
Latenza del suggerimento di scalabilità del gestore della scalabilità automatica orizzontale dei pod (HPA) (tempo tra la creazione delle metriche e l'applicazione del suggerimento di scalabilità corrispondente all'api-server) per il target HPA. Campionamento eseguito ogni 60 secondi. Dopo il campionamento, i dati non sono visibili per un massimo di 20 secondi.metric_type : il tipo di origine metrica. Deve essere uno tra "ContainerResource" , "External" , "Object" , "Pods" o "Resource" .
|
Visualizza la dashboard Latenza di avvio per i workload
La dashboard Latenza di avvio per i carichi di lavoro è disponibile solo per i deployment. Per visualizzare le metriche sulla latenza di avvio per i deployment, svolgi i seguenti passaggi nella console Google Cloud:
Vai alla pagina Workload.
Per aprire la visualizzazione Dettagli deployment, fai clic sul nome del workload da ispezionare.
Fai clic sulla scheda Osservabilità.
Seleziona Tempo di avvio dal menu a sinistra.
Visualizza la distribuzione della latenza di avvio dei pod
La latenza di avvio dei pod si riferisce alla latenza di avvio totale, inclusi i pull delle immagini, che misura il tempo dall'inizio dello stato Created
del pod fino allo stato Ready
. Puoi valutare la latenza di avvio dei pod utilizzando i seguenti due grafici:
Grafico Distribuzione della latenza di avvio dei pod: questo grafico mostra i percentili della latenza di avvio dei pod (cinquantesimo percentile, novantacinquesimo percentile e novantanovesimo percentile) calcolati in base alle osservazioni degli eventi di avvio dei pod in intervalli di tempo fissi di tre ore, ad esempio dalle 00:00 alle 03:00 e dalle 03:00 alle 06:00. Puoi utilizzare questo grafico per le seguenti finalità:
- Comprendi la latenza di avvio del pod di riferimento.
- Identifica le modifiche della latenza di avvio dei pod nel tempo.
- Correla le variazioni della latenza di avvio dei pod con eventi recenti, come i deployment dei workload o gli eventi del gestore della scalabilità automatica dei cluster. Puoi selezionare gli eventi nell'elenco Annotazioni nella parte superiore della dashboard.

Grafico Conteggio avvio pod: mostra il numero di pod avviati durante gli intervalli di tempo selezionati. Puoi utilizzare questo grafico per le seguenti finalità:
- Scopri le dimensioni dei campioni dei pod utilizzati per calcolare i percentili della distribuzione della latenza di avvio dei pod per un determinato intervallo di tempo.
- Scopri le cause degli avvii dei pod, ad esempio i deployment dei workload o gli eventi Horizontal Pod Autoscaler. Puoi selezionare gli eventi nell'elenco Annotazioni nella parte superiore della dashboard.

Visualizza la latenza di avvio dei singoli pod
Puoi visualizzare la latenza di avvio dei singoli pod nel grafico della sequenza temporale Latenza del primo pod pronto e nell'elenco associato.
- Utilizza il grafico della cronologia Latenza prima disponibilità pod per correlare i singoli avvii dei pod con eventi recenti, come gli eventi Horizontal Pod Autoscaler o Cluster Autoscaler. Puoi selezionare questi eventi nell'elenco Annotazioni nella parte superiore della dashboard. Questo grafico ti aiuta a determinare le potenziali cause di eventuali variazioni della latenza di avvio rispetto ad altri pod.
- Utilizza l'elenco Latenza di primo avvio del pod per identificare i singoli pod il cui avvio ha richiesto più o meno tempo. Puoi ordinare l'elenco in base alla colonna Latenza. Quando identifichi i pod con la latenza di avvio più elevata, puoi risolvere i problemi di degradamento della latenza correlando gli eventi di avvio del pod con altri eventi recenti.

Puoi scoprire quando è stato creato un singolo pod esaminando il valore nel campo timestamp
in un evento di creazione del pod corrispondente. Per visualizzare il campo timestamp
, esegui la seguente query in Esplora log:
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.methodName="io.k8s.core.v1.pods.create" AND
resource.labels.project_id=PROJECT_ID AND
resource.labels.cluster_name=CLUSTER_NAME AND
resource.labels.location=CLUSTER_LOCATION AND
protoPayload.response.metadata.namespace=NAMESPACE AND
protoPayload.response.metadata.name=POD_NAME
Per elencare tutti gli eventi di creazione di pod per il tuo carico di lavoro, utilizza il seguente filtro
nella query precedente:
protoPayload.response.metadata.name=~"POD_NAME_PREFIX-[a-f0-9]{7,10}-[a-z0-9]{5}"
Quando confronti le latenze dei singoli pod, puoi testare l'impatto di varie configurazioni sulla latenza di avvio del pod e identificare una configurazione ottimale in base ai tuoi requisiti.
Determina la latenza della pianificazione dei pod
La latenza di pianificazione dei pod è il periodo di tempo che intercorre tra la creazione di un pod e la sua pianificazione su un nodo. La latenza di pianificazione del pod contribuisce al tempo di avvio end-to-end di un pod e viene calcolata sottraendo i timestamp di un evento di pianificazione del pod e di una richiesta di creazione del pod.
Puoi trovare un timestamp di un singolo evento di pianificazione dei pod nel campo jsonPayload.eventTime
di un evento di pianificazione dei pod corrispondente. Per visualizzare il campo jsonPayload.eventTime
, esegui la seguente query in Esplora log:
log_id("events")
jsonPayload.reason="Scheduled"
resource.type="k8s_pod"
resource.labels.project_id=PROJECT_ID
resource.labels.location=CLUSTER_LOCATION
resource.labels.cluster_name=CLUSTER_NAME
resource.labels.namespace_name=NAMESPACE
resource.labels.pod_name=POD_NAME
Per elencare tutti gli eventi di pianificazione dei pod per il tuo carico di lavoro, utilizza il seguente filtro
nella query precedente:
resource.labels.pod_name=~"POD_NAME_PREFIX-[a-f0-9]{7,10}-[a-z0-9]{5}"
Visualizza la latenza del pull delle immagini
La latenza di pull delle immagini del container contribuisce alla latenza di avvio del pod negli scenari quando l'immagine non è ancora disponibile sul nodo o deve essere aggiornata. Quando ottimizzi la latenza del recupero delle immagini, riduci la latenza di avvio del carico di lavoro durante gli eventi di scalabilità del cluster.
Puoi visualizzare la tabella Eventi di estrazione delle immagini Kubelet per vedere quando sono state espulse le immagini container del workload e il tempo impiegato dal processo.

La latenza di estrazione delle immagini è disponibile nel campo jsonPayload.message
, che contiene un messaggio simile al seguente:
"Successfully pulled image "gcr.io/example-project/image-name" in 17.093s (33.051s including waiting). Image size: 206980012 bytes."
Visualizzare la distribuzione della latenza dei suggerimenti di scalabilità HPA
La latenza dei suggerimenti di scalabilità dell'Horizontal Pod Autoscaler (HPA) per il target HPA è il tempo che intercorre tra la creazione delle metriche e l'applicazione del corrispondente suggerimento di scalabilità all'API server. Se ottimizzi la latenza dei suggerimenti di scalabilità HPA, riduci la latenza di avvio del workload durante gli eventi di scalabilità.
La scalabilità HPA può essere visualizzata nei seguenti due grafici:
Grafico Distribuzione della latenza dei suggerimenti sulla scalabilità HPA: questo grafico mostra i percentili della latenza dei suggerimenti di scalabilità HPA (cinquantesimo percentile, novantacinquesimo percentile e novantanovesimo percentile) calcolati in base alle osservazioni dei suggerimenti di scalabilità HPA negli intervalli di tempo di tre ore precedenti. Puoi utilizzare questo grafico per le seguenti finalità:
- Comprendi la latenza di riferimento dei suggerimenti di scalabilità HPA.
- Identifica le modifiche apportate alla latenza dei suggerimenti di scalabilità HPA nel tempo.
- Correla le modifiche alla latenza dei suggerimenti di scalabilità HPA con gli eventi recenti. Puoi selezionare gli eventi nell'elenco Annotazioni nella parte superiore della dashboard.

Grafico Numero di suggerimenti sulla scalabilità HPA: questo grafico mostra il numero di suggerimenti di scalabilità HPA osservati durante l'intervallo di tempo selezionato. Utilizza il grafico per le seguenti attività:
- Scopri le dimensioni dei campioni dei suggerimenti di scalabilità HPA. I campioni vengono utilizzati per calcolare i percentili nella distribuzione della latenza per i suggerimenti di scalabilità HPA per un determinato intervallo di tempo.
- Correla i suggerimenti di scalabilità HPA con i nuovi eventi di avvio dei pod e con gli eventi di Horizontal Pod Autoscaler. Puoi selezionare gli eventi nell'elenco Annotazioni nella parte superiore della dashboard.

Visualizzare i problemi di pianificazione per i pod
I problemi di pianificazione dei pod potrebbero influire sulla latenza di avvio end-to-end del tuo workload. Per ridurre la latenza di avvio end-to-end del tuo carico di lavoro, risolvi e riduci il numero di questi problemi.
Di seguito sono riportati i due grafici disponibili per monitorare questi problemi:
- Il grafico Pod non pianificabili/in attesa/non riusciti mostra il numero di pod non pianificabili, in attesa e non riusciti nel tempo.
- Il grafico Container con backoff/in attesa/non idonei mostra il numero di contenuti in questi stati nel tempo.
Visualizza la dashboard della latenza di avvio per i nodi
Per visualizzare le metriche sulla latenza di avvio per i nodi, svolgi i seguenti passaggi nella console Google Cloud:
Vai alla pagina Cluster Kubernetes.
Per aprire la visualizzazione Dettagli cluster, fai clic sul nome del cluster che vuoi esaminare.
Fai clic sulla scheda Osservabilità.
Nel menu a sinistra, seleziona Latenza di avvio.
Visualizza la distribuzione della latenza di avvio dei nodi
La latenza di avvio di un nodo si riferisce alla latenza di avvio totale, che misura il tempo dall'CreationTimestamp
del nodo allo stato Kubernetes node ready
. La latenza di avvio del nodo può essere visualizzata nei seguenti due grafici:
Grafico Distribuzione della latenza di avvio del nodo: questo grafico mostra i percentili della latenza di avvio del nodo (cinquantesimo percentile, novantacinquesimo percentile e novantanovesimo percentile) calcolati in base alle osservazioni degli eventi di avvio del nodo in intervalli di tempo fissi di 3 ore, ad esempio dalle 00:00 alle 03:00 e dalle 03:00 alle 06:00. Puoi utilizzare questo grafico per le seguenti finalità:
- Comprendi la latenza di avvio del nodo di riferimento.
- Identifica le modifiche della latenza di avvio dei nodi nel tempo.
- Correla le variazioni della latenza di avvio dei nodi con eventi recenti, ad esempio aggiornamenti del cluster o del pool di nodi. Puoi selezionare gli eventi nell'elenco Annotazioni nella parte superiore della dashboard.

Grafico Conteggio avvio nodi: mostra il numero di nodi avviati durante gli intervalli di tempo selezionati. Puoi utilizzare il grafico per i seguenti scopi:
- Scopri le dimensioni dei campioni dei nodi, utilizzate per calcolare i percentili della distribuzione della latenza di avvio dei nodi per un determinato intervallo di tempo.
- Scopri le cause degli avvii dei nodi, ad esempio gli aggiornamenti del pool di nodi o gli eventi di Cluster Autoscaler. Puoi selezionare gli eventi nell'elenco Annotazioni nella parte superiore della dashboard.

Visualizza la latenza di avvio dei singoli nodi
Quando confronti le latenze dei singoli nodi, puoi testare l'impatto di varie configurazioni dei nodi sulla latenza di avvio del nodo e identificare una configurazione ottimale in base ai tuoi requisiti. Puoi visualizzare la latenza di avvio dei singoli nodi nel grafico della sequenza temporale Latenza di avvio del nodo e nell'elenco associato.
Utilizza il grafico della sequenza temporale Latenza di avvio dei nodi per correlare i singoli avviamenti dei nodi con eventi recenti, come aggiornamenti del cluster o del pool di nodi. Puoi determinare le potenziali cause delle variazioni della latenza di avvio rispetto ad altri nodi. Puoi selezionare gli eventi nell'elenco Annotazioni nella parte superiore della dashboard.
Utilizza l'elenco Latenza di avvio del nodo per identificare i singoli nodi il cui avvio ha richiesto più o meno tempo. Puoi ordinare l'elenco in base alla colonna Latenza. Quando identifichi i nodi con la latenza di avvio più elevata, puoi risolvere i problemi di degradamento della latenza correlando gli eventi di avvio dei nodi con altri eventi recenti.

Puoi scoprire quando è stato creato un singolo nodo esaminando il valore del campo protoPayload.metadata.creationTimestamp
in un evento di creazione del nodo corrispondente. Per visualizzare il campo protoPayload.metadata.creationTimestamp
, esegui la seguente query in Esplora log:
log_id("cloudaudit.googleapis.com/activity") AND
protoPayload.methodName="io.k8s.core.v1.nodes.create" AND
resource.labels.project_id=PROJECT_ID AND
resource.labels.cluster_name=CLUSTER_NAME AND
resource.labels.location=CLUSTER_LOCATION AND
protoPayload.response.metadata.name=NODE_NAME
Visualizzare la latenza di avvio in un node pool
Se i pool di nodi hanno configurazioni diverse, ad esempio per eseguire carichi di lavoro diversi, potrebbe essere necessario monitorare la latenza di avvio dei nodi separatamente in base ai pool di nodi. Quando confronti le latenze di avvio dei nodi nei tuoi pool di nodi, puoi ottenere informazioni su come la configurazione dei nodi influisce sulla latenza di avvio e ottimizzarla di conseguenza.
Per impostazione predefinita, la dashboard Latenza di avvio dei nodi mostra la distribuzione aggregata della latenza di avvio e le singole latenze di avvio dei nodi in tutti i pool di nodi di un cluster. Per visualizzare la latenza di avvio del nodo per un pool di nodi specifico, seleziona il nome del pool di nodi utilizzando il filtro $node_pool_name_var
nella parte superiore della dashboard.
Passaggi successivi
- Scopri come ottimizzare la scalabilità automatica dei pod in base alle metriche.
- Scopri di più sui modi per ridurre la latenza dell'avvio a freddo su GKE.
- Scopri come ridurre la latenza del recupero delle immagini con lo streaming di immagini.
- Scopri di più sulla sorprendente economia della regolazione della scalabilità automatica orizzontale dei pod.
- Monitora i tuoi carichi di lavoro con il monitoraggio automatico delle applicazioni.