Der Container-Start-Agent in Compute Engine ist veraltet. Mit diesem Agent können Sie Container auf Compute Engine-Instanzen bereitstellen, wenn Sie VMs erstellen.
In diesem Dokument wird beschrieben, wie Sie vorhandene Container, die der Startup-Agent auf Ihren VMs oder verwalteten Instanzgruppen (MIGs) erstellt hat, zu anderenTrusted Cloud -Diensten migrieren.
Wählen Sie je nach Ihren Anforderungen eine der folgenden Optionen aus, um die Container zu migrieren, die mit der eingestellten Methode auf VMs bereitgestellt wurden:
- Wenn Sie weiterhin Container auf einzelnen VMs und MIGs ausführen möchten, verwenden Sie Startskripts oder cloud-init.
- Wenn Sie zustandslose Containeranwendungen und kleine bis mittelgroße Jobs haben, verwenden Sie Cloud Run.
- Wenn Ihr Container ein Batchjob mit einem bestimmten Endstatus ist und zusätzliche Rechenressourcen benötigt, verwenden Sie Batch.
- Wenn Sie erweiterte Steuerung und Skalierbarkeit benötigen oder Ihre Anforderungen mit den anderen Optionen nicht erfüllen können, verwenden Sie GKE in Google Cloud.
Weitere Anwendungsfälle und alternative Lösungen finden Sie unter Containerbereitstellungsoptionen vergleichen.
Eingestellte Optionen zum Konfigurieren von Containern auf VMs
Wenn Sie einen Container beim Erstellen einer VM konfigurieren, verwendet Compute Engine den Container-Start-Agent, um die gce-container-declaration
-Metadaten zu lesen, in denen die Containerinformationen gespeichert sind, und um den Container auf der VM bereitzustellen.
Die folgenden Optionen für die Bereitstellung von Containern direkt auf einer VM oder MIG, bei denen der Container-Start-Agent und gce-container-metadata
verwendet werden, sind eingestellt.
Console
Die Option Container bereitstellen auf der Seite Instanz erstellen ist veraltet:
gcloud
Die folgenden gcloud
-Befehle, mit denen ein Container auf einer VM oder einer Instanzvorlage konfiguriert wird, sind veraltet:
- gcloud compute instances create-with-container
- gcloud compute instances update-container
- gcloud compute instance-templates create-with-container
- gcloud compute instances create-Befehl, der das Flag
--metadata
verwendet, um den Metadatenschlüsselgce-container-declaration
festzulegen - gcloud compute instance-templates create-Befehl, der das Flag
--metadata
verwendet, um den Metadatenschlüsselgce-container-declaration
festzulegen
Terraform
Das Terraform-Modul gce-container
und der Metadatenschlüssel gce-container-declaration
zum Konfigurieren von Containern sind veraltet.
Instanzen identifizieren, die die verworfenen Containermetadaten verwenden
Wenn Sie feststellen möchten, ob in Ihrem Projekt Instanzen die eingestellte Containermetadaten verwenden, führen Sie den folgenden Google Cloud CLI-Befehl aus, mit dem Instanzen mit dem Metadatenschlüssel und -wert gce-container-declaration
aufgeführt werden:
gcloud compute instances list --filter="metadata.items.key:gce-container-declaration"
Dieser Befehl gibt eine Liste aller VM-Instanzen in Ihrem konfigurierten Projekt zurück, die den Metadatenschlüssel gce-container-declaration
enthalten. Der Metadatenschlüssel identifiziert eindeutig VMs, die von der Einstellung betroffen sind. Wenn Sie mehrere Projekte verwenden, führen Sie diesen Befehl für alle aktiven Projekte aus.
Wenn Sie eine bestimmte Instanz validieren möchten, führen Sie den folgenden Google Cloud CLI-Befehl aus:
gcloud compute instances describe VM_NAME --format="(metadata.items)"
Ersetzen Sie VM_NAME durch den Namen der VM-Instanz, die Sie validieren möchten.
Weitere Informationen zum Aufrufen von Metadaten finden Sie unter Metadaten ansehen und abfragen.
Containerbereitstellungsoptionen vergleichen
In der folgenden Tabelle sind die Anwendungsfälle für das Ausführen von Containern auf VMs zusammengefasst. Außerdem werden alternative Containerlösungen für die Migration Ihrer Arbeitslasten empfohlen:
Anwendungsfälle | Ersatztyp | Kosten | Empfohlene Lösung |
---|---|---|---|
|
Direkter Ersatz | Keine zusätzlichen Kosten | Startskripts zum Erstellen der VMs verwenden |
Sie können beispielsweise Nutzer erstellen, Dateien importieren, Laufwerke einbinden oder den privilegierten Modus verwenden. |
Direkter Ersatz | Keine zusätzlichen Kosten | Mit cloud-init Aufgaben während des VM-Lebenszyklus ausführen |
Führen Sie einen Batchjob aus, der einen bestimmten Endstatus hat und zusätzliche Rechenressourcen erfordert. | Verwalteter Dienst | Hängt von den Eigenschaften Ihrer Arbeitslast und der Komplexität der Containerkonfiguration ab. | Batch |
|
Verwalteter Dienst | Kostengünstige oder kostenlose Lösung für kleinere Arbeitslasten. | Cloud Run |
|
Verwalteter Dienst | Hängt von den Arbeitslasteigenschaften und der Komplexität der Containerkonfiguration ab. | Google Kubernetes Engine |
Wenn Sie vom Compute Engine-Container-Start-Agent zu einer alternativen Lösung wechseln, sollten Sie die folgenden erforderlichen Änderungen und den potenziellen Aufwand für die Implementierung berücksichtigen:
- VMs mit Container-Optimized OS: Sie sind für die Einrichtung, Konfiguration, Sicherheit und Wartung von VMs und Container-Laufzeiten verantwortlich. Dies erfordert häufig die Verwendung von Startskripts oder
cloud-init
. - Cloud Run oder Batch: Ihre Anwendungen müssen zustandslos sein und dem anfragebasierten oder jobbasierten Ausführungsmodell entsprechen. Dazu müssen Anwendungen möglicherweise an externe Dienste zur Statusverwaltung angepasst werden.
- GKE: Übernehmen Sie Kubernetes-Prinzipien, definieren Sie Arbeitslasten mit Kubernetes-Manifestdateien und verwalten Sie Clusterressourcen.
Startskripts zum Bereitstellen von Containern auf VMs verwenden
Sie können einen einfachen Container auf einer VM mit einem Startskript ausführen.
Beachten Sie die folgenden Punkte, wenn Sie ein Startskript zum Konfigurieren von Containern verwenden:
- Für einfache Szenarien können Sie ein Startskript verwenden. Für die erweiterte Konfiguration sollten Sie
cloud-init
verwenden. - Da Sie eine neue VM mit einem Container erstellen, der mit dem Startskript konfiguriert wird, müssen Sie die Migration aller Arbeitslasten planen, die auf den vorhandenen VMs bereitgestellt werden.
- Testen Sie, ob alles wie erwartet funktioniert, bevor Sie Traffic an die neu erstellte VM mit einem Container weiterleiten.
So erstellen Sie eine VM und stellen einen Container auf einer VM oder einer MIG bereit:
- Aktuellen Container in VM-Metadaten dem Startskriptbefehl zuordnen
- Startskript auf Grundlage der vorhandenen Metadatenkonfiguration erstellen
- VM mit dem Startskript erstellen oder MIG mit dem Startskript erstellen
Containermetadaten dem docker run
-Befehl zuordnen
Sie können die VM-Metadaten oder gcloud
-Flags den docker run
-Argumenten zuordnen und in Ihr Startskript zum Erstellen von VMs einfügen.
Einige gcloud
-Flags werden direkt in VM-Metadaten übersetzt. Diese Flags werden auch direkt in docker run
-Flags übersetzt.
Wenn Sie einen vorhandenen Container auf einer VM haben, können Sie die VM-Metadatenkonfiguration lesen und ein Startskript mit den entsprechenden docker run
-Befehlen erstellen.
# Get your existing VM instance configuration in yaml format
gcloud compute instances describe VM_NAME --format="(metadata.items)"
Die Ausgabe sieht etwa so aus:
metadata:
items:
- key: gce-container-declaration
value: |
spec:
containers:
- args:
- '"hello world!"'
command:
- echo
env:
- name: ONE
value: '1'
image: docker.io/library/busybox
name: my-instance
securityContext:
privileged: true
stdin: true
tty: true
restartPolicy: Always
- key: google-logging-enabled
value: 'true'
In der folgenden Tabelle sehen Sie, wie Sie vorhandene Spezifikationen docker run
-Befehlen zuordnen:
Google Cloud CLI-Flag | VM-Metadatenschlüssel | Docker-Befehl „run“ |
---|---|---|
--container-image |
containers.image |
Als Argument ohne Flag angeben. Beispiel: docker run gcr.io/google-containers/busybox |
--container-command |
command |
Geben Sie es als Argument ohne Flag nach dem Namen des Container-Images an. Beispiel: docker run gcr.io/google-containers/busybox echo "hello world" |
--container-arg |
args |
Geben Sie den Namen als Argument ohne Flag nach dem Befehl an. Beispiel: docker run gcr.io/google-containers/busybox echo "hello world" |
--container-env |
containers.env array |
--env KEY=VALUE [--env KEY=VALUE ...] |
--container-restart-policy |
restartPolicy |
--restart Mögliche Werte sind no , on-failure und always . Standardwert ist no . |
--container-stdin |
containers.stdin |
-i Boolesches Flag. „true“, wenn vorhanden, standardmäßig „false“. |
--container-tty |
containers.tty |
-t Boolesches Flag. „true“, wenn vorhanden, standardmäßig „false“. |
--container-privileged |
containers.securityContext.privileged |
--privileged Boolesches Flag. „true“, wenn vorhanden, standardmäßig „false“. |
--container-mount-disk |
- | Kein entsprechender docker run -Befehl.Sie können das Laufwerk separat bereitstellen. |
Beispiel-Startskripts
Die folgenden Beispiele zeigen, wie Sie die docker
-Befehle in Ihr Startskript einfügen:
- Beispiel 1: Ein eigenständiger Container wird auf einer VM ausgeführt, die auf Container-Optimized OS basiert.
Beispiel 2: Führt einen Webserver-Container auf einer VM aus, die auf Container-Optimized OS basiert.
Beispiel 1
So führen Sie einen eigenständigen Container auf einer VM aus, die auf Container-Optimized OS basiert:
#!/bin/bash
# A name for the container
CONTAINER_NAME="my-app-container"
# Stop and remove the container if it exists
docker stop $CONTAINER_NAME || true
docker rm $CONTAINER_NAME || true
# Pull the latest version of the container image from Docker Hub
docker pull busybox:latest
# Run docker container from image in docker hub
docker run busybox:latest \
echo "hello world!"
Beispiel 2
Webserver-Container auf einer VM ausführen, die auf Container-Optimized OS basiert:
#!/bin/bash
# Enable incoming traffic
iptables -A INPUT -j ACCEPT
# A name for the container
CONTAINER_NAME="my-app-container"
# Stop and remove the container if it exists
docker stop $CONTAINER_NAME || true
docker rm $CONTAINER_NAME || true
# Pull the latest version of the container image from Docker Hub
docker pull nginx:latest
# Run docker container from image in docker hub
docker run \
--name=$CONTAINER_NAME \
--privileged \
--restart=always \
--tty \
--detach \
--network="host" \
nginx:latest
Zusätzliche Konfigurationsoptionen für die Containerbereitstellung
In diesem Abschnitt werden die zusätzlichen Konfigurationsparameter für die Bereitstellung von Containern auf Ihren VMs beschrieben.
Weitere Informationen zu diesen Optionen finden Sie unter Optionen zum Ausführen von Containern konfigurieren.
Zugriff auf Artifact Registry-Images
Wenn Sie Zugriff auf Container-Images von gcr.io oder pkg.dev benötigen, verwenden Sie das docker-credential-gcr
-Tool, das in Container-Optimized OS vorinstalliert ist, und konfigurieren Sie die Authentifizierung für Artifact Registry für Docker.
Führen Sie den folgenden Befehl aus, bevor Sie den Container ausführen:
# Set home directory to save docker credentials
HOME=/home/appuser
# Configure docker with credentials for gcr.io and pkg.dev
docker-credential-gcr configure-docker
Weitere Informationen finden Sie unter Authentifizierung bei Artifact Registry für Docker konfigurieren.
Logging konfigurieren
Wir empfehlen, Cloud Logging zu verwenden, indem Sie einen Logging-Agent auf einer VM aktivieren.
Wenn Sie den Logging-Treiber ändern möchten, können Sie alternativ den Parameter --log-driver
in Ihren docker run
-Befehl einfügen:
# Use Cloud Logging logging driver
docker run --log-driver=gcplogs nginx:latest
Weitere Informationen finden Sie unter Cloud Logging mit Container-Optimized OS verwenden.
Interne Firewall konfigurieren
Container-Optimized OS lehnt eingehenden Traffic standardmäßig ab. Sie müssen also iptables
-Regeln hinzufügen, um diesen Traffic zuzulassen. Mit diesen Befehlen wird die interne Firewall des Hostbetriebssystems konfiguriert. Außerdem müssen Sie die Firewall Ihrer Virtual Private Cloud so konfigurieren, dass dieser Traffic zur neuen VM zugelassen wird.
Weitere Informationen finden Sie unter VPC-Firewallregeln verwenden.
# Enable all incoming and routed traffic
iptables -A INPUT -p -j ACCEPT
iptables -A FORWARD -p -j ACCEPT
Weitere Informationen finden Sie unter Hostfirewall konfigurieren.
Volumes an den Container anhängen
Wenn dem Container Volumes zugeordnet sind, enthalten die Containermetadaten den Eintrag volumes
und ein volumeMounts
-Array. Die name
eines Eintrags in volumes
entspricht dem Namen eines Eintrags in volumeMounts
und umgekehrt.
Suchen Sie für jeden Band, den Sie erfassen, die erforderlichen Informationen entweder im volumes
- oder im volumeMounts
-Eintrag.
Wenn keine Volumes an den Container angehängt sind, können Sie diesen Abschnitt überspringen und direkt eine VM mit dem Startskript erstellen.
Weitere Informationen zu Laufwerken und Dateisystemen in Container-Optimized OS finden Sie unter Übersicht über Laufwerke und Dateisysteme.
tmpfs-Dateisystem bereitstellen
Wenn Sie ein leeres tmpfs-Dateisystem in einem Container bereitstellen möchten, geben Sie das Argument --tmpfs
mit Ihrem docker run
-Befehl an. Wenn Sie beispielsweise ein Cache-Dateisystem in Ihrem NGINX-Container bereitstellen möchten, führen Sie den folgenden Befehl aus:
# mount a cache file system to the nginx container
docker run -d --name=$CONTAINER_NAME --tmpfs /var/cache/nginx:rw,size=512m,noexec,nosuid,nodev --network="host" nginx:latest
Weitere Informationen zum Bereitstellen von tmpfs
-Dateisystemen finden Sie unter tmpfs-Bereitstellungen.
Hostverzeichnis bereitstellen
Wenn Sie ein Verzeichnis aus einer Host-VM in einem Container bereitstellen möchten, geben Sie das --mount
-Argument mit dem docker run
-Befehl an:
# mount a read-only directory to the nginx container
docker run -d --name=$CONTAINER_NAME --mount type=bind,source=/var/www/html,target=/usr/share/nginx/html,ro nginx:latest
Weitere Informationen finden Sie unter Bind-Mounts.
Nichtflüchtigen Speicher im Container bereitstellen
Das Einbinden einer Festplatte in den Container erfordert zusätzliche Schritte. Wenn Sie ein Laufwerk bereitstellen möchten, müssen Sie es zuerst auf der VM und dann im Container bereitstellen:
Führen Sie den folgenden Befehl aus, um das Laufwerk auf der VM bereitzustellen:
#!/bin/bash DISK_DEVICE_NAME="my-persistent-disk" # This name MUST match the 'device-name' in the gcloud --disk flag DISK_BY_ID_PATH="/dev/disk/by-id/google-${DISK_DEVICE_NAME}" HOST_MOUNT_POINT="/mnt/disks/my-persistent-disk" # This is the path where the disk will be mounted on the VM CONTAINER_MOUNT_PATH="/usr/share/my-persistent-disk" # This is the path where the disk will be mounted in the container # format a disk as an ext4 filesystem, if it doesn't already contain one file -sL $DISK_BY_ID_PATH | grep -q filesystem || \ mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard $DISK_BY_ID_PATH # create a directory for mounting point sudo mkdir -p "${HOST_MOUNT_POINT}" # mount a disk to the VM sudo mount -o defaults,discard "${DISK_BY_ID_PATH}" "${HOST_MOUNT_POINT}"
Nachdem Sie das Laufwerk an die VM angehängt haben, fügen Sie das Flag
--mount
mit dem Befehldocker run
hinzu, um das Laufwerk an den Container anzuhängen:docker run -d --name=$CONTAINER_NAME --mount type=bind,source="${HOST_MOUNT_POINT}",target="${CONTAINER_MOUNT_PATH}",readonly nginx:latest
VM mit dem Startskript erstellen
Nachdem Sie ein Startskript mit Ihrer Containerkonfiguration erstellt haben, verwenden Sie dieses Startskript, um eine VM auf Basis von Container-Optimized OS zu erstellen. Weitere Informationen zum Erstellen einer VM auf der Grundlage von Container-Optimized OS finden Sie unter Instanz aus einem öffentlichen Image erstellen.
Weitere Informationen zur Verwendung von Startskripts finden Sie unter Startskripts auf Linux-VMs verwenden.
Console
Rufen Sie in der Trusted Cloud Console die Seite Instanz erstellen auf.
Wenn Sie dazu aufgefordert werden, wählen Sie Ihr Projekt aus und klicken auf Weiter. Die Seite Instanz erstellen wird angezeigt und enthält den Bereich Maschinenkonfiguration.
Wählen Sie im Bereich Maschinenkonfiguration die Maschinenfamilie und den Maschinentyp für Ihre VM aus.
Klicken Sie im Navigationsmenü auf Betriebssystem und Speicher. Konfigurieren Sie im angezeigten Bereich Betriebssystem und Speicher das Bootlaufwerk so:
- Klicken Sie auf Ändern. Der Bereich Bootlaufwerk wird angezeigt und enthält den Tab Öffentliche Images.
- Wählen Sie in der Liste Betriebssystem die Option Container-Optimized OS aus.
- Wählen Sie in der Liste Version die Version des Betriebssystems aus.
- Wählen Sie in der Liste Bootlaufwerktyp den Typ des Bootlaufwerks aus.
- Optional: Wenn Sie zusätzliche Laufwerke benötigen, fügen Sie sie im Abschnitt Zusätzliche Laufwerke hinzu.
- Klicken Sie auf Auswählen.
Klicken Sie im Navigationsmenü auf Erweitert.
- Fügen Sie im Bereich Automatisierung das Startskript ein, das Sie für die Bereitstellung Ihres Containers erstellt haben.
Klicken Sie zum Erstellen und Starten der VM auf Erstellen.
gcloud
Wenn Sie die gcloud CLI verwenden, speichern Sie ein Startskript in einer separaten Datei.
Führen Sie den folgenden Befehl aus, um eine VM mit einem Startskript zu erstellen:
gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --machine-type=MACHINE_TYPE \ --metadata-from-file=startup-script=STARTUP_SCRIPT_FILE
Ersetzen Sie Folgendes:
VM_NAME
ist der Name der neuen VM.ZONE
: Zone, in der die Instanz erstellt werden soll.IMAGE_PROJECT
: das Image-Projekt für Container-Optimized OS, das das Image enthält, z. B.cos-cloud
.IMAGE_FAMILY
: Die Container-Optimized OS-Image-Familie, z. B.cos-stable
.MACHINE_TYPE
: Maschinentyp für die neue VM. Dies kann ein vordefinierter oder ein benutzerdefinierter Maschinentyp sein.STARTUP_SCRIPT_FILE
: Der relative Pfad auf Ihrem Computer zur Datei des Startskripts, z. B../startup_script.sh
.
Beispiel:
# Create COS-based VM by using a startup script gcloud compute instances create "cos-instance-with-startup-script" \ --zone="us-central1-c" \ --machine-type="e2-medium" \ --image-family="cos-stable" \ --image-project="cos-cloud" \ --metadata-from-file=startup-script="./startup_script.sh"
Prüfen Sie mit dem folgenden Befehl, ob Compute Engine die VM erstellt hat:
gcloud compute instances describe VM_NAME
Ersetzen Sie
VM_NAME
durch den Namen der VM, die Sie erstellt haben.
Terraform
Zum Erstellen einer VM können Sie die Ressource google_compute_instance
verwenden.
provider "google" { project = "PROJECT_ID" } resource "google_compute_instance" "cos_vm_instance" { name = "VM_NAME" machine_type = "MACHINE_TYPE" zone = "ZONE" # Use a Container-Optimized OS image for the boot disk boot_disk { initialize_params { image = "IMAGE_PROJECT/IMAGE_FAMILY" } } # Attaches the instance to the default network network_interface { network = "default" } # Specify the relative path to the startup script on your local machine metadata = { startup-script = file("STARTUP_SCRIPT_FILE") } }
Ersetzen Sie Folgendes:
VM_NAME
ist der Name der neuen VM.ZONE
: Zone, in der die Instanz erstellt werden soll.IMAGE_PROJECT
: das Image-Projekt für Container-Optimized OS, das das Image enthält, z. B.cos-cloud
.IMAGE_FAMILY
: die Container-Optimized OS-Image-Familie, z. B.cos-stable
.MACHINE_TYPE
: Maschinentyp für die neue VM. Dies kann ein vordefinierter oder ein benutzerdefinierter Maschinentyp sein.STARTUP_SCRIPT_FILE
: Der relative Pfad auf Ihrem Computer zur Datei des Startskripts, z. B../startup_script.sh
.
Beispiel:
provider "google" { project = "my-project" } resource "google_compute_instance" "my_container_vm" { name = "my-container-vm-startup" machine_type = "e2-medium" zone = "us-central1-a" boot_disk { initialize_params { image = "cos-cloud/cos-stable" } } network_interface { network = "default" } metadata = { startup-script = file("./startup_script.sh") } }
MIG mit dem Startskript erstellen
Nachdem Sie eine Instanzvorlage mit dem Startskript erstellt haben, verwenden Sie eine der folgenden Methoden, um eine MIG zu erstellen.
Weitere Informationen zum Erstellen von MIGs finden Sie unter Verwaltete Instanzgruppe erstellen.
Console
Erstellen Sie eine Instanzvorlage, die auf dem Startskript basiert, das Sie im vorherigen Abschnitt erstellt haben.
- Wählen Sie im Bereich Betriebssystem ein Container-Optimized OS und eine Version aus.
- Fügen Sie im Bereich Automatisierung das Startskript ein, das Sie für die Containerbereitstellung erstellt haben.
MIG mit der im vorherigen Schritt erstellten Instanzvorlage erstellen
gcloud
Instanzvorlage erstellen mit dem Befehl
instance-templates create
.Sie müssen ein Container-Optimized OS-Image für die VM verwenden. Sie können den relativen Pfad zur Startskriptdatei im Flag
--metadata-from-file
angeben.MIG mit der im vorherigen Schritt erstellten Instanzvorlage erstellen
Beispiel:
# Create the instance template that uses a startup script gcloud compute instance-templates create startup-template \ --machine-type=e2-medium \ --image-family=cos-stable \ --image-project=cos-cloud \ --metadata-from-file=startup-script=./startup_script.sh # Create the managed instance group gcloud compute instance-groups managed create startup-mig \ --template=startup-template \ --size=2 \ --zone=us-central1-a
Terraform
Verwenden Sie die Ressourcen google_compute_instance_template
und google_compute_instance_group_manager
, um eine Instanzvorlage und eine MIG zu erstellen, wie im folgenden Beispiel gezeigt:
Beispiel:
resource "google_compute_instance_template" "startup_template" { name_prefix = "startup-template-" machine_type = "e2-medium" disk { source_image = "cos-cloud/cos-stable" auto_delete = true boot = true } network_interface { network = "default" } metadata = { startup-script = file("./startup_script.sh") } } resource "google_compute_instance_group_manager" "startup_mig" { name = "startup-mig" base_instance_name = "startup-vm" zone = "us-central1-a" version { instance_template = google_compute_instance_template.startup_template.id } target_size = 2 }
Testen und bereinigen
Nachdem Sie eine VM oder eine MIG erfolgreich erstellt haben, prüfen Sie, ob Ihre Anwendung im Container ausgeführt wird und wie erwartet funktioniert. Informationen zur Behebung von Problemen finden Sie unter Fehlerbehebung.
Wenn die Anwendung auf den neuen VMs, die mit dem Startskript erstellt wurden, erfolgreich ausgeführt wird, können Sie die VMs und MIGs löschen, die die eingestellte Methode zum Bereitstellen von Containern verwenden.
Fehlerbehebung
Wenn Sie Probleme beheben möchten, die beim Konfigurieren von Containern auf VMs mit einem Startskript auftreten können, sehen Sie sich die Startskript- und Containerlogs an.
Führen Sie den folgenden Befehl aus, um die Logs des Startskripts auf der VM-Instanz aufzurufen:
sudo journalctl | grep "startup script"
Führen Sie den Befehl
docker logs
aus, um Logs aus dem Docker-Container aufzurufen:docker logs CONTAINER_NAME
Ersetzen Sie
CONTAINER_NAME
durch den Namen Ihres Containers.
Informationen zur Fehlerbehebung bei anderen Problemen finden Sie in den folgenden Dokumenten:
- Cloud Logging – Übersicht
- Cloud Logging mit Container-Optimized OS verwenden
- Fehlerbehebung für den Docker-Daemon
- Fehlerbehebung und Diagnose
- Fehlerbehebung bei Terraform
- Fehlerbehebung beim Ausführen eines einfachen Webservers
- Internetverbindung für private VMs herstellen
cloud-init
mit Container-Optimized OS verwenden
Sie können cloud-init
, eine branchenübliche und plattformübergreifende Lösung, verwenden, um Container auf VMs bereitzustellen, auf denen Container-Optimized OS ausgeführt wird.
Mit diesem Tool können Sie eine benutzerdefinierte Konfiguration während der VM-Erstellung oder beim Starten der VM ausführen.
Weitere Informationen finden Sie unter cloud-init
mit dem Cloud-Konfigurationsformat verwenden.
Verwaltete Dienste für die Containerbereitstellung verwenden
In diesem Abschnitt werden die von Trusted Cloud by S3NS bereitgestellten verwalteten Dienste beschrieben, mit denen Sie Container bereitstellen können.
Cloud Run
Cloud Run ist eine gute Option für zustandslose Containeranwendungen und kleine bis mittelgroße Jobs.
Zu den wichtigsten Funktionen von Cloud Run gehören:
- Sie können festlegen, dass CPUs nur während der Anfrageverarbeitung oder immer zugewiesen werden.
- Sie können eine zustandslose Containeranwendung ausführen oder einen Job einmalig, nach einem Zeitplan oder als Teil eines Workflows ausführen.
- Sie können Zeitlimits für jede Anfrage oder Aufgabe konfigurieren.
- Er ist hoch skalierbar und sicher.
- Sie bietet integriertes Load-Balancing und Autoscaling.
Weitere Informationen zum Bereitstellen von Containern in Cloud Run finden Sie unter Container-Images in Cloud Run bereitstellen.
Batch
Batch ist ein vollständig verwalteter Dienst, mit dem Sie Batchverarbeitungsarbeitslasten auf Trusted Cloud by S3NS -Ressourcen planen, in die Warteschlange stellen und ausführen können. Es wurde für die Ausführung von parallelisierbaren Batcharbeitslasten entwickelt, einschließlich der in Containern verpackten.
Weitere Informationen zum Bereitstellen von Containern in Batch finden Sie in den folgenden Dokumenten:
Google Kubernetes Engine
Wenn Sie komplexe Anwendungen, Mikrodienste und einen kontinuierlichen Betrieb ausführen und eine detaillierte Steuerung und Skalierbarkeit benötigen, ist Google Kubernetes Engine (GKE) das am besten geeignete Angebot. Weitere Informationen zum Bereitstellen von Containern in GKE finden Sie in den folgenden Dokumenten:
- GKE – Übersicht
- Kurzanleitung: Anwendung in einem GKE-Cluster bereitstellen
- Container-Webanwendung bereitstellen
Support anfordern
Wenn Sie Fragen zum Migrationsprozess haben oder Unterstützung benötigen, lesen Sie die FAQs oder wenden Sie sich an den Trusted Cloud -Support.