Questo documento fornisce una panoramica dell'architettura dell'agente guest. L'agente guest è un componente fondamentale dell'ambiente guest. L'ambiente guest contiene script, daemon e file binari di cui le istanze hanno bisogno per essere eseguite su Compute Engine. Per saperne di più, consulta Ambiente guest.
L'agente guest configura i servizi e definisce le configurazioni minime per funzionalità come l'esecuzione di script di snapshot, il failover di Windows, l'accesso al sistema operativo e l'autenticazione SSH basata sui metadati. Per saperne di più sulle funzioni principali di l'agente guest, consulta Funzionalità dell'agente guest.
Architettura dell'agente guest
A partire dalla versione 20250901.00, l'architettura dell'agente guest viene aggiornata da un design monolitico a un sistema moderno basato su plug-in. Questa evoluzione migliora la flessibilità, l'affidabilità e l'estensibilità.
Architettura monolitica: gli agenti guest precedenti alla versione
20250901.00presentano un singolo processo unificato incentrato sulla descrizione delle istanze del server di metadati. Il server di metadati è un server HTTP per istanza che viene eseguito insieme a ogni istanza Compute Engine. Per saperne di più sul server di metadati, consulta Metadati delle VM.L'agente guest esegue il long polling del server di metadati e intraprende azioni in base alle modifiche dello stato. Con questa architettura, lo stato dell'agente viene condiviso tra tutte le attività, come la configurazione SSH e di rete. Questo approccio monolitico non prevedeva l'isolamento dell'interfaccia e dei componenti. Le modifiche o le introduzioni di funzionalità in un'area dell'agente influiscono contemporaneamente sull'intero sistema. Questo pattern rende difficile l'aggiunta di funzionalità e la copertura dei test.
Architettura basata su plug-in: a partire dalla versione
20250901.00, l' agente guest è suddiviso in plug-in distinti e indipendenti gestiti da un gestore centrale. Ogni plug-in può interagire con il server di metadati e, come indicato da un gestore centrale, apportare le modifiche necessarie. Questo approccio modulare garantisce che un arresto anomalo di un plug-in non influisca sull'agente principale o su altri plug-in.
L'architettura basata su plug-in
Questa architettura è basata su un gestore centrale che controlla vari plug-in, separando le funzionalità principali dai plug-in facoltativi specifici del servizio, denominati estensioni.
Componenti chiave
Il seguente diagramma mostra i componenti chiave dell'agente guest e le relative interazioni.
Plug-in principale: questo plug-in incapsula la funzionalità dell'agente guest originale. Esegue le attività essenziali necessarie per l'esecuzione dell'istanza su Google Cloud. Queste includono attività come le seguenti:
- Configurazione di rete: configura l'interfaccia di rete principale per abilitare la comunicazione.
- Accesso SSH: gestisce le chiavi SSH utente per consentire connessioni sicure all'istanza.
- Accesso ai metadati: fornisce un percorso per l'istanza per accedere ai metadati dell'istanza e del progetto.
Non puoi disattivare il plug-in principale.
Per saperne di più sulle funzioni principali dell'agente guest, consulta Funzionalità dell'agente guest.
Estensioni (plug-in facoltativi): puoi eseguire il provisioning di queste estensioni per integrarle con altri Google Cloud servizi per eseguire attività come:
- Monitoraggio e logging: abilita Ops Agent per raccogliere metriche e log per Cloud Monitoring. Per saperne di più, consulta Installare e gestire Ops Agent utilizzando le policy di gestore di estensioni VM.
- Gestione dei workload: abilita Agent for Compute Workloads per raccogliere informazioni di configurazione e runtime dai workload per l'analisi. Per saperne di più, consulta Panoramica di Agent for Compute Workloads.
- Ottimizzazione dei workload: abilita Agent for SAP per supportare i workload SAP in esecuzione su Google Cloud. Per saperne di più, consulta Installare e gestire Agent for SAP su un parco VM.
Per saperne di più sull'installazione e la gestione di queste estensioni, consulta gestore di estensioni VM.
Gestore di estensioni VM: questo servizio gestito Google Cloud viene eseguito sull'infrastruttura di backend di Google. Il gestore di estensioni VM gestisce il ciclo di vita delle estensioni, inclusi l'installazione, gli aggiornamenti e la configurazione, comunicando con il gestore dell'agente guest sull'istanza.
Gestore dell'agente guest: questo processo centrale avvia, arresta e monitora lo stato di tutti i plug-in. Il gestore dell'agente guest facilita la comunicazione tra il plug-in principale e il gestore di estensioni VM. La gestione del ciclo di vita delle estensioni include quanto segue:
- Installazione e aggiornamenti: il gestore dell'agente guest installa, avvia, arresta e configura le estensioni in base alle istruzioni del gestore di estensioni VM.
- Monitoraggio dello stato: il gestore dell'agente guest monitora lo stato e l'integrità delle estensioni, incluso l'utilizzo di CPU e memoria utilizzata, e segnala queste informazioni al gestore di estensioni VM.
- Gestione delle policy: utilizza le API Compute Engine per creare policy che controllano l'installazione e il controllo delle versioni delle estensioni.
Vantaggi
L'architettura basata su plug-in offre diversi vantaggi rispetto al design monolitico. Questi vantaggi includono quanto segue:
- Isolamento dei plug-in: ogni plug-in viene eseguito in un processo separato, quindi un arresto anomalo in uno non influisce sull'agente principale o su altri plug-in.
- Protezione delle risorse: l'agente guest utilizza le funzionalità a livello di sistema operativo per applicare i limiti delle risorse ai plug-in, impedendo a un singolo plug-in di consumare una quantità eccessiva di CPU o memoria.
- Ripristino automatico in caso di arresto anomalo: il sistema esegue automaticamente il ripristino in caso di arresto anomalo di un plug-in arrestando e riavviando il plug-in.
- Abilitazione selettiva: puoi disattivare le estensioni non necessarie, il che ti consente di proteggere o ottimizzare l'istanza.
- Riduzione del sovraccarico per le estensioni: il gestore dell'agente guest gestisce automaticamente l'installazione e gli aggiornamenti delle estensioni, riducendo lo sforzo manuale necessario per mantenerle aggiornate.
Endpoint API
L'agente guest comunica con diverse API di Google ed endpoint per funzionare. Se hai regole firewall specifiche o utilizzi i Controlli di servizio VPC e fai affidamento sulla funzionalità dell'agente che li utilizza, assicurati che le tue istanze possano raggiungere gli endpoint corrispondenti:
- Server di metadati (
metadata.google.internal): l'agente guest si basa sul server di metadati per recuperare i metadati dell'istanza e del progetto, come le chiavi SSH e le configurazioni di rete, per configurare l'istanza. Per saperne di più, consulta Funzionalità di base e Endpoint del server di metadati. - Cloud Storage (
storage.googleapis.com): l'agente guest potrebbe scaricare gli script di metadati da Cloud Storage se i metadati dell'istanza forniscono un URL che rimanda a un bucket Cloud Storage. Per saperne di più, consulta Esecuzione di script di metadati e Endpoint delle richieste nella documentazione di Cloud Storage. - Gestore di estensioni VM (
*.agentcommunication.googleapis.com): il gestore dell'agente guest comunica con il servizio di comunicazione dell'agente (ACS) per gestire il ciclo di vita delle estensioni e segnalare le metriche. Per saperne di più, consulta gestore di estensioni VM. - Cloud Logging (
logging.googleapis.com): per impostazione predefinita, l'agente guest ha Cloud Logging abilitato per i log. Per saperne di più, consulta Panoramica dell'API Cloud Logging.
Per un elenco completo degli endpoint regionali, consulta Endpoint dei servizi regionali.
Percorso dei file binari dell'agente guest
Le tabelle seguenti elencano i percorsi dei file per i diversi file binari dell'agente guest sulle istanze Linux e Windows, a seconda dell'architettura.
File binari dell'agente basato su plug-in
Questa tabella elenca i percorsi dei file per i file binari dell'agente guest basato su plug-in sulle istanze Linux e Windows:
| Componente | Percorso su Linux | Percorso su Windows |
|---|---|---|
| Gestore dell'agente guest | /usr/bin/google_guest_agent_manager |
C:\ProgramData\Google\Compute Engine\agent\GCEWindowsAgentManager.exe |
| File binario del plug-in principale | /usr/lib/google/guest_agent/core_plugin |
C:\Program Files\Google\Compute Engine\agent\CorePlugin.exe |
| Esecutore di script di metadati | /usr/bin/gce_metadata_script_runner |
C:\Program Files\Google\Compute Engine\agent\GCEMetadataScriptRunner.exe |
File binari dell'agente monolitico
La tabella seguente elenca i percorsi dei file per i file binari dell'agente guest monolitico sulle istanze Linux e Windows:
| Componente | Percorso su Linux | Percorso su Windows |
|---|---|---|
| Agente guest | /usr/bin/google_guest_agent |
C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgent.exe |
| Esecutore di script di metadati | /usr/bin/google_metadata_script_runner |
C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe |
| Chiavi autorizzate | Non applicabile | C:\Program Files\Google\Compute Engine\agent\GCEAuthorizedKeys.exe |
Servizi daemon dell'agente guest
Le tabelle seguenti elencano i servizi daemon dell'agente guest installati sulle istanze Linux e Windows. Questi servizi vengono eseguiti come unità systemd su Linux e come servizi Windows su Windows.
| Componente | Nome del servizio su Linux | Nome del servizio su Windows | Stato |
|---|---|---|---|
| Gestore dell'agente guest | google-guest-agent-manager.service |
GCEAgentManager |
Abilitato in tutte le modalità, inclusa la compatibilità con le versioni precedenti. |
| Agente guest | google-guest-agent.service |
GCEAgent |
Disabilitato per impostazione predefinita. Abilitato solo in modalità di compatibilità con le versioni precedenti. |
| Gestore della compatibilità dell'agente guest | google-guest-compat-manager.service |
GCEWindowsCompatManager |
Abilitato in tutte le modalità, inclusa la compatibilità con le versioni precedenti. |
| Aggiornamento del certificato del workload | gce-workload-cert-refresh.timer |
N/A |
Disabilitato per impostazione predefinita. Abilitato solo in modalità di compatibilità con le versioni precedenti. |
| Script di avvio | google-startup-scripts.service |
GCEStartup |
|
| Script di arresto | google-shutdown-scripts.service |
Shutdown |
|
Compatibilità con le versioni precedenti
Per garantire una transizione senza problemi dall'agente guest monolitico precedente al sistema basato su plug-in, il pacchetto dell'agente guest include diversi componenti progettati per la compatibilità con le versioni precedenti. Questi componenti non fanno parte dell'architettura basata su plug-in e si attivano solo se scegli manualmente di ripristinare l'agente monolitico impostando l'attributo dei metadati enable-guest-agent-core-plugin su false.
I componenti che supportano questa compatibilità includono quanto segue:
- Gestore della compatibilità dell'agente guest: questo pacchetto gestisce il passaggio dall'agente basato su plug-in all'agente monolitico.
- Gestore della compatibilità dell'esecutore di script di metadati: questo pacchetto garantisce che venga utilizzato l'esecutore di script corretto, a seconda che sia attivo l'agente monolitico o quello basato su plug-in.
- Gestore della compatibilità delle chiavi autorizzate (solo Windows): questo pacchetto gestisce le chiavi SSH, assicurandosi che vengano utilizzate le chiavi corrette per l'agente precedente o quello nuovo.
| Componente | Percorso su Linux | Percorso su Windows |
|---|---|---|
| Gestore della compatibilità dell'agente guest | /usr/bin/google_guest_compat_manager |
C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe |
| Gestore della compatibilità dell'esecutore di script di metadati | /usr/bin/metadata_script_runner_compat |
C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe |
| Gestore della compatibilità delle chiavi autorizzate | Non applicabile | C:\Program Files\Google\Compute Engine\agent\GCEWindowsAuthorizedKeysCompat.exe |
Passaggi successivi
- Per saperne di più sulle funzioni del plug-in principale, consulta Funzionalità dell'agente guest.