Surveiller les déploiements

Découvrez comment surveiller l'état, la disponibilité et les mises à niveau de vos déploiements Google Distributed Cloud connecté, y compris les charges de travail compatibles. Pour en savoir plus sur la configuration de la surveillance et sur les métriques disponibles, consultez Journaux et métriques.

Surveiller l'état et la disponibilité des charges de travail

Vous êtes responsable de la surveillance de l'état et de la disponibilité de vos charges de travail (conteneurs et machines virtuelles) exécutées sur votre déploiement Distributed Cloud connecté.

Charges de travail de conteneur

Pour surveiller l'état et la disponibilité des charges de travail conteneurisées que vous déployez, nous vous recommandons d'utiliser la solution de métriques Prometheus. Vous pouvez configurer Prometheus pour qu'il récupère les métriques de vos pods et services. Les services système gérés par Google sont surveillés et gérés automatiquement par Google. Pour en savoir plus sur la configuration de Prometheus, consultez Collecter des métriques avec Prometheus.

Utilisez les métriques clés suivantes pour surveiller les charges de travail de conteneur. Si vous utilisez Prometheus, vous êtes responsable du déploiement et de la gestion de Kube State Metrics pour exposer ces métriques spécifiques pour vos charges de travail :

  • kube_pod_status_phase : surveillez les pods dans les phases Failed ou Unknown.
  • kube_pod_container_status_waiting_reason: identifiez les pods bloqués dans CrashLoopBackOff ou ImagePullBackOff.
  • container_cpu_usage_seconds_total et container_memory_working_set_bytes (à partir de cAdvisor) : surveillez la consommation de ressources pour éviter les problèmes de saturation de la mémoire (OOM).

Charges de travail de machine virtuelle

Dans Distributed Cloud connecté, les machines virtuelles (VM) s'exécutent dans des pods Kubernetes standards, généralement précédés du préfixe virt-launcher-. Surveillez l'état des VM principalement en vérifiant l'état de la ressource personnalisée VirtualMachine ou en surveillant les métriques d'application depuis la VM.

Utilisez les métriques de pod virt-launcher sous-jacentes comme indicateurs secondaires pour les détails suivants :

  • Utilisation des ressources : surveillez la consommation de processeur et de mémoire des pods de lancement pour vous assurer que les VM disposent de suffisamment de ressources.
  • Phase de pod : suivez les phases des pods de lancement pour identifier les VM qui ne démarrent pas ou qui plantent.

Pour ajuster les ressources attribuées à une VM, modifiez la spécification de la ressource personnalisée de la VM. Ne modifiez pas directement les fichiers YAML des pods virt-launcher sous-jacents, car ils sont gérés par la plate-forme. Toute modification directe sera écrasée ou entraînera des erreurs de rapprochement.

Pour résoudre les problèmes liés aux VM bloquées dans un état en attente, consultez Résoudre les problèmes liés aux machines virtuelles bloquées dans l'état "En attente".

Surveiller les mises à niveau de Distributed Cloud connecté

Surveillez la progression et l'état des mises à niveau logicielles de Distributed Cloud connecté à l'aide des métriques Cloud Monitoring et des commandes gcloud. Les mises à niveau sont planifiées et exécutées par Google. La surveillance est strictement destinée à la visibilité et à la planification de la migration des charges de travail.

Pour obtenir des instructions détaillées sur la façon de vérifier si une mise à niveau est en cours, de surveiller son état et de résoudre les problèmes liés aux mises à niveau ayant échoué, consultez Résoudre les problèmes liés aux mises à niveau logicielles.

Surveiller l'état du stockage local

Distributed Cloud connecté surveille en permanence l'état de ses périphériques de stockage et alerte Google lorsqu'un lecteur physique doit être remplacé. Google travaille avec vous pour planifier une visite et remplacer le lecteur défaillant. Vous pouvez surveiller l'état de votre stockage à l'aide d'alertes de condition Kubernetes, telles que DiskPressure.

Surveiller l'état du stockage système

