Dai forma al futuro delle operazioni software e fai sentire la tua voce partecipando al sondaggio per lo stato delle DevOps 2023.

Cloud Monitoring

Questa pagina spiega come utilizzare Cloud Monitoring per monitorare i cluster Google Kubernetes Engine (GKE).

Panoramica

Puoi utilizzare Monitoring per monitorare gli indicatori e creare operazioni nei cluster GKE.

Cloud Monitoring monitora le metriche di sistema e le metriche personalizzate. Le metriche di sistema sono misurazioni dell'infrastruttura del cluster, come l'utilizzo di CPU o memoria. Le metriche personalizzate sono metriche specifiche per le applicazioni definite da te, ad esempio il numero totale di sessioni utente attive o il numero totale di pagine visualizzate.

Per le metriche di sistema, Cloud Monitoring crea un deployment che si connette periodicamente a ciascun nodo e raccoglie metriche sui relativi pod e container, quindi invia le metriche a Monitoring.

Le metriche per l'utilizzo delle risorse di sistema vengono raccolte dalle seguenti origini:

  • CPU: container/cpu/usage_time
  • Memoria: container/memory/bytes_used, raccolta da memory.usage_in_bytes in cgroup
  • Memoria cancellabile: container/memory/bytes_used, raccolta dal campo total_inactive_file di memory.stat
  • Memoria non eliminabile: misurata da memory.usage_in_bytes - memory.total_inactive_file
  • Disco: container/disk/bytes_used

Per un elenco delle altre metriche di sistema raccolte da GKE, consulta l'elenco delle metriche.

Per scoprire come configurare le metriche personalizzate, consulta l'articolo Utilizzare le metriche personalizzate o segui il tutorial Scalabilità automatica dei deployment con metriche personalizzate.

Prima di iniziare

Per preparare questa attività, procedi nel seguente modo:

  • Assicurati di aver attivato l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Assicurati di aver installato Cloud SDK.
  • Imposta l'ID progetto predefinito:
    gcloud config set project [PROJECT_ID]
  • Se utilizzi cluster di zona, imposta la zona di calcolo predefinita:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Se utilizzi cluster regionali, imposta l'area geografica di calcolo predefinita:
    gcloud config set compute/region [COMPUTE_REGION]
  • Aggiorna gcloud alla versione più recente:
    gcloud components update
  • Per accedere a Cloud Monitoring:
    1. Nella console Google Cloud, seleziona il tuo progetto Google Cloud.
      Vai alla console Google Cloud
    2. Nel riquadro di navigazione, seleziona Monitoring.

Abilitazione di Monitoring

Puoi creare un cluster con Monitoring abilitato o abilitare Monitoring in un cluster esistente.

I pool di nodi del tuo cluster (incluso il pool di nodi predefinito) devono avere l'ambito Google Cloud necessario per interagire con Monitoring (l'ambito https://www.googleapis.com/auth/monitoring). Quando crei un nuovo cluster con monitoraggio, GKE imposta automaticamente questo ambito; tuttavia, i cluster esistenti potrebbero non disporre delle autorizzazioni necessarie.

Creazione di un cluster con monitoraggio

gcloud

Quando crei un cluster, il flag --enable-cloud-monitoring viene impostato automaticamente, il che abilita Monitoring nel cluster.

Per disattivare questo comportamento predefinito, imposta il flag --no-enable-cloud-monitoring.

Console

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

    Vai ai cluster Kubernetes

  2. Fai clic su Crea cluster.

  3. Configura il cluster in base alle esigenze.

  4. Fai clic su Opzioni avanzate. Assicurati che l'opzione Abilita servizio Stackdriver Monitoring sia selezionata.

  5. Fai clic su Crea.

Abilitazione del monitoraggio per un cluster esistente

gcloud

Per abilitare Monitoring per un cluster esistente, esegui questo comando, dove [CLUSTER_NAME] è il nome del cluster.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com

Se inizialmente hai creato il tuo cluster senza Monitoring e vuoi abilitarlo in un secondo momento, i pool di nodi del cluster potrebbero non disporre dell'ambito Google Cloud necessario. Come soluzione alternativa, puoi creare un nuovo pool di nodi con lo stesso numero di nodi e l'ambito necessario come segue:

gcloud container node-pools create adjust-scope \
    --cluster [CLUSTER_NAME] \
    --num-nodes [NUM_NODES] \
    --scopes https://www.googleapis.com/auth/monitoring

Dopo aver creato il nuovo pool di nodi, sposta i tuoi pod esistenti nel nuovo pool di nodi con ambito corretto per utilizzare Monitoring. Per ulteriori informazioni, consulta la pagina "Aggiornare gli ambiti VM senza tempi di inattività".

Console

Se inizialmente hai creato il tuo cluster senza Monitoring e vuoi abilitarlo in un secondo momento, i pool di nodi del cluster potrebbero non disporre dell'ambito Google Cloud necessario. Consulta la sezione gcloud prima di questa per una soluzione alternativa.

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

    Vai ai cluster Kubernetes

  2. Fai clic su Modifica .

  3. Imposta il valore del menu a discesa Stackdriver Monitoring su Enabled.

  4. Fai clic su Salva.

Estendere le metriche dell'infrastruttura

