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 damemory.usage_in_bytes
in cgroup - Memoria cancellabile:
container/memory/bytes_used
, raccolta dal campototal_inactive_file
dimemory.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:
- Nella console Google Cloud, seleziona il tuo progetto Google Cloud.
Vai alla console Google Cloud - Nel riquadro di navigazione, seleziona Monitoring.
- Nella console Google Cloud, seleziona il tuo progetto Google Cloud.
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
Nella console Google Cloud, vai alla pagina Kubernetes Engine > Cluster Kubernetes:
Fai clic su Crea cluster.
Configura il cluster in base alle esigenze.
Fai clic su Opzioni avanzate. Assicurati che l'opzione Abilita servizio Stackdriver Monitoring sia selezionata.
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.
Nella console Google Cloud, vai alla pagina Kubernetes Engine > Cluster Kubernetes:
Fai clic su Modifica edit.
Imposta il valore del menu a discesa Stackdriver Monitoring su Enabled.
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:
Clona cAdvisor:
git clone https://github.com/google/cadvisor.git cd cadvisor
Segui le istruzioni di cAdvisor DaemonSet per installare kustomize. Se utilizzi Cloud Shell, esegui questo comando:
go get github.com/kubernetes-sigs/kustomize
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
.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:
Nella console Google Cloud, vai a Monitoring:
Passa il mouse sopra Risorse e seleziona Kubernetes Engine.
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:
Nella console Google Cloud, vai a Monitoring:
Passa il mouse sopra Dashboard e seleziona Crea dashboard.
Per creare una nuova dashboard, fai clic su Aggiungi grafico.
Compila il campo Titolo con un nome per la dashboard.
Nel campo Trova metrica e tipo di risorsa, cerca
instance
e/ocontainer
, quindi seleziona le metriche desiderate.Nel campo Tipo di metrica, inserisci o seleziona dal menu di compilazione automatica le metriche desiderate.
(Facoltativo) Utilizza il filtro per filtrare in base a un valore specifico, ad esempio app, nome o versione.
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:
Nella console Google Cloud, vai a Monitoring:
Passa il mouse sopra Risorse e seleziona Metrics Explorer.
Nel menu di ricerca Trova tipo di risorsa e metrica, inserisci
gke_container
per Tipo di risorsa.In Metrica, seleziona le metriche prescelte.
Facoltativamente, utilizza il menu Filtro per filtrare in base alla risorsa.
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
Nella console Google Cloud, vai alla pagina Kubernetes Engine > Cluster Kubernetes:
Fai clic su Modifica edit.
Imposta il valore del menu a discesa Stackdriver Monitoring su Disattivato.
Fai clic su Salva.
Passaggi successivi
- Per informazioni sui costi di Cloud Monitoring, consulta la pagina Prezzi.
- Per informazioni sui criteri di avviso e su come configurarli, consulta Criteri di avviso.
- Per scoprire di più sulla creazione e l'utilizzo dei controlli di uptime, consulta Gestione dei controlli di uptime.
- Esplora la scalabilità automatica con il tutorial Scalabilità automatica dei deployment con metriche personalizzate.