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 la section 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 la section 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 la section 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 manquait d'isolation de l'interface et des composants. 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 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 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 aux services, 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 de l'instance et du projet.
Vous ne pouvez pas désactiver le plug-in principal.
Pour en savoir plus sur les fonctions principales de l'agent invité, consultez la section 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 : permet à l'agent Ops de 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 : permet à l'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 pour les charges de travail Compute.
- Optimisation des charges de travail : permet à l'agent pour SAP 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 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'agents invités facilite la communication entre le plug-in principal et VM Extension Manager. La gestion du cycle de vie des extensions inclut 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 seul plug-in 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 des frais généraux 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.
points de terminaison de l'API
L'agent invité communique avec plusieurs API et points de terminaison Google pour fonctionner. Si vous disposez de règles de pare-feu spécifiques ou si vous utilisez les VPC Service Controls et que vous vous appuyez sur une fonctionnalité d'agent qui l'utilise, assurez-vous que vos instances peuvent atteindre les 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 de l'instance et du 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 d'agents invités communique avec l'Agent Communication Service (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, Cloud Logging est activé pour les journaux dans l'agent invité. Pour en savoir plus, consultez 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 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'agent invité monolithique précédent 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 du plug-in principal, consultez la section Fonctionnalité de l'agent invité.