Questa pagina mostra come configurare un cluster per Cluster Anthos on bare metal in modo che i log e le metriche personalizzati delle applicazioni utente vengano inviati a Cloud Logging e Cloud Monitoring.
Abilitazione di Logging e Monitoring per le applicazioni utente
Per abilitare Logging e Monitoring per le tue applicazioni, utilizza il campo spec.clusterOperations.enableApplication
nel file di configurazione del cluster.
Aggiorna il file di configurazione del cluster per impostare
enableApplication
sutrue
:apiVersion: v1 kind: Namespace metadata: name: cluster-user-basic --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic spec: type: user ... clusterOperations: projectID: project-fleet location: us-central1 enableApplication: true ...
Utilizza
bmctl update
per applicare le modifiche:bmctl update cluster -c CLUSTER_NAME --admin-kubeconfig=ADMIN_KUBECONFIG
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster di cui eseguire l'upgrade.ADMIN_KUBECONFIG
: il percorso del file kubeconfig del cluster di amministrazione.
Annota i carichi di lavoro
Per abilitare la raccolta di metriche personalizzate da un'applicazione, aggiungi l'annotazione prometheus.io/scrape: "true"
al manifest del servizio o del pod dell'applicazione oppure aggiungi la stessa annotazione alla sezione spec.template
nel manifest del deployment o del DaemonSet per poterla trasmettere ai loro pod.
Esegui un'applicazione di esempio
In questa sezione, creerai un'applicazione che scrive log personalizzati ed espone una metrica personalizzata.
Salva i seguenti manifest di servizio e deployment in un file denominato
my-app.yaml
. Nota che il servizio ha l'annotazioneprometheus.io/scrape: "true"
:kind: Service apiVersion: v1 metadata: name: "monitoring-example" namespace: "default" annotations: prometheus.io/scrape: "true" spec: selector: app: "monitoring-example" ports: - name: http port: 9090 --- apiVersion: apps/v1 kind: Deployment metadata: name: "monitoring-example" namespace: "default" labels: app: "monitoring-example" spec: replicas: 1 selector: matchLabels: app: "monitoring-example" template: metadata: labels: app: "monitoring-example" spec: containers: - image: gcr.io/google-samples/prometheus-dummy-exporter:latest name: prometheus-example-exporter imagePullPolicy: Always command: - /bin/sh - -c - ./prometheus-dummy-exporter --metric-name=example_monitoring_up --metric-value=1 --port=9090 resources: requests: cpu: 100m
Crea il deployment e il servizio:
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-app.yaml
Visualizza log applicazione
Console
Vai a Esplora log nella console Google Cloud.
Fai clic su Risorsa. In ALL_RESOURCE_TYPES, seleziona
Kubernetes Container
.In CLUSTER_NAME, seleziona il nome del tuo cluster utente.
In NAMESPACE_NAME, seleziona
default
.Fai clic su Aggiungi e poi su Esegui query.
In Risultati delle query, puoi vedere le voci di log del deployment
monitoring-example
. Ad esempio:{ "textPayload": "2020/11/14 01:24:24 Starting to listen on :9090\n", "insertId": "1oa4vhg3qfxidt", "resource": { "type": "k8s_container", "labels": { "pod_name": "monitoring-example-7685d96496-xqfsf", "cluster_name": ..., "namespace_name": "default", "project_id": ..., "location": "us-west1", "container_name": "prometheus-example-exporter" } }, "timestamp": "2020-11-14T01:24:24.358600252Z", "labels": { "k8s-pod/pod-template-hash": "7685d96496", "k8s-pod/app": "monitoring-example" }, "logName": "projects/.../logs/stdout", "receiveTimestamp": "2020-11-14T01:24:39.562864735Z" }
gcloud
Esegui questo comando:
gcloud logging read 'resource.labels.project_id="PROJECT_ID" AND \ resource.type="k8s_container" AND resource.labels.namespace_name="default"'
Sostituisci
PROJECT_ID
con l'ID del tuo progetto.Nell'output puoi vedere le voci di log del deployment
monitoring-example
. Ad esempio:insertId: 1oa4vhg3qfxidt labels: k8s-pod/app: monitoring-example k8s- pod/pod-template-hash: 7685d96496 logName: projects/.../logs/stdout receiveTimestamp: '2020-11-14T01:24:39.562864735Z' resource: labels: cluster_name: ... container_name: prometheus-example-exporter location: us-west1 namespace_name: default pod_name: monitoring-example-7685d96496-xqfsf project_id: ... type: k8s_container textPayload: | 2020/11/14 01:24:24 Starting to listen on :9090 timestamp: '2020-11-14T01:24:24.358600252Z'
Visualizzare le metriche delle applicazioni nella console Google Cloud
L'applicazione di esempio espone una metrica personalizzata denominata example_monitoring_up
.
Puoi visualizzare i valori della metrica nella console Google Cloud.
Vai a Metrics Explorer nella console Google Cloud.
In Tipo di risorsa, seleziona
Kubernetes Pod
oKubernetes Container
.Per metrica, seleziona
external.googleapis.com/prometheus/example_monitoring_up
.Nel grafico, puoi vedere che
example_monitoring_up
ha un valore ripetuto di 1.