Vous pouvez surveiller l'état du stockage système Distributed Cloud connecté à l'aide de l'une des méthodes suivantes :

  • Prometheus avec Kube State Metrics (PromQL) Déployez et gérez Kube State Metrics dans votre cluster pour exposer les métriques de condition Kubernetes.

  • Métriques Cloud Monitoring Créez des règles d'alerte basées sur les métriques au niveau de l'hôte exportées vers Cloud Monitoring.

Surveiller l'état du stockage système avec Prometheus

Pour surveiller l'état du stockage système avec Prometheus et Kube State Metrics (PromQL), configurez les alertes suivantes :

  1. Alerte immédiate lorsqu'une condition de nœud passe à l'état DiskPressure :

    kube_node_status_condition{condition="DiskPressure",status="true"} == 1
    
  2. Alerte proactive avant que les seuils d'éviction ne soient dépassés en vérifiant quand l'utilisation du disque dépasse un seuil opérationnel :

    (1 - (node_filesystem_avail_bytes{mountpoint="/mnt/shared_lpvs"} / node_filesystem_size_bytes{mountpoint="/mnt/shared_lpvs"})) > THRESHOLD
    

    Remplacez THRESHOLD par le seuil opérationnel cible dans la plage 0.00 ~ 1.00. Google recommande de définir cette valeur sur 0.85.

Surveiller l'état du stockage système avec Cloud Monitoring

Pour surveiller l'état du stockage système avec les métriques Cloud Monitoring, créez une règle d'alerte avec les paramètres suivants :

  • Métrique : edgecontainer.googleapis.com/machine/disk/utilization
  • Portée : cette métrique indique spécifiquement l'utilisation du disque du système de fichiers de la partition système locale du nœud (/dev/mapper/shared_lpvs_encrypted).
  • Seuil : configurez un seuil d'alerte lorsque l'utilisation du disque est supérieure à 85%. Cela détectera la saturation du disque système avant qu'un événement DiskPressure de nœud matériel ne se produise.

Surveiller l'état du stockage des charges de travail

Vous pouvez surveiller l'état du stockage des charges de travail à l'aide des métriques de volume Kubelet ou directement à l'aide de la télémétrie au niveau de l'application, en fonction du mode de volume utilisé par la charge de travail.

  • Mode de volume Filesystem Vous pouvez surveiller les volumes du système de fichiers à l'aide de Prometheus en récupérant les métriques de volume Kubelet suivantes :

    • kubelet_volume_stats_capacity_bytes
    • kubelet_volume_stats_available_bytes
    • kubelet_volume_stats_used_bytes
    • kubelet_volume_stats_inodes_used
    • kubelet_volume_stats_inodes_free
  • Mode de volume Block Les volumes de blocs bruts sont invisibles pour Kubelet. Pour surveiller leur état, vous devez utiliser des métriques au niveau de l'application ou de Symcloud Storage.

Surveillance multicluster

Si vous gérez de nombreux clusters Distributed Cloud connecté, nous vous recommandons d'utiliser Cloud Monitoring pour agréger et filtrer les métriques.

  • Utiliser des libellés de ressources : les métriques exportées vers Cloud Monitoring incluent des libellés qui identifient la source. Les libellés disponibles dépendent du type de ressource :

    • Pour les métriques de cluster et de conteneur, telles que k8s_container, les libellés clés incluent les valeurs suivantes :

      • project_id : le Google Cloud projet hébergeant le cluster.
      • location : La Google Cloud région dans laquelle le cluster est enregistré.
      • cluster_name : nom du cluster.
    • Pour les métriques matérielles, telles que edgecontainer.googleapis.com/machine, les libellés clés incluent les valeurs suivantes :

      • resource_container : le Google Cloud projet associé au matériel.
      • location : La Google Cloud région dans laquelle la zone Distributed Cloud connecté est enregistrée.
      • machine_id : identifiant de la machine.

      Les métriques matérielles n'incluent pas directement de libellé cluster_name.

  • Créer des tableaux de bord personnalisés : créez des tableaux de bord qui affichent les indicateurs clés de l'état de santé de l'ensemble de votre parc. Les indicateurs clés de l'état de santé incluent la connectivité, l'état des VM et l'utilisation des ressources. Pour afficher les données de plusieurs clusters dans un seul graphique, utilisez des caractères génériques ou des opérations de regroupement.

  • Configurer des alertes multicluster : configurez des règles d'alerte qui s'appliquent à plusieurs clusters. Par exemple, vous pouvez créer une alerte qui se déclenche si une machine d'un cluster perd sa connectivité.

