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 les scripts, les daemons et les 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é, 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é 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 à la version
20250901.00comportent 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 en parallèle de chaque instance Compute Engine. Pour en savoir plus sur le serveur de métadonnées, consultez Métadonnées de VM.L'agent invité interroge le serveur de métadonnées de manière prolongée 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 ne disposait pas d'isolation d'interface ni de composant. Les modifications ou les introductions de fonctionnalités dans une zone de l'agent affectent l'ensemble du système simultanément. Ce modèle rend l'ajout de fonctionnalités et la couverture des tests difficiles.
Architecture basée sur des 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 des 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 facultatifs spécifiques à un service, appelés extensions.
Composants clés
Le schéma suivant montre les composants clés de l'agent invité et leurs interactions.
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 activer la communication.
- Accès SSH : gère les clés SSH de l'utilisateur pour autoriser les connexions sécurisées à votre instance.
- Accès aux métadonnées : fournit un chemin d'accès à l'instance pour 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é de l'agent invité.
Extensions (plug-ins facultatifs) : vous pouvez provisionner ces extensions pour les intégrer à d'autres Google Cloud services afin d'effectuer des tâches telles que les suivantes :
- Surveillance et journalisation : activez l'agent Ops pour collecter des métriques et des journaux pour Cloud Monitoring. Pour en savoir plus, consultez Installer et gérer l'agent Ops à l'aide des règles de VM Extension Manager.
- Gestion des charges de travail : activez l'Agent for Compute Workloads afin de collecter des informations de configuration et d'exécution à partir de vos charges de travail pour analyse. Pour en savoir plus, consultez Présentation de l'agent pour les charges de travail Compute.
- Optimisation des charges de travail : activez l'agent pour SAP afin de prendre en charge vos charges de travail SAP exécutées sur Google Cloud. Pour en savoir plus, consultez Installer et gérer l'agent pour SAP sur un parc de VM.
Pour en savoir plus sur l'installation et la gestion de ces extensions, consultez VM Extension Manager.
VM Extension Manager : ce service géré s'exécute sur l'infrastructure backend de Google. Google Cloud VM Extension Manager gère le cycle de vie des extensions, y compris leur installation, leurs mises à jour et leur configuration, en communiquant avec le gestionnaire d'agents invités 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'agents invités facilite la communication entre le plug-in principal et VM Extension Manager. La gestion du cycle de vie des extensions comprend les éléments suivants :
- Installation et mises à jour : le gestionnaire d'agents invités installe, démarre, arrête et configure les extensions en fonction des instructions de VM Extension Manager.
- Surveillance de l'état : le gestionnaire d'agents invités surveille l'état des extensions, y compris leur utilisation du processeur et de la mémoire, et renvoie ces informations à VM Extension Manager.
- Gestion des règles : utilisez les API Compute Engine pour créer des règles qui contrôlent l'installation et la gestion des versions des extensions.
Avantages
L'architecture basée sur des plug-ins offre plusieurs avantages par rapport à la conception monolithique. Ces avantages comprennent les éléments suivants :
- Isolation des plug-ins : chaque plug-in s'exécute dans un processus distinct. Par conséquent, 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 du système d'exploitation pour appliquer des limites de ressources aux plug-ins, empêchant ainsi un plug-in unique de consommer trop de processeur ou de mémoire.
- Récupération automatique en cas de plantage : le système récupère automatiquement un plantage de plug-in en arrêtant et en relançant le plug-in.
- Activation sélective : vous pouvez désactiver les extensions qui ne sont pas nécessaires, ce qui vous permet de sécuriser ou d'optimiser votre instance.
- Réduction de la surcharge pour les extensions : le gestionnaire d'agents invités gère automatiquement l'installation et les mises à jour des extensions, ce qui réduit l'effort manuel nécessaire pour les maintenir à jour.
Emplacement des binaires de l'agent invité
Les tableaux suivants répertorient 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 répertorie les chemins d'accès aux binaires de l'agent invité basés sur des plug-ins sur les instances Linux et Windows :
| Composant | Chemin d'accès sous Linux | Chemin d'accès sous Windows |
|---|---|---|
| Gestionnaire d'agents invités | /usr/bin/google_guest_agent_manager |
C:\ProgramData\Google\Compute Engine\agent\GCEWindowsAgentManager.exe |
| 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é monolithiques sur les instances Linux et Windows :
| Composant | Chemin d'accès sous Linux | Chemin d'accès sous Windows |
|---|---|---|
| Agent invité | /usr/bin/google_guest_agent |
C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgent.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 |
Services de daemon de l'agent invité
Les tableaux suivants répertorient les services de daemon de l'agent invité installés sur les instances Linux et Windows. Ces services s'exécutent en tant qu'unités systemd sous Linux et en tant que services Windows sous Windows.
| Composant | Nom du service sous Linux | Nom du service sous Windows | État |
|---|---|---|---|
| Gestionnaire d'agents invités | google-guest-agent-manager.service |
GCEAgentManager |
Activé dans tous les modes, y compris la rétrocompatibilité. |
| Agent invité | google-guest-agent.service |
GCEAgent |
Désactivé par défaut. Activé uniquement en mode de rétrocompatibilité. |
| Gestionnaire de compatibilité de l'agent invité | google-guest-compat-manager.service |
GCEWindowsCompatManager |
Activé dans tous les modes, y compris la rétrocompatibilité. |
| Actualisation du certificat de charge de travail | gce-workload-cert-refresh.timer |
N/A |
Désactivé par défaut. Activé uniquement en mode de rétrocompatibilité. |
| Scripts de démarrage | google-startup-scripts.service |
GCEStartup |
|
| Scripts d'arrêt | google-shutdown-scripts.service |
Shutdown |
|
Rétrocompatibilité
Pour assurer une transition fluide de l'ancien agent invité monolithique vers le système basé sur des plug-ins, le package d'agent invité inclut plusieurs composants conçus pour la rétrocompatibilité. Ces composants ne font pas partie de l'architecture basée sur des 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 prennent en charge cette compatibilité sont les suivants :
- Gestionnaire de compatibilité de l'agent invité : ce package gère le basculement entre l'agent basé sur des plug-ins et l'agent monolithique.
- Gestionnaire de compatibilité de l'exécuteur de script de métadonnées : ce package garantit que l'exécuteur de script approprié est utilisé, selon que l'agent monolithique ou basé sur des plug-ins est actif.
- Gestionnaire de compatibilité des clés autorisées (Windows uniquement) : ce package gère les clés SSH, en veillant à ce que les clés appropriées soient utilisées pour l'ancien ou le nouvel agent.
| Composant | Chemin d'accès sous Linux | Chemin d'accès sous 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 de 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 |
Étape suivante
- Pour en savoir plus sur les fonctions principales du plug-in, consultez Fonctionnalité de l'agent invité