À propos de l'agent invité


Ce document fournit une présentation de l'architecture de l'agent invité. L'agent invité est un composant essentiel de l'environnement invité. L'environnement invité contient des scripts, des daemons et des binaires dont les instances ont besoin pour s'exécuter sur Compute Engine. Pour en savoir plus, consultez Environnement invité.

L'agent invité configure les services et définit les configurations minimales pour des fonctionnalités telles que l'exécution de scripts d'instantanés, le basculement Windows, la connexion au système d'exploitation et l'authentification SSH basée sur les métadonnées. Pour en savoir plus sur les fonctions principales de l'agent invité, consultez Fonctionnalités de l'agent invité.

Architecture de l'agent invité

À partir de la version 20250901.00, l'architecture de l'agent invité passe d'une conception monolithique à un système moderne basé sur des plug-ins. Cette évolution améliore la flexibilité, la fiabilité et l'extensibilité.

  • Architecture monolithique : les agents invités antérieurs à 20250901.00 disposent d'un processus unique et unifié centré sur la description des instances par le serveur de métadonnées. Le serveur de métadonnées est un serveur HTTP par instance qui s'exécute avec chaque instance Compute Engine. Pour en savoir plus sur le serveur de métadonnées, consultez la section Métadonnées de VM.

    L'agent invité interroge le serveur de métadonnées par le biais d'un long polling et prend des mesures en fonction des changements d'état. Avec cette architecture, l'état de l'agent est partagé entre toutes les tâches, telles que la configuration SSH et réseau. Cette approche monolithique manquait d'isolation des interfaces et des composants. Les modifications ou les nouvelles fonctionnalités apportées à une zone de l'agent affectent l'ensemble du système simultanément. Ce modèle rend difficile l'ajout de fonctionnalités et la couverture des tests.

  • Architecture basée sur les plug-ins : à partir de la version 20250901.00, l'agent invité est divisé en plug-ins distincts et indépendants gérés par un gestionnaire central. Chaque plug-in peut interagir avec le serveur de métadonnées et, selon les instructions d'un gestionnaire central, apporter les modifications nécessaires. Cette approche modulaire garantit qu'un plantage dans un plug-in n'affecte pas l'agent principal ni les autres plug-ins.

Architecture basée sur les plug-ins

Cette architecture est basée sur un gestionnaire central qui contrôle différents plug-ins, en séparant les fonctionnalités de base des plug-ins optionnels spécifiques aux services.

Composants clés

Le diagramme suivant montre les principaux composants de l'agent invité et leurs interactions.

Un gestionnaire d'agents invités centralisé contrôle un plug-in principal et des plug-ins facultatifs.
    Le gestionnaire d'agent invité communique avec le plan de contrôle de l'agent sur le backend de Google pour gérer les plug-ins facultatifs.
Figure 1. Architecture de l'agent invité
  • Plug-in principal : ce plug-in encapsule la fonctionnalité de l'agent invité d'origine. Il effectue les tâches essentielles dont votre instance a besoin pour s'exécuter sur Google Cloud. Voici quelques exemples de tâches :

    • Configuration réseau : configure l'interface réseau principale pour permettre la communication.
    • Accès SSH : gère les clés SSH des utilisateurs pour permettre des connexions sécurisées à votre instance.
    • Accès aux métadonnées : permet à l'instance d'accéder aux métadonnées d'instance et de projet.

    Vous ne pouvez pas désactiver le plug-in principal.

    Pour en savoir plus sur les fonctions principales de l'agent invité, consultez Fonctionnalités de l'agent invité.

  • Plug-ins facultatifs : vous pouvez provisionner ces plug-ins pour les intégrer à d'autres servicesGoogle Cloud afin d'effectuer des tâches telles que :

    • Surveillance et journalisation : activez le plug-in de l'agent Ops pour collecter les métriques et les journaux pour Cloud Monitoring.
    • Gestion des charges de travail : activez le plug-in Workload Manager pour collecter des informations de configuration et d'exécution à partir de vos charges de travail à des fins d'analyse.
    • Optimisation des charges de travail : activez le plug-in de l'agent SAP pour prendre en charge vos charges de travail SAP exécutées sur Google Cloud.

    Vous pouvez activer ou désactiver les plug-ins facultatifs selon vos besoins.

  • Plan de contrôle de l'agent : ce service Google Cloud géré s'exécute sur l'infrastructure de backend de Google. Le plan de contrôle gère le cycle de vie des plug-ins facultatifs, y compris leur installation, leurs mises à jour et leur configuration, en communiquant avec le gestionnaire d'agent invité sur l'instance.

  • Gestionnaire d'agents invités : ce processus central démarre, arrête et surveille l'état de tous les plug-ins. Le gestionnaire d'agent invité facilite la communication entre le plug-in principal et le plan de contrôle de l'agent. La gestion du cycle de vie des plug-ins facultatifs inclut les éléments suivants :

    • Installation et mises à jour : le gestionnaire d'agents invités installe, démarre, arrête et configure les plug-ins facultatifs en fonction des instructions du plan de contrôle de l'agent.
    • Surveillance de l'état : le gestionnaire d'agent invité surveille l'état des plug-ins facultatifs, y compris leur utilisation du processeur et de la mémoire, et renvoie ces informations au plan de contrôle de l'agent.
    • Gestion des règles : utilisez les API Compute Engine pour créer des règles qui contrôlent l'installation et le contrôle des versions des plug-ins facultatifs.

