In diesem Dokument erhalten Sie einen Überblick über die Kernfunktionen des Gast-Agents, einer wichtigen 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.
Funktionsweise des Gast-Agents
Ab Version 20250901.00
verwendet der Gast-Agent eine auf Plug-ins basierende Architektur. Dieses Design verbessert die Zuverlässigkeit und Flexibilität, indem die Funktionen des Agents in separate Komponenten unterteilt werden.
Die Gast-Agent-Architektur besteht aus einigen wichtigen Komponenten:
- Gast-Agent-Manager: Der zentrale Prozess auf Ihrer Instanz, der alle Plug-ins startet, stoppt und überwacht.
- Core-Plug‑in: Dieses Plug‑in verwaltet die wesentlichen Dienste, die für die Ausführung Ihrer Instanz auf Google Clouderforderlich sind. Die Funktion kann nicht deaktiviert werden.
- Optionale Plug-ins: Diese Plug-ins integrieren Ihre Instanz in andere Google Cloud Dienste wie Cloud Monitoring. Sie können festlegen, welche dieser Plug-ins auf Ihrer Instanz ausgeführt werden.
- Agent-Steuerungsebene: Dies ist ein verwalteter Google Cloud Dienst, der auf der Backend-Infrastruktur von Google ausgeführt wird und den Lebenszyklus optionaler Plug-ins verwaltet, einschließlich ihrer Installation und Aktualisierungen.
Weitere Informationen zur Gast-Agent-Architektur finden Sie unter Gast-Agent.
Hauptfunktion
Das Core-Plug-in ist für die grundlegenden Dienste verantwortlich, die für die Funktion Ihrer Instanz in Compute Engine erforderlich sind. Im folgenden Abschnitt werden die Funktionen des Core-Plug-ins beschrieben. Viele dieser Funktionen lassen sich mit der Konfigurationsdatei des Gast-Agents anpassen.
Ersteinrichtung und Optimierung der Instanz
Der Gast-Agent führt mehrere Einrichtungsaufgaben aus, um die Instanz für die Ausführung in Compute Engine vorzubereiten. Wie in der folgenden Tabelle dargestellt, werden einige Aufgaben nur beim ersten Start ausgeführt, andere bei jedem Start.
Aufgabe | Häufigkeit |
---|---|
SSH-Hostschlüssel generieren | Beim ersten Start |
boto -Konfiguration für die Verwendung von Cloud Storage erstellen |
Beim ersten Start |
Für lokale SSD optimieren | Bei jedem Start |
Multi-Queue auf allen virtionet -Geräten aktivieren |
Bei jedem Start |
Sie können diese Einrichtungsaufgaben steuern, indem Sie die InstanceSetup
-Optionen der Konfigurationsdatei des Gast-Agents konfigurieren. Sie können beispielsweise die Optimierung lokaler SSDs deaktivieren, indem Sie optimize_local_ssd = false
festlegen.
Erfassung von Systemtelemetriedaten
Der Gast-Agent erfasst beim Booten und dann alle 24 Stunden einige grundlegende Systemtelemetrieinformationen. Die aufgezeichneten Informationen umfassen Folgendes:
- Version und Architektur des Gast-Agents
- Name und Version des Betriebssystems
- Betriebssystem-Kernel-Release und ‑Version
Sie können die Erfassung von Telemetriedaten deaktivieren, indem Sie den Metadatenschlüssel disable-guest-telemetry
auf true
setzen. Informationen zum Festlegen von Metadaten finden Sie unter Benutzerdefinierte Metadaten festlegen und entfernen.
Zeitsynchronisierung (nur Linux)
Damit die Zeit korrekt erfasst wird, verwendet der Gast-Agent die clock_skew_daemon
-Komponente, um die Uhr auf Ihrer Instanz regelmäßig an den physischen Server anzupassen, auf dem sie ausgeführt wird. Dieser Prozess verhindert das Problem der Uhrzeitabweichung und generiert eine system time has changed
-Meldung in den Instanzlogs, die bestätigt, dass die Zeit erfolgreich synchronisiert wurde.
Der Agent synchronisiert die Uhr normalerweise nach einem Stopp- oder Start-Ereignis oder nach einer Migration.
Sie können die Komponente clock_skew_daemon
deaktivieren, indem Sie in der Konfigurationsdatei des Gast-Agents clock_skew_daemon = false
festlegen.
Ausführung von Metadatenskripts
Mit Startskripts und Shutdown-Skripts können Sie automatisierte Aufgaben ausführen, wenn Ihre Instanz gestartet oder beendet wird.
Der Gastagent unterstützt die Ausführung dieser Skripts auf folgende Weise:
- Führt Skripts in einer Shell aus.
- Wenn Sie mehrere Skripts angeben (z. B. wenn Sie sowohl
startup-script
als auchstartup-script-url
verwenden), führt der Agent beide aus. - Wenn für dasselbe Ereignis mehrere Skripts angegeben werden, führt der Agent zuerst das Skript von der URL aus.
- Nachdem ein Skript beendet ist, protokolliert der Agent seinen Beendigungsstatus.
Sie können die Ausführung von Metadatenskripts konfigurieren, indem Sie die MetadataScripts
-Optionen in der Konfigurationsdatei des Gast-Agents ändern.
Verwaltung von Nutzerkonten und SSH-Schlüsseln
Der Gast-Agent verwendet ein accounts_daemon
, um lokale Nutzerkonten und SSH-Schlüssel zu verwalten, die den Zugriff auf die Instanz steuern.
Das genaue Verhalten variiert je nach Linux- und Windows-Betriebssystem.
Sie können die Optionen für die Kontoverwaltung ändern, indem Sie die Accounts
-Optionen in der Konfigurationsdatei des Gast-Agents konfigurieren.
Linux
Mit OS Login können Sie den SSH-Zugriff auf Ihre Instanzen mithilfe von IAM verwalten, ohne einzelne SSH-Schlüssel erstellen und verwalten zu müssen. Weitere Informationen zu OS Login finden Sie unter OS Login. Wenn OS Login auf Linux-Instanzen nicht aktiviert ist, erstellt und verwaltet der Agent lokale Nutzerkonten und ihre SSH-Schlüssel mithilfe von Metadateneinstellungen.
Wenn Sie SSH-Schlüssel in Instanz- oder Projektmetadaten hinzufügen oder daraus entfernen, erstellt oder löscht der Gast-Agent ein lokales Nutzerkonto. Der Gast-Agent führt außerdem die folgenden Aktionen aus, um diese lokalen Nutzerkonten zu verwalten:
- Die
authorized_keys
-Datei wird für jedes verwaltete Nutzerkonto so gepflegt:- Wenn Sie Metadaten SSH-Schlüssel hinzufügen, erstellt der Agent eine
authorized_keys
-Datei für das Nutzerkonto. - Wenn Sie alle SSH-Schlüssel für einen Nutzer aus den Metadaten entfernen, löscht der Agent die
authorized_keys
-Datei des Nutzerkontos.
- Wenn Sie Metadaten SSH-Schlüssel hinzufügen, erstellt der Agent eine
- Verwaltet Administratorberechtigungen mithilfe der Linux-Gruppe
google-sudoers
. Alle Mitglieder dieser Gruppe erhalten Sudo-Berechtigungen für die Instanz. - Alle bereitgestellten Nutzerkonten werden der Gruppe
google-sudoers
hinzugefügt. - Fügt Nutzerkonten allen zusätzlichen Linux-Gruppen hinzu, die Sie in der Option
groups
der Konfigurationsdatei des Gast-Agents angeben.
Windows
Auf Windows-Instanzen erstellt der Agent automatisch lokale Nutzerkonten für alle SSH-Nutzerkonten, die in den Metadaten-SSH-Schlüsseln auf Instanz- oder Projektebene angegeben sind. Der Gast-Agent erstellt auch Nutzerkonten und legt Passwörter fest oder setzt sie zurück. Diese lokalen Nutzerkonten sind erforderlich, um über SSH eine Verbindung zu Windows-Instanzen herzustellen.
Um eine unbeabsichtigte AD-Nutzerbereitstellung zu verhindern, deaktivieren Sie den Kontomanager auf der AD-Controller-Instanz. Weitere Informationen zum Einrichten von AD in Compute Engine finden Sie unter Domaincontroller bereitstellen.
OS Login konfigurieren (nur Linux)
Mit OS Login können Sie den SSH-Zugriff auf Ihre Instanzen mithilfe von IAM verwalten, ohne einzelne SSH-Schlüssel erstellen und verwalten zu müssen. Weitere Informationen zu OS Login finden Sie in der OS Login-Dokumentation.
Wenn Sie OS Login aktivieren, ist der Gast-Agent dafür verantwortlich, die Instanz für die Verwendung von OS Login zu konfigurieren.
Der Gast-Agent konfiguriert OS Login, indem er die folgenden Aufgaben ausführt:
- Fügt der Konfigurationsdatei
SSHD
einen Google-Konfigurationsblock hinzu und startetSSHD
neu. - Fügt der Datei
nsswitch.conf
OS Login-Einträge hinzu. - Fügt der Konfigurationsdatei
PAM
fürSSHD
OS Login-Einträge hinzu.
Wenn Sie OS Login deaktivieren, werden die Konfigurationsänderungen entfernt. Die Optionen im Abschnitt Accounts
der Konfigurationsdatei SSHD
gelten nicht für OS Login-Nutzer.
Netzwerkverwaltung
Der Gast-Agent konfiguriert die Netzwerkschnittstellen Ihrer Instanz beim Booten automatisch. Die Netzwerkkonfiguration wird vom Metadatenserver gelesen, damit Ihre Instanz richtig mit dem Netzwerk verbunden wird und auf andere Google Cloud-Dienste zugreifen kann.
Sie können das Netzwerkverwaltungsverhalten des Agents steuern, indem Sie die NetworkInterfaces
-Optionen in der Konfigurationsdatei des Gast-Agents konfigurieren. Sie können beispielsweise die Option manage_primary_nic = true
festlegen, damit der Agent die primäre Netzwerkkarte (NIC) zusätzlich zu sekundären NICs verwaltet.
Bei jedem Start führt der Gast-Agent die folgenden wichtigen Aufgaben aus:
- Aktiviert Netzwerkschnittstellen: Der Agent erkennt den aktiven Netzwerkmanager in Ihrem Betriebssystem und verwendet ihn, um alle sekundären Netzwerk-NICs zu aktivieren.
- Konfiguriert IP-Routen: Der Agent richtet die erforderlichen IP-Routen (nur IPv4) für Funktionen wie IP-Weiterleitung und Alias-IP-Bereiche so ein:
- Legt Routen auf der primären Ethernet-Schnittstelle fest.
- Konfiguriert standardmäßig Google-Routen mit der Routingprotokoll-ID
66
. Diese ID ist ein Namespace für IP-Adressen, die für den Gast-Agent konfiguriert sind. Diese ID kann mit der Optionethernet_proto_id
in der Konfigurationsdatei des Gast-Agents geändert werden.
- Route zum Metadatenserver erstellen: Der Agent sorgt dafür, dass Ihre primäre NIC immer mit dem Metadatenserver kommunizieren kann, um Instanzinformationen abzurufen.
- VLAN-Konfiguration: Wenn Ihre Instanz für die Verbindung mit einem virtuellen lokalen Netzwerk (VLAN) konfiguriert ist, übernimmt der Gast-Agent automatisch die Einrichtung. Die VLAN-Konfiguration wird vom Metadatenserver gelesen und die Netzwerkschnittstelle in der Instanz wird so konfiguriert, dass das richtige VLAN-Tag verwendet wird. So wird sichergestellt, dass die Instanz über das vorgesehene logische Netzwerk kommuniziert. Wichtig: Wenn das VLAN an die primäre NIC angehängt ist, wird es vom Gast-Agent konfiguriert, auch wenn
manage_primary_nic
deaktiviert ist.
Auswahl des Netzwerkmanagers
Unter Linux erkennt der Gast-Agent automatisch, welcher Netzwerkmanager auf dem System verfügbar ist, und verwendet ihn zum Konfigurieren der Netzwerkschnittstellen. Der Agent sucht in der Reihenfolge der Priorität von netplan
bis dhclient
nach unterstützten Managern.
In der folgenden Tabelle sind die unterstützten Netzwerkmanager aufgeführt, sortiert nach dem Betriebssystem, dem sie standardmäßig am häufigsten zugeordnet sind. Ihre spezifische Instanzkonfiguration kann abweichen. In dieser Tabelle wird jedoch der Standard-Netzwerkmanager für die aufgeführten Betriebssysteme angegeben.
Netzwerkmanager | Betriebssystem | Konfigurationsstandort | Beispielpfad | Hinweise |
---|---|---|---|---|
netplan |
|
/run/netplan/ |
/run/netplan/20-google-guest-agent-eth0.yaml |
Der Agent kann auch einen Drop-in-Standort unter /etc/systemd/network/ verwenden. |
wicked |
|
/etc/sysconfig/network/ |
/etc/sysconfig/network/ifcfg-eth0 |
Vorhandene ifcfg -Dateien werden nicht überschrieben, sondern übersprungen. |
NetworkManager |
|
/etc/NetworkManager/system-connections/ |
/etc/NetworkManager/system-connections/google-guest-agent-eth0.nmconnection |
|
systemd-networkd |
|
/usr/lib/systemd/network/ |
/usr/lib/systemd/network/20-eth0-google-guest-agent.network |
|
dhclient |
|
/run/ |
/run/dhclient.google-guest-agent.eth0.ipv4.pid |
Wenn keiner der anderen Netzwerkmanager erkannt wird, verwendet der Gast-Agent standardmäßig dhclient . |
Sichere Verwaltung von Anmeldedaten für den Metadatenserver (MDS)
Shielded VMs unterstützen jetzt die sichere Kommunikation mit dem Metadatenserver über den HTTPS-Endpunkt https://metadata.google.internal/computeMetadata/v1
. Diese Verbesserung bietet einen sichereren Kanal für den Metadatenzugriff.
Damit diese sichere Kommunikation möglich ist, ruft der Gast-Agent die erforderlichen Anmeldedaten ab und speichert sie auf der Festplatte der Instanz. Diese Anmeldedaten werden an einem Standardspeicherort gespeichert und sind für jede Clientanwendung zugänglich, die auf der Instanz ausgeführt wird. Informationen zu diesen Speicherorten finden Sie unter Wo werden Zertifikate gespeichert?
Die Einrichtung von HTTPS-MDS-Zertifikaten ist standardmäßig deaktiviert. Wenn Sie möchten, dass die HTTPS-MDS-Zertifikate automatisch für Ihre Shielded VMs eingerichtet werden, legen Sie den Metadatenschlüssel disable-https-mds-setup
für Ihre Instanz oder Ihr Projekt auf false
fest.
Informationen zum Festlegen von Metadaten finden Sie unter Benutzerdefinierte Metadaten festlegen und entfernen.
Die Verwaltung von Anmeldedaten durch den Gast-Agent umfasst:
- Erstes Update: Sowohl das Stammzertifikat als auch die Clientanmeldedaten werden bei jedem Start des Gast-Agent-Prozesses aktualisiert.
- Automatische Aktualisierung: Zur Erhöhung der Sicherheit werden die Clientanmeldedaten des Gast-Agents automatisch alle 48 Stunden aktualisiert.
- Überschneidungszeitraum: Der Agent generiert und speichert neue Anmeldedaten, während die alten weiterhin gültig sind. Während des Überschneidungszeitraums haben Kunden genügend Zeit, auf die neuen Anmeldedaten umzustellen, bevor die alten ablaufen. In dieser Überschneidungsphase kann der Agent auch versuchen, Anmeldedaten noch einmal abzurufen, falls ein Fehler auftritt. So wird dafür gesorgt, dass gültige Anmeldedaten vorhanden sind, bevor die vorhandenen ungültig werden.
- Zusammensetzung: Der Gast-Agent sorgt dafür, dass die Clientanmeldedaten aus einem privaten EC-Schlüssel (Elliptic Curve) bestehen, der mit dem Clientzertifikat verkettet ist.
- Eindeutigkeit: Der Gast-Agent sorgt dafür, dass Anmeldedaten für eine Instanz eindeutig sind und nicht an anderer Stelle verwendet werden können.
Weitere Informationen zum HTTPS-Metadatenserver-Endpunkt finden Sie unter HTTPS-Metadatenserver-Endpunkt.
Standardmäßig schreibt der Gast-Agent Zertifikate direkt auf die Festplatte. Sie können den Agent jedoch so konfigurieren, dass Zertifikate in die integrierten Zertifikatsspeicher des Betriebssystems eingebunden werden. Um diese Integration zu aktivieren, legen Sie den Metadatenschlüssel enable-https-mds-native-cert-store
auf true
fest. Informationen zum Festlegen von Metadaten finden Sie unter Benutzerdefinierte Metadaten festlegen und entfernen.
Das Verhalten des Agents beim Hinzufügen von Zertifikaten zu Betriebssystem-Trust Stores variiert je nach Betriebssystem:
Linux
Der Gast-Agent führt die folgenden Schritte aus:
- Fügt das MDS-Root-Zertifikat dem Trust Store des Systems hinzu. Der genaue Pfad hängt von der Betriebssystemdistribution ab. Informationen zu diesen Speicherorten finden Sie unter Speicher von Stammzertifikaten im OS-Vertrauensspeicher.
- Aktualisiert den lokalen Trust Store, indem der entsprechende Befehl für das Betriebssystem ausgeführt wird, z. B.
update-ca-certificates
oderupdate-ca-trust
.
Windows
Der Agent fügt Clientanmeldedaten zu Cert:\LocalMachine\My
und das Root-Zertifikat zu Cert:\LocalMachine\Root
hinzu.
Unterstützung von Windows-Failover-Clustern (nur Windows)
Der Gast-Agent überwacht den aktiven Knoten im Windows Server-Failover-Cluster und koordiniert mit dem Google Cloud internen Load Balancer, um den gesamten Cluster-Traffic an den erwarteten Knoten weiterzuleiten.
Sie können dieses Verhalten mit den folgenden Feldern in den Instanzmetadaten oder in der Datei instance_configs.cfg
steuern:
enable-wsfc
: Wenn auftrue
gesetzt, ignoriert der Agent alle Informationen zur IP-Weiterleitung und beginnt, auf den Systemdiagnose-Port zu reagieren. Die Standardeinstellung istfalse
.wsfc-agent-port
: gibt den Port an, über den der Agent auf Systemdiagnosen reagiert. Die Standardeinstellung ist59998
.wsfc-addrs
: eine durch Kommas getrennte Liste von IP-Adressen. Mit dieser erweiterten Einstellung können Sie sowohl normale Weiterleitungs-IPs als auch Cluster-IPs auf derselben Instanz verwenden. Wenn Sie diese Option festlegen, überspringt der Agent die automatische Konfiguration nur für die IPs in dieser Liste. Standardmäßig ist dieser Wert nicht festgelegt.
Nächste Schritte
- Informationen zum Verwalten des Gast-Agents finden Sie unter Gast-Agent konfigurieren.