Informationen zum Gast-Agent

Dieses Dokument bietet einen Überblick über die Gast-Agent-Architektur. Der Gast-Agent ist eine wichtige Komponente der Gastumgebung. Die Gastumgebung enthält Skripts, Daemons und Binärdateien, die Instanzen benötigen, um in Compute Engine ausgeführt zu werden. Weitere Informationen finden Sie unter Gastumgebung.

Der Gast-Agent richtet Dienste ein und definiert Mindestkonfigurationen für Funktionen wie die Ausführung von Snapshot-Skripts, Windows-Failover, OS Login und metadatenbasierte SSH-Authentifizierung. Weitere Informationen zu den Kernfunktionen des Gast-Agents finden Sie unter Funktionen des Gast-Agents.

Gast-Agent-Architektur

Ab Version 20250901.00 wird die Gast-Agent-Architektur von einem monolithischen Design zu einem modernen, pluginbasierten System aktualisiert. Diese Entwicklung verbessert die Flexibilität, Zuverlässigkeit und Erweiterbarkeit.

  • Monolithische Architektur: Gast-Agents vor 20250901.00 verwenden einen einzelnen, einheitlichen Prozess, der auf der Beschreibung von Instanzen durch den Metadatenserver basiert. Der Metadatenserver ist ein instanzspezifischer HTTP-Server, der neben jeder Compute Engine-Instanz ausgeführt wird. Weitere Informationen zum Metadatenserver finden Sie unter VM-Metadaten.

    Der Gast-Agent führt einen Long-Polling-Vorgang auf dem Metadatenserver aus und reagiert auf Zustandsänderungen. Bei dieser Architektur wird der Status des Agents für alle Aufgaben wie SSH- und Netzwerkeinrichtung freigegeben. Dieser monolithische Ansatz hatte keine Schnittstellen- und Komponentenisolation. Änderungen oder neue Funktionen in einem Bereich des Agents wirken sich gleichzeitig auf das gesamte System aus. Dieses Muster erschwert das Hinzufügen von Funktionen und die Testabdeckung.

  • Pluginbasierte Architektur: Ab Version 20250901.00 ist der Gast-Agent in separate, unabhängige Plugins unterteilt, die von einem zentralen Manager verwaltet werden. Jedes Plugin kann mit dem Metadatenserver interagieren und nimmt nach Anweisung eines zentralen Managers bei Bedarf Änderungen vor. Dieser modulare Ansatz sorgt dafür, dass ein Absturz in einem Plugin sich nicht auf den Kern-Agent oder andere Plugins auswirkt.

Die pluginbasierte Architektur

Diese Architektur basiert auf einem zentralen Manager, der verschiedene Plugins steuert und Kernfunktionen von optionalen, dienstspezifischen Plugins trennt, die als Erweiterungen bezeichnet werden.

Schlüsselkomponenten

Das folgende Diagramm zeigt die Schlüsselkomponenten des Gast-Agents und ihre Interaktionen.

Ein zentraler Gast-Agent-Manager steuert ein Core-Plug-in und Erweiterungen.
    Der Gast-Agent-Manager kommuniziert mit dem VM Extension Manager im Backend von Google, um die Erweiterungen zu verwalten.
