Cette page explique comment configurer un cluster pour les clusters Anthos sur solution Bare Metal afin que les journaux personnalisés et les métriques des applications utilisateur soient envoyés à Cloud Logging et à Cloud Monitoring.
Activer Logging et Monitoring pour les applications utilisateur
Pour activer Logging et Monitoring pour vos applications, utilisez le champ spec.clusterOperations.enableApplication
dans le fichier de configuration du cluster.
Mettez à jour le fichier de configuration du cluster pour définir
enableApplication
surtrue
: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 ...
Utilisez
bmctl update
pour appliquer vos modifications :bmctl update cluster -c CLUSTER_NAME --admin-kubeconfig=ADMIN_KUBECONFIG
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster à mettre à niveau.ADMIN_KUBECONFIG
: chemin d'accès au fichier kubeconfig du cluster d'administrateur.
Annoter des charges de travail
Pour activer la collecte de métriques personnalisées à partir d'une application, ajoutez l'annotation prometheus.io/scrape: "true"
au fichier manifeste du service ou du pod de l'application, ou ajoutez la même annotation à la section spec.template
dans le fichier manifeste "Déploiement" ou DaemonSet afin qu'elles soient transmises à leurs pods.
Exécuter un exemple d'application
Dans cette section, vous allez créer une application qui écrit des journaux personnalisés et expose une métrique personnalisée.
Enregistrez les fichiers manifeste de service et de déploiement suivants dans un fichier nommé
my-app.yaml
. Notez que le service possède l'annotationprometheus.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
Créez le déploiement et le service :
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-app.yaml
Afficher les journaux d'application
Console
Accédez à l'explorateur de journaux dans la console Google Cloud.
Cliquez sur Ressource. Sous ALL_RESOURCE_TYPES, sélectionnez
Kubernetes Container
.Sous CLUSTER_NAME, sélectionnez le nom de votre cluster d'utilisateur.
Sous NAMESPACE_NAME, sélectionnez
default
.Cliquez sur Ajouter, puis sur Exécuter la requête.
Les entrées de journal du déploiement
monitoring-example
sont affichées sous Résultats de la requête. Exemple :{ "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
Exécutez cette commande :
gcloud logging read 'resource.labels.project_id="PROJECT_ID" AND \ resource.type="k8s_container" AND resource.labels.namespace_name="default"'
Remplacez
PROJECT_ID
par l'ID de votre projet.Le résultat affiche les entrées de journal du déploiement
monitoring-example
. Exemple :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'
Afficher les métriques de l'application dans Google Cloud Console
Votre exemple d'application présente une métrique personnalisée nommée example_monitoring_up
.
Vous pouvez consulter les valeurs de cette métrique dans la console Google Cloud.
Accédez à l'explorateur de métriques dans la console Google Cloud.
Dans le champ Type de ressource, sélectionnez
Kubernetes Pod
ouKubernetes Container
.Pour Métrique, sélectionnez
external.googleapis.com/prometheus/example_monitoring_up
.Le graphique montre que
example_monitoring_up
a une valeur répétée de 1.