Sie können eine VM-Instanz oder eine Instanzvorlage konfigurieren, um einen Docker-Container bereitzustellen und zu starten. Compute Engine stellt ein aktuelles Image des Container-Optimized OS (COS) mit installiertem Docker bereit und startet den Container zusammen mit der VM.
Hinweise
- Sollten Sie mit Containern noch nicht vertraut sein, lesen Sie die Informationen über Container und deren Vorteile.
- Wenn Sie nicht mit Docker vertraut sind, lesen Sie die Docker-Dokumentation.
- Hier finden Sie Informationen über Container-Optimized OS.
- Mehr über verwaltete Instanzgruppen (Managed Instance Groups, MIGs) erfahren
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- VMs, auf denen Container ausgeführt werden, können Sie genauso verwalten wie alle anderen VMs, die Sie im Rahmen Ihrer Compute Engine-Infrastruktur konfigurieren und verwalten.
- Erstellen Sie skalierbare Dienste mithilfe von verwalteten Instanzgruppen, in denen Container ausgeführt werden. Diese bieten Features wie Autoscaling, automatische Reparatur, Rolling Updates, Mehrzonenbereitstellungen und Load-Balancing.
- Zum Verwalten Ihrer VMs mit Containern verwenden Sie vertraute Prozesse und Tools wie die Google Cloud CLI oder die Compute Engine API.
- Ausführung einer großen Anzahl von Mikrodiensten
- Schnellerer Start von Containern
- Nutzung der Vorteile der automatischen Orchestrierung von Kubernetes, einschließlich automatischer Upgrades, automatischer Knotenreparatur und Autoscaling
- Software beim VM-Start mit einem Startskript oder mit cloud-init bereitstellen.
- Benutzerdefiniertes Bootlaufwerk-Image mit vorinstallierter Software erstellen
- Sie bündeln Ihre Anwendung und die erforderlichen Bibliotheken in einem Docker-Image und veröffentlichen das Image in Artifact Registry oder in einer Drittanbieter-Registry wie Docker Hub.
- Sie geben einen Namen für das Docker-Image und die
docker run
-Konfiguration beim Erstellen einer VM-Instanz oder einer Instanzvorlage für eine MIG an. - Compute Engine erstellt eine VM-Instanz, die ein von Google bereitgestelltes Container-Optimized OS-Image verwendet. Dieses Image enthält eine Docker-Laufzeit und zusätzliche Software, die für das Starten des Containers zuständig ist.
- Compute Engine speichert Ihre Containereinstellungen in den Instanzmetadaten unter dem
gce-container-declaration
-Metadatenschlüssel. - Wenn die VM gestartet wird, verwendet das Container-Optimized OS-Image die
docker run
-Befehlskonfiguration, die in den Metadaten der Instanz gespeichert ist, ruft das Container-Image aus dem Repository ab und startet den Container. - Pro VM-Instanz können Sie jeweils nur einen Container bereitstellen. Google Kubernetes Engine kann hilfreich sein, wenn Sie mehrere Container pro VM-Instanz bereitstellen müssen.
Sie können Container nur aus einem öffentlichen Repository oder aus einem privaten Artifact Registry- oder Container Registry-Repository bereitstellen, auf das Sie Zugriff haben. Andere private Repositories werden nicht unterstützt.
Informationen zu Berechtigungen für private Registries finden Sie in der Dokumentation zur Zugriffssteuerung für Artifact Registry oder Container Registry.
Sie können die Ports einer VM-Instanz nicht den Ports des Containers zuordnen (Docker-Option
-p
). Informationen zum Aktivieren des Zugriffs auf Ihre Container finden Sie unter Containerports veröffentlichen.Mit dieser Bereitstellungsmethode können Sie nur Container-Optimized OS-Images verwenden.
Sie können dieses Feature nur über die Google Cloud Console oder die Google Cloud CLI verwenden, nicht über die API.
- Hochladen Ihres Docker-Image in Container Registry.
- Sie können beliebige öffentlich verfügbare Container-Images von Docker Hub oder aus anderen Registrys verwenden.
Gehen Sie zur Seite Instanz erstellen.
Geben Sie die VM-Details an
Klicken Sie im Abschnitt Container auf Container bereitstellen.
Geben Sie auf der Seite Container konfigurieren einen Namen für das Container-Image an und konfigurieren Sie bei Bedarf Optionen zum Ausführen des Containers. Sie können beispielsweise
gcr.io/cloud-marketplace/google/nginx1:latest
für das Container-Image angeben.Fahren Sie mit dem VM-Erstellungsprozess fort.
- Die Containerdeklaration auf der Instanz wird aktualisiert. Compute Engine speichert die aktualisierte Containerdeklaration in den Instanzmetadaten unter dem
gce-container-declaration
-Metadatenschlüssel. - Wird die Instanz ausgeführt, wird sie beendet und neu gestartet, um die aktualisierte Konfiguration zu übernehmen. Wenn die Instanz beendet ist, wird die Containerdeklaration aktualisiert, ohne die Instanz zu starten. Die VM-Instanz lädt das neue Image herunter und startet den Container beim Start der VM.
Rufen Sie die Seite VM-Instanzen auf.
Klicken Sie auf den Namen der zu aktualisierenden VM.
Klicken Sie auf der Seite "Instanzdetails" auf Bearbeiten.
Geben Sie das neue Container-Image an und aktualisieren Sie ggf. die Optionen zum Ausführen des Containers.
Klicken Sie zum Speichern der Änderungen auf Speichern und neu starten. Compute Engine speichert die Änderungen und startet die Instanz automatisch neu, um die Aktualisierung zu übernehmen. Nach dem Neustart der VM wird das neue Image heruntergeladen und der Container mit der aktualisierten Konfiguration gestartet.
Erstellen Sie eine Instanzvorlage auf der Grundlage eines Docker-Image.
Erstellen Sie eine MIG aus der neuen Instanzvorlage.
Zur Seite Instanzvorlagen.
Klicken Sie zum Erstellen einer Instanzvorlage auf Instanzvorlage erstellen.
Wählen Sie unter Container die Option Container-Image bereitstellen aus.
Geben Sie unter Container-Image den Namen des Docker-Images an und konfigurieren Sie bei Bedarf Optionen zum Ausführen des Containers. Sie können beispielsweise
gcr.io/cloud-marketplace/google/nginx1:15
für das Container-Image angeben.Klicken Sie auf Erstellen.
- Das neue Docker-Image für die Bereitstellung vorbereiten.
- Erstellen Sie eine Instanzvorlage basierend auf dem neuen Docker-Image auf die gleiche Weise, wie Sie eine containerbasierte Vorlage erstellen.
- Aktualisieren Sie eine MIG mit dem Managed Instance Group Updater auf die neue Instanzvorlage.
- Erstellen Sie eine Instanzvorlage anhand der aktuellen Version Ihres Docker-Images in der gleichen Weise, wie Sie für eine neue MIG eine containerbasierte Vorlage erstellen. Standardmäßig wird die neueste unterstützte Version eines Container-Optimized OS-Image verwendet.
- Aktualisieren Sie eine MIG mit der neuen Instanzvorlage mit dem Managed Instance Group Updater.
VM_NAME
: Der Name der VM-InstanzCONTAINER_NAME
: Der Name des ContainersLogs des Start-Agents, auch als konlet-Logs bekannt. Der Start-Agent parst die Konfiguration des Containers und führt Aufgaben für den Start des Containers auf einer Compute Engine-VM-Instanz aus.
Docker-Ereignislogs dokumentieren Containerereignisse, einschließlich Containerstart- und -stoppereignisse.
Zu den Logs Ihres Containers gehört auch der
STDOUT
von Anwendungen, die in Ihrem Container ausgeführt werden.Rufen Sie die Seite VM-Instanzen auf.
Wählen Sie die VM-Instanz aus, deren Start-Agent-Logs Sie anzeigen möchten.
Klicken Sie unter Logs auf Serieller Port 1 (Konsole), um die Logs der seriellen Konsole aufzurufen.
"Serieller Port 1 (Konsole)"" class="l10n-absolute-url-src screenshot" l10n-attrs-original-order="src,alt,class" src="https://cloud.google.com/static/compute/images/containers-serial-console-logs.png" />
- Stellen Sie eine Verbindung von Ihrer Instanz zu einem Container über SSH her.
Führen Sie den Befehl
sudo journalctl
aus, um die Logs für den Start von VMs und Containern anzeigen zu lassen. Verwenden Sie den folgenden Befehl, um nach Start-Agent-Logs für den Container zu filtern (konlet
).sudo journalctl -u konlet*
Rufen Sie die Seite VM-Instanzen auf.
Wählen Sie die VM-Instanz aus, deren Start-Agent-Logs Sie anzeigen möchten.
Klicken Sie unter Logs auf Cloud Logging, um Cloud Logging-Logs aufzurufen.
"Serieller Port 1 (Konsole)"" class="l10n-absolute-url-src screenshot" l10n-attrs-original-order="src,alt,class" src="https://cloud.google.com/static/compute/images/containers-serial-console-logs.png" />
Geben Sie einen Suchfilter ein, um die Logs des Start-Agents abzurufen.
resource.type="gce_instance" logName="projects/PROJECT_ID/logs/cos_system" jsonPayload.SYSLOG_IDENTIFIER="konlet-startup" jsonPayload._HOSTNAME="VM_NAME"
Dabei gilt:
PROJECT_ID
: Die Projekt-ID, die die Instanz enthältVM_NAME
: Der Name der Instanz, für die Sie Logs abrufen möchten
PROJECT_ID
: Die Projekt-ID, die die Instanz enthältVM_NAME
: Der Name der Instanz, für die Sie Logs abrufen möchten- Stellen Sie eine Verbindung von Ihrer Instanz zu einem Container über SSH her.
Führen Sie den Befehl
sudo journalctl
mit dem folgenden Filter aus, um Docker-Ereignisprotokolle anzuzeigen.sudo journalctl -u docker-events-collector
Rufen Sie die Seite VM-Instanzen auf.
Wählen Sie die VM-Instanz aus, deren Start-Agent-Logs Sie anzeigen möchten.
Klicken Sie unter Logs auf Cloud Logging, um Cloud Logging-Logs aufzurufen.
"Serieller Port 1 (Konsole)"" class="l10n-absolute-url-src screenshot" l10n-attrs-original-order="src,alt,class" src="https://cloud.google.com/static/compute/images/containers-serial-console-logs.png" />
Geben Sie den folgenden Suchfilter ein, um Docker-Ereignislogs abzurufen:
resource.type="gce_instance" logName="projects/PROJECT_ID/logs/cos_system" jsonPayload._HOSTNAME="VM_NAME" jsonPayload.SYSLOG_IDENTIFIER="docker"
Dabei gilt:
PROJECT_ID
: Die Projekt-ID, die die Instanz enthältVM_NAME
: Der Name der Instanz, für die Sie Logs abrufen möchten
PROJECT_ID
: Die Projekt-ID, die die Instanz enthältVM_NAME
: Der Name der Instanz, für die Sie Logs abrufen möchtenRufen Sie die Seite VM-Instanzen auf.
Wählen Sie die VM-Instanz aus, deren Start-Agent-Logs Sie anzeigen möchten.
Klicken Sie unter Logs auf Cloud Logging, um Cloud Logging-Logs aufzurufen.
"Serieller Port 1 (Konsole)"" class="l10n-absolute-url-src screenshot" l10n-attrs-original-order="src,alt,class" src="https://cloud.google.com/static/compute/images/containers-serial-console-logs.png" />
Die Cloud Logging-Seite wird mit einem Standardsuchfilter geladen. Kopieren Sie den Wert für
resource.labels.instance_id
. Sie werden ihn später benötigen.Aktualisieren Sie den Suchfilter, um die Logs des Containers abzurufen.
resource.type="gce_instance" logName="projects/PROJECT_ID/logs/cos_containers" resource.labels.instance_id="INSTANCE_ID"
Dabei gilt:
PROJECT_ID
: Die Projekt-ID, die die Instanz enthältINSTANCE_ID
: Die ID der Instanz, für die Sie Logs abrufen möchten
Ermitteln Sie die ID der Instanz, für die Sie Logs abrufen möchten.
gcloud compute instances describe VM_NAME \ --zone ZONE \ --format="value(id)"
Ersetzen Sie Folgendes:
VM_NAME
: Der Name der Instanz, für die Sie Logs abrufen möchtenZONE
: Die Zone, in der sich die Instanz befindet.
Rufen Sie mit dem folgenden Befehl und einem Filter die Containerlogs der Instanz auf:
gcloud logging read "resource.type=gce_instance AND \ logName=projects/PROJECT_ID/logs/cos_containers AND \ resource.labels.instance_id=INSTANCE_ID"
Dabei gilt:
PROJECT_ID
: Die Projekt-ID, die die Instanz enthältINSTANCE_ID
: Die ID der Instanz
Verwenden Sie zum Beispiel den folgenden Befehl, um in Cloud Logging die letzten 10 Containerlogs für eine VM-Instanz anzuzeigen, auf der COS 70 ausgeführt wird, die in
my-project
vorhanden ist und eine Instanz-ID von555123456789012345
hat.gcloud logging read "resource.type=gce_instance AND \ logName=projects/my-project/logs/cos_containers AND \ resource.labels.instance_id=555123456789012345" \ --limit 10
- Richtlinie für den Containerneustart festlegen
ENTRYPOINT
des Containers überschreiben (Standardbefehl, der beim Containerstart ausgeführt wird)- Argumente an den Befehl
ENTRYPOINT
des Containers übergeben - Den Container im privilegierten Modus ausführen
- Stellen Sie ein Hostverzeichnis oder
tmpfs
als Datenvolumen im Container bereit. - Umgebungsvariablen festlegen
- Einen Zwischenspeicher für
STDIN
in der Containerlaufzeit zuweisen - Ein Pseudoterminal zuordnen
- Optionen zum Ausführen von Containern konfigurieren
- Mehr zu verwalteten Instanzgruppen
- Container-Optimized OS – Dokumentation
Container auf VMs und MIGs bereitstellen
Durch die Bereitstellung von Containern in Compute Engine können Sie die Anwendungsbereitstellung vereinfachen und gleichzeitig Ihre VM-Infrastruktur steuern.
Alternativ können Sie die Bereitstellung in Google Kubernetes Engine in Erwägung ziehen, um die folgenden Möglichkeiten zu erhalten:
Wenn Sie jeden Mikrodienst auf einer separaten virtuellen Maschine in Compute Engine ausführen, kann der Aufwand des Betriebssystems einen erheblichen Teil Ihrer Kosten ausmachen. Mit Google Kubernetes Engine können Sie mehrere Container und Gruppen von Containern für jede VM-Instanz bereitstellen, wodurch Host-VM-Ressourcen effizienter zu Mikrodiensten mit kleinerem Volumen zugewiesen werden können.
Container in Compute Engine bereitstellen
Die gängigen Methoden zur Bereitstellung von Software in einer Compute Engine-VM-Instanz sind:
Die beiden genannten Methoden kombinieren die Aufgaben der Anwendungskonfiguration und der Einrichtung der Betriebssystemumgebung. Als Entwickler müssen Sie alle Laufzeitabhängigkeiten sorgfältig verfolgen und auflösen. Wenn z. B. zwei Anwendungen, die auf einer VM ausgeführt werden, unterschiedliche Versionen derselben Bibliothek verwenden, müssen Sie beide Versionen installieren und über Systemvariablen auf sie verweisen.
Alternativ können Sie Software in einem Container auf einer VM-Instanz oder in einer MIG bereitstellen. Ein Container enthält sowohl Anwendungssoftware als auch die erforderlichen Bibliotheken und ist von den Anwendungen und Bibliotheken des Betriebssystems isoliert. Container können problemlos zwischen Bereitstellungsumgebungen verschoben werden, ohne Konflikte zwischen den Bibliotheksversionen in einem Container und dem zugehörigen Betriebssystem lösen zu müssen.
Im Folgenden wird beschrieben, wie Sie einen Container in Compute Engine bereitstellen:
Compute Engine führt die folgenden Aufgaben aus, nachdem Sie eine Anfrage zum Erstellen einer VM-Instanz gestellt haben:
Beschränkungen
Container für die Bereitstellung vorbereiten
Wählen Sie eine der folgenden Methoden aus, um Compute Engine Zugriff auf Ihr Container-Image zu gewähren:
Container auf einer neuen VM-Instanz bereitstellen
Sie können einen Container auf einer neuen VM-Instanz mithilfe der Google Cloud Console oder der Google Cloud CLI bereitstellen.
Console
Im folgenden Beispiel wird ein Container aus einem von Google bereitgestellten Nginx-Docker-Image (
https://gcr.io/cloud-marketplace/google/nginx1:latest
) in einer VM-Instanz bereitgestellt. Wenn Sie ein anderes Docker-Image verwenden möchten, geben Sie in den folgenden Beispielen das gewünschte Image an.gcloud
Führen Sie den Befehl
gcloud compute instances create-with-container
aus:gcloud compute instances create-with-container VM_NAME \ --container-image DOCKER_IMAGE
Der folgende Befehl erstellt beispielsweise eine neue VM-Instanz mit dem Namen
nginx-vm
, die das Docker-Imagegcr.io/cloud-marketplace/google/nginx1:latest
startet und ausführt.gcloud compute instances create-with-container nginx-vm \ --container-image gcr.io/cloud-marketplace/google/nginx1:latest
Weitere Informationen zum Befehl
gcloud compute instances create-with-container
.Wenn Sie ein öffentliches Image von Docker Hub verwenden, müssen Sie immer den vollständigen Namen des Docker-Images angeben. Geben Sie zum Beispiel den folgenden Image-Namen an, um ein Apache-Container-Image bereitzustellen:
docker.io/httpd:2.4
Container auf einer VM-Instanz aktualisieren
Sie können ein Docker-Image und Konfigurationsoptionen aktualisieren, um den Container auf einer VM-Instanz mit der Google Cloud Console oder der Google Cloud-CLI auszuführen.
Bei der Aktualisierung einer VM, auf der ein Container ausgeführt wird, führt Compute Engine die folgenden zwei Schritte durch:
Console
gcloud
Aktualisieren Sie die Containerdeklaration mit dem Befehl
gcloud compute instances update-container
. Beispiel:gcloud compute instances update-container nginx-vm \ --container-image gcr.io/cloud-marketplace/google/nginx1:latest
Mit diesem Befehl wird das Container-Image auf
gcr.io/cloud-marketplace/google/nginx1:latest
gesetzt und die Instanz neu gestartet, um die Änderungen zu übernehmen. Außerdem können Sie die in Optionen zum Ausführen von Containern konfigurieren beschriebenen Attribute aktualisieren, indem Sie die entsprechenden Flags hinzufügen.Nach dem Neustart der Instanz wird das neue Container-Image heruntergeladen und der Container mit der neuen Konfiguration gestartet.
Container in einer verwalteten Instanzgruppe bereitstellen
So stellen Sie einen Container in einer neuen verwalteten Instanzgruppe (Managed Instance Group, MIG) mit der Google Cloud Console oder der Google Cloud CLI bereit:
Console
Im folgenden Beispiel wird eine Instanzvorlage erstellt, die einen Container aus einem von Google bereitgestellten Nginx-Docker-Image (
gcr.io/cloud-marketplace/google/nginx1:15
) in einer MIG bereitstellt. Wenn Sie andere Docker-Images verwenden möchten, geben Sie im folgenden Beispiel das gewünschte Image anstelle vongcr.io/cloud-marketplace/google/nginx1:15
an.Erstellen Sie als Nächstes eine MIG, die die neue Instanzvorlage verwendet.
gcloud
Erstellen Sie eine Instanzvorlage zum Ausführen von Docker-Images mit dem
gcloud compute instance-templates create-with-container
-Befehl:gcloud compute instance-templates create-with-container TEMPLATE_NAME \ --container-image DOCKER_IMAGE
Bei Bedarf können Sie auch Optionen zum Ausführen des Containers konfigurieren.
Mit dem folgenden Befehl wird beispielsweise eine neue Instanzvorlage mit dem Namen
nginx-template
erstellt, die Informationen über das Docker-Image enthält. Eine aus dieser Vorlage erstellte VM-Instanz startet das Docker-Imagegcr.io/cloud-marketplace/google/nginx1:15
und führt es aus, wenn die VM gestartet wird.gcloud compute instance-templates create-with-container nginx-template \ --container-image gcr.io/cloud-marketplace/google/nginx1:15
Erstellen Sie als Nächstes mit der neuen Instanzvorlage eine MIG.
Nun haben Sie eine Instanzvorlage und können eine MIG erstellen, die die Instanzvorlage verwendet. Führen Sie beispielsweise folgenden Befehl aus, um eine MIG mit der gcloud CLI und dem gerade erstellten
nginx-template
zu erstellen:gcloud compute instance-groups managed create example-group \ --base-instance-name nginx-vm \ --size 3 \ --template nginx-template
Verwaltete Instanzgruppe aktualisieren, auf der ein Container ausgeführt wird
Sie können eine verwaltete Instanzgruppe (MIG) aktualisieren, um eine neue Version eines Docker-Images oder eines Container-Optimized OS-Images bereitzustellen.
MIG auf eine neue Version eines Container-Images aktualisieren
Sie können eine neue Version eines Docker-Images in einer MIG mit dem Managed Instance Group Updater bereitstellen:
Verwaltete Instanzgruppe auf die neue Version eines Container-Optimized OS-Images aktualisieren
Google aktualisiert Container-Optimized OS-Images regelmäßig. Möglicherweise möchten Sie diese Aktualisierungen auf Ihre containerisierten MIGs anwenden, ohne Ihr Docker-Image zu ändern. Sie können eine MIG mit der Google Cloud Console oder der Google Cloud CLI in zwei Schritten auf eine neue Version eines Container-Optimized OS-Images aktualisieren:
Über SSH mit einem Container verbinden
Sie können eine Verbindung zu einem Container auf einer VM unter Verwendung von SSH herstellen. Verwenden Sie die gcloud CLI, um
gcloud compute ssh
mit dem--container
-Flag auszuführen:gcloud compute ssh VM_NAME --container CONTAINER_NAME
Dabei gilt:
Weitere Informationen zum
gcloud compute ssh
-Befehl und zu seinen Argumenten.Container in Compute Engine überwachen
Verwenden Sie zum Überwachen von Instanzen, auf denen ein Container-Optimized OS-Image ausgeführt wird, den Agent Node Problem Detector, der mit Cloud Monitoring kommuniziert und zustandsbezogene Messwerte erfasst. Der Agent ist in Container-Optimized OS-Images eingebunden und beginnt ab Meilenstein 77.
Wenn Sie den Agent aktivieren möchten, bearbeiten Sie in Containern mit Images mit Meilenstein 88 oder höher den Abschnitt Benutzerdefinierte Metadaten und setzen Sie
google-monitoring-enabled
auftrue
.Weitere Möglichkeiten zum Aktivieren des Node Problem Detector finden Sie unter Statusüberwachung aktivieren.
Der Node Problem Detector-Agent unterstützt die Messwerte in der Messwertliste, die mit
guest/
beginnen.Wenn Sie mit den vom Agent erfassten Messwerten interagieren möchten, rufen Sie Metrics Explorer auf.
Logs ansehen
Sie können drei Arten von Logs für Container aufrufen:
Logs des Start-Agents ansehen
Logs des Start-Agents sind in der seriellen Konsole, über den
journald
-Systemdienst, der im Betriebssystem-Image enthalten ist, und über Cloud Logging verfügbar.Logs des Start-Agents in der seriellen Konsole ansehen
Console
gcloud
Verwenden Sie
get-serial-port-output
, um Logs am seriellen Port der Instanz anzuzeigen.gcloud compute instances get-serial-port-output VM_NAME
Ersetzen Sie
VM_NAME
durch den Namen der VM-Instanz.Verwenden Sie zum Beispiel den folgenden Befehl, um die Ausgabe des seriellen Ports einer VM-Instanz mit dem Namen
nginx-vm
anzuzeigen:gcloud compute instances get-serial-port-output nginx-vm
Logs des Start-Agents in
journald
anzeigenLogs des Start-Agents in Logging ansehen
Console
gcloud
Verwenden Sie den Befehl
gcloud logging read
mit einem entsprechenden Filter, um die Logs des Start-Agents für einen Container anzeigen zu lassen.gcloud logging read "resource.type=gce_instance AND \ logName=projects/PROJECT_ID/logs/cos_system AND \ jsonPayload.SYSLOG_IDENTIFIER=konlet-startup AND \ jsonPayload._HOSTNAME=VM_NAME"
Dabei gilt:
Verwenden Sie zum Beispiel den folgenden Befehl, um in Logging die letzten 10 Logs des Start-Agents für eine VM-Instanz mit dem Namen
nginx-vm
anzusehen, die COS 70 ausführt und inmy-project
vorhanden ist.gcloud logging read "resource.type=gce_instance AND \ logName=projects/my-project/logs/cos_system AND \ jsonPayload.SYSLOG_IDENTIFIER=konlet-startup AND \ jsonPayload._HOSTNAME=nginx-vm" \ --limit 10
Docker-Ereignislogs ansehen
Sie können Docker-Ereignislogs in
journald
und in Cloud Logging ansehen.Docker-Ereignislogs in
journald
ansehenDocker-Ereignisprotokolle in Logging anzeigen
Console
gcloud
Verwenden Sie den Befehl
gcloud logging read
mit einem geeigneten Filter, um Docker-Ereignislogs anzeigen zu lassen.gcloud logging read "resource.type=gce_instance AND \ logName=projects/PROJECT_ID/logs/cos_system AND \ jsonPayload._HOSTNAME=VM_NAME AND \ jsonPayload.SYSLOG_IDENTIFIER=docker"
Dabei gilt:
Verwenden Sie zum Beispiel den folgenden Befehl, um in Logging die letzten 10 Docker-Ereignisprotokolle für eine VM-Instanz mit dem Namen
nginx-vm
anzuzeigen, die COS 70 ausführt und inmy-project
vorhanden ist.gcloud logging read "resource.type=gce_instance AND \ logName=projects/my-project/logs/cos_system AND \ jsonPayload._HOSTNAME=nginx-vm AND \ jsonPayload.SYSLOG_IDENTIFIER=docker" \ --limit 10
Containerlogs ansehen
Console
gcloud
Verwenden Sie den Befehl
gcloud logging read
, um Containerlogs aufzurufen.Containeroptimierte Images oder Image-Familien festlegen
Containerisierte VM-Instanzen oder Instanzvorlagen werden so erstellt, dass sie standardmäßig das neueste unterstützte Container-optimierte Image verwenden. Das Image gehört zum
cos-cloud
-Projekt.Sie können diese Standardeinstellung durch ein anderes Image aus dem Projekt
cos-cloud
überschreiben. Informationen zu verfügbaren Image-Familien und ihren Attributen finden Sie unter Richtige Version des Container-Optimized OS auswählen.Wenn Sie beispielsweise wissen, welches Image Sie verwenden möchten, geben Sie in der gcloud CLI entweder das
--image
-Flag an, um das standardmäßige containeroptimierte Image zu überschreiben, oder das--image-family
-Flag , um das neueste Images aus der Familie auszuwählen, die Sie beim Erstellen der VM angegeben haben.Im folgenden Beispiel wird eine containerisierte VM-Instanz erstellt, die das neueste Image aus der
cos-dev
-Image-Familie verwendet:gcloud compute instances create-with-container nginx-vm \ --image-family cos-dev \ --image-project cos-cloud \ --container-image gcr.io/cloud-marketplace/google/nginx1:1.15
Firewallregeln konfigurieren
Containerisierte VMs starten Container, deren Netzwerk auf den Hostmodus eingestellt ist. Ein Container gehört zum Host-Netzwerk-Stack, d. h., alle Schnittstellen des Hosts sind für den Container zugänglich.
Standardmäßig blockieren Google Cloud-Firewallregeln alle eingehenden Verbindungen zu einer VM-Instanz und lassen alle von einer VM-Instanz ausgehenden Verbindungen zu.
Erstellen Sie Firewallregeln, um eingehende Verbindungen zu Ihrer Instanz und somit zum Container zuzulassen.
Optionen zum Ausführen eines Containers konfigurieren
Für die Ausführung Ihres Containers können Sie folgende Optionen konfigurieren:
Weitere Informationen finden Sie unter Optionen zum Ausführen von Containern konfigurieren
Weitere Informationen
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-10-14 (UTC).
-