Abbildung 1. Gast-Agent-Architektur
  • Kern-Plugin: Dieses Plugin kapselt die Funktionalität des ursprünglichen Gast-Agents. Es führt die wesentlichen Aufgaben aus, die für die Ausführung Ihrer Instanz erforderlich sind auf Google Cloud. Dazu gehören Aufgaben wie:

    • Netzwerkkonfiguration: Richtet die primäre Netzwerkschnittstelle ein, um die Kommunikation zu ermöglichen.
    • SSH-Zugriff: Verwaltet SSH-Schlüssel von Nutzern, um sichere Verbindungen zu Ihrer Instanz zu ermöglichen.
    • Metadatenzugriff: Bietet einen Pfad für die Instanz, um auf Instanz- und Projektmetadaten zuzugreifen.

    Sie können das Kern-Plugin nicht deaktivieren.

    Weitere Informationen zu den Kernfunktionen des Gast-Agents finden Sie unter Funktionen des Gast-Agents.

  • Erweiterungen (optionale Plugins): Sie können diese Erweiterungen bereitstellen, um sie in andere Google Cloud Dienste zu integrieren und Aufgaben wie die folgenden auszuführen:

    Weitere Informationen zum Installieren und Verwalten dieser Erweiterungen finden Sie unter VM Extension Manager.

  • VM Extension Manager: Dieser verwaltete Google Cloud Dienst wird in der Back-End-Infrastruktur von Google ausgeführt. VM Extension Manager verwaltet den Lebenszyklus von Erweiterungen, einschließlich Installation, Updates und Konfiguration, indem er mit dem Gast-Agent-Manager auf der Instanz kommuniziert.

  • Gast-Agent-Manager: Dieser zentrale Prozess startet, beendet und überwacht den Status aller Plugins. Der Gast-Agent-Manager erleichtert die Kommunikation zwischen dem Kern-Plugin und VM Extension Manager. Die Lebenszyklusverwaltung für Erweiterungen umfasst Folgendes:

    • Installation und Updates: Der Gast-Agent-Manager installiert, startet, beendet und konfiguriert Erweiterungen gemäß den Anweisungen von VM Extension Manager.
    • Statusüberwachung: Der Gast-Agent-Manager überwacht den Status und die Leistung von Erweiterungen, einschließlich ihrer CPU- und Arbeitsspeichernutzung, und meldet diese Informationen an VM Extension Manager zurück.
    • Richtlinienverwaltung: Verwenden Sie Compute Engine APIs, um Richtlinien zu erstellen, die die Installation und Versionsverwaltung von Erweiterungen steuern.

Vorteile

Die pluginbasierte Architektur bietet mehrere Vorteile gegenüber dem monolithischen Design. Zu diesen Vorteilen gehören:

  • Pluginisolation: Jedes Plugin wird in einem separaten Prozess ausgeführt, sodass ein Absturz in einem sich nicht auf den Kern-Agent oder andere Plugins auswirkt.
  • Ressourcenschutz: Der Gast-Agent verwendet Funktionen auf Betriebssystemebene, um Ressourcenlimits für Plugins zu erzwingen und zu verhindern, dass ein einzelnes Plugin übermäßig viel CPU oder Arbeitsspeicher verbraucht.
  • Automatische Wiederherstellung nach Absturz: Das System stellt sich automatisch nach einem Pluginabsturz wieder her, indem es das Plugin beendet und neu startet.
  • Selektive Aktivierung: Sie können nicht benötigte Erweiterungen deaktivieren, um Ihre Instanz zu schützen oder zu optimieren.
  • Geringerer Aufwand für Erweiterungen: Der Gast-Agent-Manager übernimmt automatisch die Installation und Aktualisierung von Erweiterungen, wodurch der manuelle Aufwand für die Aktualisierung reduziert wird.

API-Endpunkte

Der Gast-Agent kommuniziert mit mehreren Google APIs und Endpunkten, um zu funktionieren. Wenn Sie bestimmte Firewallregeln haben oder VPC Service Controls verwenden und auf Agent-Funktionen angewiesen sind, die diese verwenden, müssen Ihre Instanzen die entsprechenden Endpunkte erreichen können:

  • Metadatenserver (metadata.google.internal): Der Gast-Agent ruft vom Metadatenserver Instanz- und Projektmetadaten wie SSH-Schlüssel und Netzwerkkonfigurationen ab, um die Instanz einzurichten. Weitere Informationen finden Sie unter Hauptfunktion und Metadatenserver-Endpunkte.
  • Cloud Storage (storage.googleapis.com): Der Gast-Agent kann Metadatenskripts aus Cloud Storage herunterladen, wenn Ihre Instanzmetadaten eine URL zu einem Cloud Storage-Bucket enthalten. Weitere Informationen finden Sie unter Ausführung von Metadatenskripts und Endpunkte anfordern in der Cloud Storage-Dokumentation.
  • VM Extension Manager (*.agentcommunication.googleapis.com): Der Gast-Agent-Manager kommuniziert mit dem Agent Communication Service (ACS), um den Lebenszyklus von Erweiterungen zu verwalten und Messwerte zu melden. Weitere Informationen finden Sie unter VM Extension Manager.
  • Cloud Logging (logging.googleapis.com): Standardmäßig ist Cloud Logging für Logs für den Gast-Agent aktiviert. Weitere Informationen finden Sie unter Cloud Logging API.

Eine vollständige Liste der regionalen Endpunkte finden Sie unter Regionale Dienstendpunkte.

Speicherort der Gast-Agent-Binärdateien

In den folgenden Tabellen sind die Dateipfade für die verschiedenen Gast-Agent-Binärdateien auf Linux- und Windows-Instanzen je nach Architektur aufgeführt.