Oltre alle metriche delle applicazioni, le metriche personalizzate di Cloud Monitoring possono anche utilizzare misurazioni dell'infrastruttura del tuo cluster non incluse nelle metriche di sistema, come I/O del disco del container. Puoi eseguire il deployment dei tuoi agenti di monitoraggio dell'infrastruttura per raccogliere e trasferire queste metriche a Cloud Monitoring.

cAdvisor

Puoi raccogliere le metriche utilizzando cAdvisor, l'agente di monitoraggio open source utilizzato in Kubernetes, per raccogliere le metriche. Puoi utilizzare prometheus-to-sd per trasferire queste metriche a Cloud Monitoring.

Per eseguire cAdvisor sul tuo cluster, segui questi passaggi:

  1. Clona cAdvisor:

    git clone https://github.com/google/cadvisor.git
    cd cadvisor
    
  2. Segui le istruzioni di cAdvisor DaemonSet per installare kustomize. Se utilizzi Cloud Shell, esegui questo comando:

    go get github.com/kubernetes-sigs/kustomize
    
  3. Crea lo spazio dei nomi cAdvisor di esempio e il DaemonSet, che esporta tutte le metriche del container:

    kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
    

    Ora dovresti vedere le metriche di Prometheus in Cloud Monitoring sotto la risorsa gke_container.

  4. Segui le istruzioni di cAdvisor kustomization per apportare modifiche all'esempio fornito in base alle tue esigenze. Applica le modifiche con:

    kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
    

Visualizzazione delle metriche

Puoi visualizzare le metriche nella console Google Cloud.

Panoramica cluster

Monitoring offre un menu Panoramica per GKE. Questo menu raccoglie informazioni utili sui cluster in dashboard utili.

Per visualizzare il menu Panoramica, segui questi passaggi:

  1. Nella console Google Cloud, vai a Monitoring:

    Vai a Monitoring

  2. Passa il mouse sopra Risorse e seleziona Kubernetes Engine.

  3. Seleziona il cluster.

Il menu Panoramica fornisce le seguenti dashboard predefinite:

  • Incidenti: violazioni dei criteri di avviso.
  • Eventi: elenco cronologico di anomalie, incidenti, ciclo di vita, tag, criteri IAM, deployment, note, aggiornamenti di cloud provider e aggiornamenti di gestione degli utenti che si verificano nei tuoi account cloud.
  • Utilizzo CPU: mostra le percentuali di utilizzo della CPU per cluster.
  • I/O del disco: visualizza le tariffe di I/O del disco per cluster in kB/s.
  • Traffico di rete: mostra il traffico di rete per cluster in kB/s.
  • Pod: elenco di pod e nodi (istanze VM di Compute Engine) in tutti gli spazi dei nomi. Se selezioni un pod o un nodo, si apre la panoramica della risorsa.

Per scoprire di più sulla visualizzazione delle metriche, consulta la documentazione su Monitoring e la pagina Filtri di monitoraggio.

Dashboard

Puoi creare dashboard personalizzate per nodi e container GKE.

Per creare una dashboard, segui questi passaggi:

  1. Nella console Google Cloud, vai a Monitoring:

    Vai a Monitoring

  2. Passa il mouse sopra Dashboard e seleziona Crea dashboard.

  3. Per creare una nuova dashboard, fai clic su Aggiungi grafico.

  4. Compila il campo Titolo con un nome per la dashboard.

  5. Nel campo Trova metrica e tipo di risorsa, cerca instance e/o container, quindi seleziona le metriche desiderate.

  6. Nel campo Tipo di metrica, inserisci o seleziona dal menu di compilazione automatica le metriche desiderate.

  7. (Facoltativo) Utilizza il filtro per filtrare in base a un valore specifico, ad esempio app, nome o versione.

  8. Configura la dashboard in base alle tue esigenze. Per creare la dashboard, fai clic su Salva.

Metrics Explorer

Metrics Explorer consente di selezionare una metrica specifica sui cluster e di eseguire varie aggregazioni.

Per utilizzare Metrics Explorer, procedi come segue:

  1. Nella console Google Cloud, vai a Monitoring:

    Vai a Monitoring

  2. Passa il mouse sopra Risorse e seleziona Metrics Explorer.

  3. Nel menu di ricerca Trova tipo di risorsa e metrica, inserisci gke_container per Tipo di risorsa.

  4. In Metrica, seleziona le metriche prescelte.

  5. Facoltativamente, utilizza il menu Filtro per filtrare in base alla risorsa.

  6. Utilizza le opzioni di Aggregazione per eseguire un'aggregazione.

Best practice

  • Avvisi: puoi configurare criteri di avviso che ti informano se si verifica qualcosa di sospetto nel cluster.

Disabilitazione del monitoraggio in corso...

gcloud

Per disabilitare il monitoraggio per un cluster esistente, esegui il comando seguente, in cui [CLUSTER_NAME] è il nome del cluster.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none

Se esegui Suite operativa di Google Cloud for GKE nel cluster, devi disabilitare sia il monitoraggio sia il logging utilizzando gcloud beta per impostare i seguenti flag nel cluster:

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none

Console

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

    Vai ai cluster Kubernetes

  2. Fai clic su Modifica .

  3. Imposta il valore del menu a discesa Stackdriver Monitoring su Disattivato.

  4. Fai clic su Salva.

Passaggi successivi