Questo tutorial mostra come configurare i probe di attività per i microservizi delle applicazioni di cui è stato eseguito il deployment in Google Kubernetes Engine (GKE) utilizzando Prometheus open source.
Questo tutorial utilizza Prometheus open source. Tuttavia, ogni cluster GKE Autopilot esegue automaticamente il deployment di Managed Service per Prometheus, la soluzione multi-cloud completamente gestita di Google Cloud per le metriche Prometheus. Managed Service per Prometheus consente di monitorare e creare avvisi sui carichi di lavoro a livello globale utilizzando Prometheus, senza dover gestire e utilizzare Prometheus manualmente su larga scala.
Puoi anche utilizzare strumenti open source come Grafana per visualizzare le metriche raccolte da Prometheus.
Obiettivi
- Creare un cluster.
- Esegui il deployment di Prometheus.
- Esegui il deployment dell'applicazione di esempio Bank of Anthos.
- Configurare i probe di attività Prometheus.
- Configura gli avvisi di Prometheus.
- Configura Alertmanager per ricevere le notifiche in un canale Slack.
- Simula un'interruzione per testare Prometheus.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella pagina del selettore di progetti della console Google Cloud, fai clic su Crea progetto per iniziare a creare un nuovo progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API GKE.
-
Nella pagina del selettore di progetti della console Google Cloud, fai clic su Crea progetto per iniziare a creare un nuovo progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Attiva l'API GKE.
- Installa l' API Helm
prepara l'ambiente
In questo tutorial utilizzerai Cloud Shell per gestire le risorse ospitate su Google Cloud.
Imposta le variabili di ambiente predefinite:
gcloud config set project PROJECT_ID gcloud config set compute/region COMPUTE_REGION
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto Google Cloud.PROJECT_ID
: la regione di Compute Engine per il cluster. Per questo tutorial, la regione èus-central1
. In genere, vuoi un'area geografica vicina a te.
Clona il repository di esempio utilizzato in questo tutorial:
git clone https://github.com/GoogleCloudPlatform/bank-of-anthos.git cd bank-of-anthos/
Crea un cluster:
gcloud container clusters create-auto CLUSTER_NAME \ --release-channel=CHANNEL_NAME \ --region=COMPUTE_REGION
Sostituisci quanto segue:
CLUSTER_NAME
: un nome per il nuovo cluster.CHANNEL_NAME
: il nome di un canale di rilascio.
Esegui il deployment di Prometheus
Installa Prometheus utilizzando il grafico Helm di esempio:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install tutorial bitnami/kube-prometheus \
--version 8.2.2 \
--values extras/prometheus/oss/values.yaml \
--wait
Questo comando installa Prometheus con i componenti seguenti:
- Prometheus Operator: un modo popolare per eseguire il deployment e configurare Prometheus open source.
- Alertmanager: gestisce gli avvisi inviati dal server Prometheus e li instrada ad applicazioni, come Slack.
- Esportatore Blackbox: consente a Prometheus di eseguire il probe degli endpoint utilizzando HTTP, HTTPS, DNS, TCP, ICMP e gRPC.
Esegui il deployment di Bank of Anthos
Esegui il deployment dell'applicazione di esempio Bank of Anthos:
kubectl apply -f extras/jwt/jwt-secret.yaml
kubectl apply -f kubernetes-manifests
Notifiche Slack
Per configurare le notifiche Slack, devi creare un'applicazione Slack, attivare i webhook in entrata per l'applicazione e installare l'applicazione in un'area di lavoro Slack.
Crea l'applicazione Slack
Partecipa a un'area di lavoro Slack registrandosi con il proprio indirizzo email o utilizzando un invito inviato da un amministratore di Workspace.
Accedi a Slack usando il nome della tua area di lavoro e le credenziali del tuo account Slack.
-
- Nella finestra di dialogo Crea un'app, fai clic su Da zero.
- Specifica un Nome app e scegli la tua area di lavoro Slack.
- Fai clic su Create App (Crea app).
- In Aggiungi caratteristiche e funzionalità, fai clic su Webhook in entrata.
- Fai clic sull'opzione di attivazione/disattivazione Attiva webhook in arrivo.
- Nella sezione URL webhook per area di lavoro, fai clic su Aggiungi nuovo webhook a Workspace.
- Nella pagina di autorizzazione che si apre, seleziona un canale per ricevere le notifiche.
- Fai clic su Consenti.
- Un webhook per l'applicazione Slack viene visualizzato nella sezione URL webhook per l'area di lavoro. Salva l'URL per un utilizzo futuro.
Configura AlertManager
Crea un secret di Kubernetes per archiviare l'URL webhook:
kubectl create secret generic alertmanager-slack-webhook --from-literal webhookURL=SLACK_WEBHOOK_URL
kubectl apply -f extras/prometheus/oss/alertmanagerconfig.yaml
Sostituisci SLACK_WEBHOOK_URL
con l'URL del webhook
della sezione precedente.
Configura Prometheus
Esamina il seguente manifest:
Questo manifest descrive i probe di attività Prometheus e include i campi seguenti:
spec.jobName
: il nome del job assegnato alle metriche di altri siti.spec.prober.url
: l'URL del servizio dell'esportatore blackbox. Include la porta predefinita per l'esportatore blackbox, definita nel grafico Helm.spec.prober.path
: il percorso di raccolta delle metriche.spec.targets.staticConfig.labels
: le etichette assegnate a tutte le metriche tramite lo scraping dei target.spec.targets.staticConfig.static
: l'elenco di host da scansionare.
Applica il manifest al tuo cluster:
kubectl apply -f extras/prometheus/oss/probes.yaml
Esamina il seguente manifest:
Questo file manifest descrive un elemento
PrometheusRule
e include i seguenti campi:spec.groups.[*].name
: il nome del gruppo di regole.spec.groups.[*].interval
: la frequenza con cui vengono valutate le regole nel gruppo.spec.groups.[*].rules[*].alert
: il nome dell'avviso.spec.groups.[*].rules[*].expr
: l'espressione PromQL da valutare.spec.groups.[*].rules[*].for
: il periodo di tempo entro il quale gli avvisi devono essere restituiti prima che vengano considerati attivati.spec.groups.[*].rules[*].annotations
: un elenco di annotazioni da aggiungere a ogni avviso. È valido solo per le regole di avviso.spec.groups.[*].rules[*].labels
: le etichette da aggiungere o sovrascrivere.
Applica il manifest al tuo cluster:
kubectl apply -f extras/prometheus/oss/rules.yaml
Simula un'interruzione
Simula un'interruzione scalando il deployment di
contacts
a zero:kubectl scale deployment contacts --replicas 0
Dovresti visualizzare un messaggio di notifica nel canale della tua area di lavoro Slack. GKE potrebbe impiegare fino a 5 minuti per scalare il deployment.
Ripristina il deployment
contacts
:kubectl scale deployment contacts --replicas 1
Dovresti visualizzare un messaggio di notifica relativo alla risoluzione degli avvisi nel canale dell'area di lavoro Slack. GKE può impiegare fino a 5 minuti per scalare il deployment.
Esegui la pulizia
Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Elimina un progetto Google Cloud:
gcloud projects delete PROJECT_ID
Elimina singole risorse
Elimina le risorse Kubernetes:
kubectl delete -f kubernetes-manifests
Disinstalla Prometheus:
helm uninstall tutorial
Elimina il cluster GKE:
gcloud container clusters delete CLUSTER_NAME --quiet
Passaggi successivi
- Scopri di più su Google Cloud Managed Service per Prometheus, una soluzione di metriche globale completamente gestita, basata su Prometheus, di cui viene eseguito il deployment per impostazione predefinita in tutti i cluster Autopilot.
- Esplora le architetture di riferimento, i diagrammi e le best practice su Google Cloud. Visita il nostro Cloud Architecture Center.