Pluginbasierte Agent-Binärdateien

In dieser Tabelle sind die Dateipfade für die pluginbasierten Gast-Agent-Binärdateien auf Linux- und Windows-Instanzen aufgeführt:

Komponente Pfad unter Linux Pfad unter Windows
Gast-Agent-Manager /usr/bin/google_guest_agent_manager C:\ProgramData\Google\Compute Engine\agent\GCEWindowsAgentManager.exe
Binärdatei des Kern-Plugins /usr/lib/google/guest_agent/core_plugin C:\Program Files\Google\Compute Engine\agent\CorePlugin.exe
Metadatenskript-Ausführer /usr/bin/gce_metadata_script_runner C:\Program Files\Google\Compute Engine\agent\GCEMetadataScriptRunner.exe

Monolithische Agent-Binärdateien

In der folgenden Tabelle sind die Dateipfade für die monolithischen Gast-Agent-Binärdateien auf Linux- und Windows-Instanzen aufgeführt:

Komponente Pfad unter Linux Pfad unter Windows
Gast-Agent /usr/bin/google_guest_agent C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgent.exe
Metadatenskript-Ausführer /usr/bin/google_metadata_script_runner C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe
Autorisierte Schlüssel Nicht zutreffend C:\Program Files\Google\Compute Engine\agent\GCEAuthorizedKeys.exe

Daemon-Dienste des Gast-Agents

In den folgenden Tabellen sind die Daemon-Dienste des Gast-Agents aufgeführt, die auf Linux- und Windows-Instanzen installiert sind. Diese Dienste werden unter Linux als systemd-Einheiten und unter Windows als Windows-Dienste ausgeführt.

Komponente Dienstname unter Linux Dienstname unter Windows Status
Gast-Agent-Manager google-guest-agent-manager.service GCEAgentManager In allen Modi aktiviert, einschließlich Abwärtskompatibilität.
Gast-Agent google-guest-agent.service GCEAgent Standardmäßig deaktiviert.
Nur aktiviert im Abwärtskompatibilitätsmodus.
Kompatibilitätsmanager für Gast-Agent google-guest-compat-manager.service GCEWindowsCompatManager In allen Modi aktiviert, einschließlich Abwärtskompatibilität.
Aktualisierung von Arbeitslastzertifikaten gce-workload-cert-refresh.timer N/A Standardmäßig deaktiviert.
Nur im Abwärtskompatibilitätsmodus aktiviert.
Startskripts google-startup-scripts.service GCEStartup
Shutdown-Skripts google-shutdown-scripts.service Shutdown

Abwärtskompatibilität

Um einen reibungslosen Übergang vom vorherigen monolithischen Gast-Agent zum pluginbasierten System zu gewährleisten, enthält das Gast-Agent-Paket mehrere Komponenten, die für die Abwärtskompatibilität entwickelt wurden. Diese Komponenten sind nicht Teil der pluginbasierten Architektur und werden nur aktiviert, wenn Sie manuell zum monolithischen Agent zurückkehren möchten, indem Sie das Metadatenattribut enable-guest-agent-core-plugin auf false setzen.

Zu den Komponenten, die diese Kompatibilität unterstützen, gehören:

  • Kompatibilitätsmanager für Gast-Agent: Dieses Paket verwaltet den Wechsel zwischen dem pluginbasierten Agent und dem monolithischen Agent.
  • Kompatibilitätsmanager für Metadatenskript-Ausführer: Dieses Paket sorgt dafür, dass der richtige Skript-Ausführer verwendet wird, je nachdem, ob der monolithische oder der pluginbasierte Agent aktiv ist.
  • Kompatibilitätsmanager für autorisierte Schlüssel (nur Windows): Dieses Paket verwaltet SSH-Schlüssel und sorgt dafür, dass die richtigen Schlüssel für den alten oder neuen Agent verwendet werden.
Komponente Pfad unter Linux Pfad unter Windows
Kompatibilitätsmanager für Gast-Agent /usr/bin/google_guest_compat_manager C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe
Kompatibilitätsmanager für Metadatenskript-Ausführer /usr/bin/metadata_script_runner_compat C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe
Kompatibilitätsmanager für autorisierte Schlüssel Nicht zutreffend C:\Program Files\Google\Compute Engine\agent\GCEWindowsAuthorizedKeysCompat.exe

Nächste Schritte