Gestisci le metriche GKE

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Google Kubernetes Engine (GKE) semplifica l'invio delle metriche a Cloud Monitoring. Una volta in Cloud Monitoring, le metriche possono completare le dashboard personalizzate, generare avvisi, creare obiettivi a livello di servizio o essere recuperati da servizi di monitoraggio di terze parti utilizzando l'API Cloud Monitoring.

G K E fornisce diverse fonti di metriche:

  • Metriche di sistema: metriche dei componenti di sistema essenziali, che descrivono risorse di basso livello come CPU, memoria e archiviazione.
  • Managed Service per Prometheus: consente di monitorare e creare avvisi sui tuoi carichi di lavoro utilizzando Prometheus, senza dover gestire e utilizzare manualmente Prometheus su larga scala.
  • Metriche del piano di controllo: metriche esportate da determinati componenti del piano di controllo, come il server API e lo scheduler.
  • Metriche del carico di lavoro (deprecate): metriche esposte da qualsiasi carico di lavoro G K E (ad esempio un CronJob o un deployment per un'applicazione).

Metriche di sistema

Quando viene creato un cluster, G K E raccoglie per impostazione predefinita alcune metriche emesse dai componenti del sistema.

Puoi scegliere se inviare o meno le metriche dal cluster G K E a Cloud Monitoring. Se scegli di inviare le metriche a Cloud Monitoring, dovrai inviare le metriche di sistema.

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

Prezzi

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

Configurazione della raccolta di metriche di sistema in corso...

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 disattivare 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 utilizzo della CPU, utilizzo della memoria e disco non sono disponibili per un cluster nella scheda Osservabilità o nella sezione G K E della console Google Cloud. Inoltre, la dashboard di Cloud Monitoring G non contiene informazioni sul cluster.

Per ulteriori dettagli sull'integrazione di Cloud Monitoring con G K E, consulta Configurazione di Cloud Operations for GKE.

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

Elenco delle metriche di sistema

Le metriche di sistema includono le metriche dei componenti di sistema essenziali per la funzionalità Kubernetes di base. Per un elenco di queste metriche, consulta le metriche di sistema di GKE.

Risoluzione dei problemi relativi alle metriche di sistema

Se le metriche di sistema non sono disponibili in Cloud Monitoring come previsto, di seguito sono riportati alcuni passaggi che puoi seguire per risolvere il problema.

Verifica che l'agente delle metriche disponga di memoria sufficiente

Nella maggior parte dei casi, l'allocazione predefinita delle risorse all'agente delle metriche GKE è sufficiente. Tuttavia, se il DaemonSet si arresta ripetutamente in modo anomalo, puoi controllare il motivo dell'interruzione seguendo queste istruzioni:

  1. Recupera i nomi dei pod dell'agente delle metriche GKE:

    kubectl get pods -n kube-system -l component=gke-metrics-agent
    

    Individua il pod con lo stato CrashLoopBackOff.

    L'output è simile al seguente:

    NAME                    READY STATUS           RESTARTS AGE
    gke-metrics-agent-5857x 0/1   CrashLoopBackOff 6        12m
    
  2. Descrivi il pod con lo stato CrashLoopBackOff:

    kubectl describe pod POD_NAME -n kube-system
    

    Sostituisci POD_NAME con il nome del pod del passaggio precedente.

    Se il motivo della terminazione del pod è OOMKilled, l'agente richiede una memoria aggiuntiva.

    L'output è simile al seguente:

      containerStatuses:
      ...
      lastState:
        terminated:
          ...
          exitCode: 1
          finishedAt: "2021-11-22T23:36:32Z"
          reason: OOMKilled
          startedAt: "2021-11-22T23:35:54Z"
    
  3. Aggiungi un'etichetta al nodo con l'agente per metriche in errore. Puoi utilizzare un'etichetta nodo permanente o temporanea. Ti consigliamo di provare ad aggiungere altri 20 MB. Se l'agente continua ad arrestarsi in modo anomalo, puoi eseguire di nuovo questo comando, sostituendo l'etichetta del nodo con una richiesta di memoria aggiuntiva.

    Per aggiornare un pool di nodi con un'etichetta permanente, esegui il comando seguente:

    gcloud container node-pools update NODEPOOL_NAME \
     --cluster=CLUSTER_NAME \
     --node-labels=ADDITIONAL_MEMORY_NODE_LABEL \
     --zone ZONE
    

    Sostituisci quanto segue:

    • NODEPOOL_NAME: il nome del pool di nodi.
    • CLUSTER_NAME: il nome del cluster esistente.
    • ADDITIONAL_MEMORY_NODE_LABEL: una delle etichette aggiuntive dei nodi di memoria; usa una delle seguenti opzioni:
      • Per aggiungere 10 MB: cloud.google.com/gke-metrics-agent-scaling-level=10
      • Per aggiungere 20 MB: cloud.google.com/gke-metrics-agent-scaling-level=20
      • Per aggiungere 50 MB: cloud.google.com/gke-metrics-agent-scaling-level=50
      • Per aggiungere 100 MB: cloud.google.com/gke-metrics-agent-scaling-level=100
      • Per aggiungere 200 MB: cloud.google.com/gke-metrics-agent-scaling-level=200
      • Per aggiungere 500 MB: cloud.google.com/gke-metrics-agent-scaling-level=500
    • ZONE: la zona in cui è in esecuzione il cluster.

    In alternativa, puoi aggiungere un'etichetta temporanea del nodo che non persisterà dopo un upgrade utilizzando il seguente comando:

    kubectl label node/NODE_NAME \
    ADDITIONAL_MEMORY_NODE_LABEL --overwrite
    

    Sostituisci quanto segue:

    • NODE_NAME con il nome del nodo dell'agente delle metriche interessate.
    • ADDITIONAL_MEMORY_NODE_LABEL: una delle etichette aggiuntive dei nodi di memoria; utilizza uno dei valori dell'esempio precedente.

Metriche del piano di controllo

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

Requisiti

Per inviare le metriche emesse dai componenti del piano di controllo Kubernetes a Cloud Monitoring, è necessario che la versione 1.22.13 o successiva del piano di controllo GK E richieda l'attivazione della raccolta delle metriche di sistema.

Configurazione della raccolta di metriche del piano di controllo

Per abilitare le metriche del piano di controllo Kubernetes in un cluster G K E esistente, segui questi passaggi:

Console

  1. Nella console Google Cloud, vai all'elenco dei cluster G K E:

    Vai ai cluster Kubernetes

  2. Fai clic sul nome del cluster.

  3. Nella riga Cloud Monitoring, fai clic sull'icona Modifica.

  4. Nella finestra di dialogo Modifica Cloud Monitoring che viene visualizzata, verifica che sia selezionata l'opzione Abilita Cloud Monitoring.

  5. Nel menu a discesa Componenti, seleziona i componenti del piano di controllo da cui raccogliere le metriche: Server API, Strumento di pianificazione o Gestore controller.

  6. Fai clic su OK.

  7. Fai clic su Salva modifiche.

gcloud

  1. Apri una finestra del terminale in cui sono installati Google Cloud SDK e Google Cloud CLI. Un modo per farlo è utilizzare Cloud Shell.

  2. In Google Cloud Console, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore di Google Cloud Console, 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à installato e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  3. Passa uno o più dei valori API_SERVER, SCHEDULER o CONTROLLER_MANAGER al flag --monitoring dei comandi gcloud container clusters create o gcloud container clusters update.

    Ad esempio, per raccogliere metriche dal server API, dallo scheduler e dal controller del controller, esegui questo comando:

    gcloud container clusters update [CLUSTER_ID] \
      --zone=[ZONE] \
      --project=[PROJECT_ID] \
      --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER
    

Terraform

Utilizzo delle metriche del piano di controllo

Vedi Utilizzare le metriche del piano di controllo per:

Dashboard per la visualizzazione delle metriche del piano di controllo disponibili nella scheda Osservabilità di GKE nella console Google Cloud. Per informazioni su queste dashboard, consulta Visualizzare le metriche di osservabilità.

Prezzi

Le metriche del piano di controllo G K E utilizzano Google Cloud Managed Service per Prometheus per importare le metriche in Cloud Monitoring. Cloud Monitoring addebita l'importazione delle metriche del piano di controllo G K E in base al numero di campioni importati. Per ulteriori informazioni, consulta i prezzi di Cloud Monitoring.

Informazioni sulla fattura di Monitoring

Per identificare le metriche del piano di controllo che includono il maggior numero di campioni importati, utilizza la metrica monitoring.googleapis.com/collection/attribution/write_sample_count:

  1. Nella console Google Cloud, seleziona Monitoring:

    Vai a Monitoring

  2. Nel riquadro di navigazione di Monitoring, fai clic su Metrics Explorer.

  3. Nel campo Metrica, seleziona monitoring.googleapis.com/collection/attribution/write_sample_count.

  4. Fai clic su Aggiungi filtro.

  5. Nel campo Etichetta, seleziona attribution_dimension.

  6. Nel campo Confronto, seleziona = (equals).

  7. Nel campo Valore, inserisci cluster.

  8. Fai clic su Fine.

  9. (Facoltativo) Applica un filtro in base a determinate metriche. In particolare, poiché le metriche del server API includono tutte "apiserver" come nome della metrica e poiché le metriche dello scheduler includono "scheduler" nel nome della metrica, puoi limitare a quelle 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 .*scheduler.*.

    • Fai clic su Fine.

  10. Facoltativamente, raggruppa il numero di campioni importati dalla regione o dal progetto G K E:

    • Fai clic su Group by (Raggruppa per).

    • Assicurati che sia selezionato metric_type.

    • Per raggruppare in base alla regione di G K E, seleziona località.

    • Per raggruppare per progetto, seleziona project_id.

    • Fai clic su OK.

  11. Facoltativamente, raggruppa il numero di campioni importati dal nome del cluster G K E:

    • Fai clic su Group by (Raggruppa per).

    • Per raggruppare in base al nome del cluster G K E, assicurati che siano selezionati sia attribute_dimension sia attribute_id.

    • Fai clic su OK.

  12. Ordina l'elenco delle metriche in ordine decrescente facendo clic sull'intestazione della colonna Valore sopra l'elenco delle metriche.

Questi passaggi mostrano le metriche con la frequenza più elevata di campioni importati in Cloud Monitoring. Poiché le metriche del piano di controllo G K E vengono addebitate in base al numero di campioni importati, presta attenzione alle metriche con la percentuale maggiore di campioni importati.

Quota

Le metriche del piano di controllo consumano la quota di richieste di importazione al minuto della serie temporale dell'API Cloud Monitoring. Prima di abilitare le metriche del piano di controllo, controlla l'utilizzo recente dei picchi di tale quota. Se hai molti cluster nello stesso progetto o stai già per raggiungere il limite della quota, puoi richiedere un aumento del limite di quota prima di abilitare le metriche del piano di controllo.

Altre metriche

Oltre alle metriche di sistema e alle metriche del piano di controllo in questo documento, sono disponibili anche le metriche Istio per i cluster G K E.