Avantages

L'architecture basée sur les plug-ins offre plusieurs avantages par rapport à la conception monolithique. En voici quelques exemples :

  • Isolation des plug-ins : chaque plug-in s'exécute dans un processus distinct. Ainsi, un plantage dans l'un d'eux n'affecte pas l'agent principal ni les autres plug-ins.
  • Protection des ressources : l'agent invité utilise des fonctionnalités au niveau de l'OS pour appliquer des limites de ressources aux plug-ins, ce qui empêche un plug-in donné de consommer trop de processeur ou de mémoire.
  • Récupération automatique en cas de plantage : le système récupère automatiquement en cas de plantage d'un plug-in en l'arrêtant et en le relançant.
  • Activation sélective : vous pouvez désactiver les plug-ins facultatifs dont vous n'avez pas besoin, ce qui vous permet de sécuriser ou d'optimiser votre instance.
  • Réduction de la surcharge pour les plug-ins facultatifs : le gestionnaire d'agents invités gère automatiquement l'installation et les mises à jour des plug-ins facultatifs, ce qui réduit l'effort manuel nécessaire pour les maintenir à jour.

Emplacement des binaires de l'agent invité

Les tableaux suivants listent les chemins d'accès aux différents binaires de l'agent invité sur les instances Linux et Windows, en fonction de l'architecture.

Binaires d'agent basés sur des plug-ins

Ce tableau liste les chemins d'accès aux binaires de l'agent invité basé sur un plug-in sur les instances Linux et Windows :

Composant Chemin d'accès sur Linux Chemin d'accès sur Windows
Gestionnaire d'agents invités /usr/bin/google_guest_agent_manager C:\ProgramData\Google\Compute Engine\google-guest-agent
Binaire du plug-in principal /usr/lib/google/guest_agent/core_plugin C:\Program Files\Google\Compute Engine\agent\CorePlugin.exe
Exécuteur du script de métadonnées /usr/bin/gce_metadata_script_runner C:\Program Files\Google\Compute Engine\agent\GCEMetadataScriptRunner.exe

Binaires d'agent monolithiques

Le tableau suivant répertorie les chemins d'accès aux binaires de l'agent invité monolithique sur les instances Linux et Windows :

Composant Chemin d'accès sur Linux Chemin d'accès sur Windows
Agent invité /usr/bin/google_guest_agent C:\Program Files\Google\Compute Engine\google_guest_agent.exe
Exécuteur du script de métadonnées /usr/bin/google_metadata_script_runner C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe
Clés autorisées Non applicable C:\Program Files\Google\Compute Engine\agent\GCEAuthorizedKeys.exe

Rétrocompatibilité

Pour assurer une transition fluide de l'ancien agent invité monolithique vers le système basé sur les plug-ins, le package de l'agent invité inclut plusieurs composants conçus pour la rétrocompatibilité. Ces composants ne font pas partie de l'architecture basée sur les plug-ins et ne s'activent que si vous choisissez manuellement de revenir à l'agent monolithique en définissant l'attribut de métadonnées enable-guest-agent-core-plugin sur false.

Les composants qui permettent cette compatibilité sont les suivants :

  • Gestionnaire de compatibilité de l'agent invité : ce package gère le passage de l'agent basé sur un plug-in à l'agent monolithique.
  • Gestionnaire de compatibilité du script runner de métadonnées : ce package garantit que le script runner approprié est utilisé, selon que l'agent monolithique ou basé sur un plug-in est actif.
  • Gestionnaire de compatibilité des clés autorisées (Windows uniquement) : ce package gère les clés SSH, en s'assurant que les clés appropriées sont utilisées pour l'ancien ou le nouvel agent.
Composant Chemin d'accès sur Linux Chemin d'accès sur Windows
Gestionnaire de compatibilité de l'agent invité /usr/bin/google_guest_compat_manager C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe
Gestionnaire de compatibilité de l'exécuteur du script de métadonnées /usr/bin/metadata_script_runner_compat C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe
Gestionnaire de compatibilité des clés autorisées Non applicable C:\Program Files\Google\Compute Engine\agent\GCEWindowsAuthorizedKeysCompat.exe

Étapes suivantes