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 necessari per l'esecuzione delle istanze su Compute Engine. Per maggiori informazioni, vedi 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, OS Login e l'autenticazione SSH basata sui metadati. Per saperne di più sulle funzioni principali dell'agente guest, consulta Funzionalità dell'agente guest.
Architettura dell'agente ospite
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 flessibilità, affidabilità ed estensibilità.
Architettura monolitica: gli agenti guest precedenti alla versione
20250901.00sono caratterizzati da un singolo processo unificato incentrato sulla descrizione delle istanze del server dei metadati. Il server di metadati è un server HTTP per istanza che viene eseguito insieme a ogni istanza di Compute Engine. Per ulteriori informazioni sul server dei metadati, consulta Metadati della VM.L'agente guest esegue il long polling del server di metadati e interviene in base alle modifiche dello stato. Con questa architettura, lo stato dell'agente viene condiviso in tutte le attività, come SSH e la configurazione di rete. Questo approccio monolitico non prevedeva l'isolamento di interfacce e componenti. Le modifiche o l'introduzione di funzionalità in un'area dell'agente interessano l'intero sistema contemporaneamente. 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 dei metadati e, come indicato da un gestore centrale, apportare le modifiche necessarie. Questo approccio modulare garantisce che un arresto anomalo in 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à di base dai plug-in opzionali e specifici del servizio, denominati estensioni.
Componenti chiave
Il seguente diagramma mostra i componenti chiave dell'agente guest e le relative interazioni.
Plug-in di base: questo plug-in incapsula la funzionalità dell'agente guest originale. Esegue le attività essenziali necessarie per l'esecuzione dell'istanza su Cloud de Confiance by S3NS. Sono incluse attività come le seguenti:
- Configurazione di rete: configura l'interfaccia di rete principale per abilitare la comunicazione.
- Accesso SSH: gestisce le chiavi SSH dell'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 Cloud de Confiance by S3NS servizi per svolgere attività come:
- Monitoraggio e logging: abilita l'Ops Agent per raccogliere metriche e log per Cloud Monitoring. Per saperne di più, consulta Installare e gestire Ops Agent utilizzando le policy del gestore di estensioni VM.
- Gestione dei workload: abilita l'Agent for Compute Workloads a raccogliere informazioni sulla configurazione e sul runtime dai tuoi workload per l'analisi. Per saperne di più, consulta la panoramica di Agent for Compute Workloads.
- Ottimizzazione del workload: abilita l'agente per SAP per supportare i tuoi workload SAP in esecuzione su Cloud de Confiance by S3NS. Per ulteriori informazioni, consulta Installare e gestire l'agente per SAP su un parco di VM.
Per saperne di più sull'installazione e sulla gestione di queste estensioni, consulta Gestore di estensioni VM.
Gestore di estensioni VM: questo servizio Cloud de Confiance by S3NS gestito viene eseguito sull'infrastruttura di backend di Google. Il gestore di estensioni VM gestisce il ciclo di vita delle estensioni, tra cui l'installazione, gli aggiornamenti e la configurazione, comunicando con l'agente guest manager nell'istanza.
Gestore agenti ospiti: questo processo centrale avvia, arresta e monitora lo stato di tutti i plug-in. Il gestore di agenti 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: l'agente guest manager monitora l'integrità e lo stato delle estensioni, incluso l'utilizzo della CPU e della 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:
- 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 funzionalità a livello di sistema operativo per applicare limiti di risorse ai plug-in, impedendo a un singolo plug-in di consumare CPU o memoria eccessive.
- Ripristino automatico in caso di arresto anomalo: il sistema si riprende automaticamente da un arresto anomalo del plug-in arrestandolo e riavviandolo.
- Attivazione selettiva: puoi disattivare le estensioni non necessarie, il che ti consente di proteggere o ottimizzare la tua istanza.
- Overhead ridotto per le estensioni: il gestore degli agenti guest gestisce automaticamente l'installazione e gli aggiornamenti delle estensioni, riducendo lo sforzo manuale necessario per mantenerle aggiornate.
Endpoint API
Per funzionare, l'agente guest comunica con diverse API e endpoint di Google. Se hai regole firewall specifiche o utilizzi i Controlli di servizio VPC e ti affidi alla 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 ed Endpoint del server dei 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 degli script dei metadati ed Endpoint di richiesta nella documentazione di Cloud Storage. - VM Extension Manager (
*.agentcommunication.googleapis.com): il gestore dell'agente guest comunica con Agent Communication Service (ACS) per gestire il ciclo di vita delle estensioni e segnalare le metriche. Per ulteriori informazioni, 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 la panoramica dell'API Cloud Logging.
Per un elenco completo degli endpoint regionali, consulta Endpoint di servizio regionali.
Posizione dei file binari dell'agente guest
Le tabelle seguenti elencano i percorsi dei file per i diversi file binari dell'agente guest nelle istanze Linux e Windows, a seconda dell'architettura.
Binari degli agenti basati su plug-in
Questa tabella elenca i percorsi dei file per i file binari dell'agente guest basato su plug-in su istanze Linux e Windows:
| Componente | Percorso su Linux | Percorso su Windows |
|---|---|---|
| Gestore degli agenti ospiti | /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 |
| Runner di script di metadati | /usr/bin/gce_metadata_script_runner |
C:\Program Files\Google\Compute Engine\agent\GCEMetadataScriptRunner.exe |
Binari dell'agente monolitico
La tabella seguente elenca i percorsi dei file per i binari dell'agente guest monolitico su istanze Linux e Windows:
| Componente | Percorso su Linux | Percorso su Windows |
|---|---|---|
| Agente ospite | /usr/bin/google_guest_agent |
C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgent.exe |
| Runner 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 del 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 |
|---|---|---|---|
| Guest agent manager | google-guest-agent-manager.service |
GCEAgentManager |
Attivato in tutte le modalità, inclusa la compatibilità con le versioni precedenti. |
| Agente ospite | google-guest-agent.service |
GCEAgent |
Disabilitato per impostazione predefinita. Abilitato solo in modalità di compatibilità con le versioni precedenti. |
| Gestore della compatibilità degli agenti ospiti | google-guest-compat-manager.service |
GCEWindowsCompatManager |
Attivato 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 ospite monolitico precedente al sistema basato su plug-in, il pacchetto dell'agente ospite 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:
- Gestore della compatibilità dell'agente ospite: questo pacchetto gestisce il passaggio dall'agente basato su plug-in all'agente monolitico.
- Gestore della compatibilità dell'esecutore di script dei metadati: questo pacchetto garantisce che venga utilizzato l'esecutore di script corretto, a seconda che sia attivo l'agente monolitico o basato su plug-in.
- Gestore della compatibilità delle chiavi autorizzate (solo Windows): questo pacchetto gestisce le chiavi SSH, assicurando che vengano utilizzate le chiavi corrette per l'agente precedente o per quello nuovo.
| Componente | Percorso su Linux | Percorso su Windows |
|---|---|---|
| Gestore della compatibilità degli agenti ospiti | /usr/bin/google_guest_compat_manager |
C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe |
| Gestore della compatibilità dell'esecutore di script dei 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 di base del plug-in, consulta Funzionalità dell'agente ospite.