Stratégie d'alerte

La surveillance et la maintenance de Distributed Cloud connecté sont une responsabilité partagée. Cette section explique les alertes de Google et comment configurer vos propres règles d'alerte.

Alertes de Google

Google surveille en permanence l'infrastructure sous-jacente. Il prend des mesures et vous avertit si nécessaire dans les situations suivantes :

  • Défaillances matérielles : défaillances de l'alimentation, des ventilateurs, surchauffe, ou défaillances de disque, par exemple lorsqu'un disque atteint son seuil de rechange ou sa fin de vie utile. Google surveille en permanence l'état de ses périphériques de stockage internes et déclenche un remplacement automatique en cas de défaillance d'un périphérique de stockage.
  • Problèmes de connectivité : perte totale de connexion entre la zone Distributed Cloud connecté et Google Cloud.
  • État du plan de contrôle : défaillances dans le plan de contrôle Kubernetes ou les services système gérés par Google.
  • Échecs de mise à niveau : processus de mise à niveau automatisés qui se bloquent ou échouent.

Configurer des alertes

Configurez vos propres règles d'alerte dans Cloud Monitoring ou dans Prometheus pour les problèmes affectant vos charges de travail ou votre environnement local.

Vous pouvez configurer des alertes pour les problèmes suivants :

Problème Description Système de surveillance Détails
Temps d'arrêt des charges de travail Échec du démarrage des pods ou des VM, ou boucle de plantage Prometheus Pour les charges de travail de conteneur, créez des alertes sur kube_pod_status_phase afin de détecter les pods dans les phases Failed ou Unknown. Vous pouvez également alerter sur kube_pod_container_status_waiting_reason lorsqu'il est égal à CrashLoopBackOff ou ImagePullBackOff.
Cloud Monitoring Pour les charges de travail de VM exécutées dans des pods, configurez des alertes à l'aide des métriques de conteneur Kubernetes standards dans Cloud Monitoring afin de suivre l'état des pods virt-launcher.
Épuisement des ressources des charges de travail Utilisation du disque approchant la capacité maximale, ou utilisation élevée de la mémoire ou du processeur sur les charges de travail Prometheus Pour les charges de travail de conteneur, définissez des alertes de seuil sur container_cpu_usage_seconds_total et container_memory_working_set_bytes (à partir de cAdvisor) afin d'identifier les pods approchant leurs limites de ressources.
Cloud Monitoring Pour le stockage de la machine, surveillez la métrique d'utilisation du disque de la machine edgecontainer.googleapis.com/machine/disk/utilization afin de détecter quand le stockage du nœud approche de sa capacité maximale.
Problèmes de réseau local Perte d'interface réseau sur les machines Cloud Monitoring Vérifiez si la métrique d'activité du réseau de la machine edgecontainer.googleapis.com/machine/network/up est false.
Perte de connectivité Internet Cloud Monitoring Vérifiez si la métrique de connectivité réseau edgecontainer.googleapis.com/machine/network/connectivity est false.
Redémarrages de la machine Redémarrages ou arrêts inattendus de la machine Cloud Monitoring Configurez des alertes avec les métriques edgecontainer.googleapis.com/machine/uptime et edgecontainer.googleapis.com/machine/restart_count. Pour en savoir plus, consultez Résoudre les problèmes liés aux redémarrages de la machine.
Épuisement du stockage système Espace de stockage système insuffisant Cloud Monitoring Configurez des alertes avec la métrique edgecontainer.googleapis.com/machine/disk/utilization. Pour en savoir plus, consultez Surveiller l'état du stockage système.

Le matériel Distributed Cloud connecté est géré par Google. Vous n'avez pas d'accès SSH aux machines ni de contrôle sur le système d'exploitation hôte. Si des alertes basées sur des métriques au niveau de la machine se déclenchent, telles que la connectivité réseau ou les redémarrages, vos actions sont limitées à la vérification de l'alimentation physique, du câblage et des configurations du réseau local et du pare-feu, ou à l'escalade du problème auprès de l'assistance Google.