Ce document présente 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, OS Login 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 à
20250901.00disposent 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 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 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 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, appelés extensions.
Composants clés
Le schéma suivant montre les principaux composants 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 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é de l'agent invité.
Extensions (plug-ins facultatifs) : vous pouvez provisionner ces extensions pour les intégrer à d'autres servicesGoogle Cloud afin d'effectuer des tâches telles que :
- Surveillance et journalisation : activez l'agent Ops pour collecter les métriques et les 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 : permet à l'agent Agent for Compute Workloads 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 for Compute Workloads.
- 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 Google Cloud géré s'exécute sur l'infrastructure de backend de Google. 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'agent invité 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. En voici quelques exemples :
- 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 de l'OS pour appliquer des limites de ressources aux plug-ins, ce qui empêche un plug-in donné de consommer trop de CPU 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 extensions dont vous n'avez pas besoin pour sécuriser ou optimiser votre instance.
- Réduction de la surcharge pour les extensions : le gestionnaire d'agent invité gère automatiquement l'installation et les mises à jour des extensions, ce qui réduit l'effort manuel nécessaire pour les maintenir à jour.
points de terminaison de l'API
L'agent invité communique avec plusieurs API et points de terminaison Google pour fonctionner. Si vous avez des règles de pare-feu spécifiques ou si vous utilisez VPC Service Controls et que vous vous appuyez sur des fonctionnalités d'agent qui l'utilisent, assurez-vous que vos instances peuvent accéder aux points de terminaison correspondants :
- Serveur de métadonnées (
metadata.google.internal) : l' agent invité s'appuie sur le serveur de métadonnées pour récupérer les métadonnées d'instance et de projet, telles que les clés SSH et les configurations réseau, afin de configurer l'instance. Pour en savoir plus, consultez Fonctionnalités de base et Points de terminaison du serveur de métadonnées. - Cloud Storage (
storage.googleapis.com) : l'agent invité peut télécharger des scripts de métadonnées à partir de Cloud Storage si les métadonnées de votre instance fournissent une URL pointant vers un bucket Cloud Storage. Pour en savoir plus, consultez Exécution de scripts de métadonnées et Points de terminaison de requêtes dans la documentation Cloud Storage. - VM Extension Manager (
*.agentcommunication.googleapis.com) : le gestionnaire de l'agent invité communique avec le service de communication de l'agent (ACS) pour gérer le cycle de vie des extensions et générer des métriques. Pour en savoir plus, consultez VM Extension Manager. - Cloud Logging (
logging.googleapis.com) : par défaut, l'agent invité est activé pour les journaux Cloud Logging. Pour en savoir plus, consultez la présentation de l'API Cloud Logging.
Pour obtenir la liste complète des points de terminaison régionaux, consultez Points de terminaison de service régionaux.
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 |
|---|---|---|
| Responsable des 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 de scripts 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\agent\GCEWindowsAgent.exe |
| Exécuteur de scripts 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 du daemon de l'agent invité
Les tableaux suivants listent 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 sur Windows | État |
|---|---|---|---|
| Responsable des 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 des certificats 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 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.
Voici les composants qui permettent cette compatibilité :
- 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é de l'exécuteur de scripts de métadonnées : ce package garantit que l'exécuteur de scripts approprié est utilisé, selon que l'agent monolithique ou l'agent 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 veillant à ce que les clés appropriées soient 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 de scripts 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
- Pour en savoir plus sur les fonctions principales du plug-in, consultez Fonctionnalité de l'agent invité.