In diesem kompletten Beispiel wird eine Bereitstellung mit einer virtuellen Maschine beschrieben, die ein containeroptimiertes Image verwendet. Weitere Informationen zur Verwendung von Containern mit Compute Engine finden Sie unter Containeroptimierte Compute Engine-Images.
In dieser Anleitung wird Folgendes beschrieben:
- Ein einfaches Containermanifest erstellen.
- Eine Konfiguration und eine Vorlage erstellen, in der ein Container-Image verwendet wird.
- Ressourcen bereitstellen und prüfen, ob die Bereitstellung erfolgreich war.
Containermanifest erstellen
Damit Sie Container nutzen können, müssen Sie ein Containermanifest definieren. In dem Manifest werden Attribute wie das Container-Image, die zu startenden Container, die beim Starten auszuführenden Befehle und die zu aktivierenden Ports beschrieben.
Erstellen Sie eine Datei mit dem Namen container_manifest.yaml
und mit folgendem Inhalt:
Dieses Manifest erstellt einen Container mit dem Namen "simple-echo", der das Container-Image Hello Application verwendet und einen Echo-Server startet, der Port 8080 überwacht.
Vorlage und Konfiguration erstellen
Erstellen Sie als Nächstes eine Vorlage, durch die eine VM-Instanz mit einem containeroptimierten Image gestartet wird. Erstellen Sie eine Datei mit dem Namen container_vm.[jinja|py]
und folgendem Inhalt:
Jinja
Python
Erstellen Sie die entsprechende Schemadatei, die die Struktur der Vorlage festlegt:
Jinja
Python
Beachten Sie, dass in dieser Vorlage verschiedene Parameter definiert sind, wie zum Beispiel:
- Die Umgebungsvariablen
deployment
,name
undproject
. Deployment Manager fügt diese Variablen automatisch ein. - Die Attribute
zone
,containerImage
undcontainerManifest
, die in der Konfiguration festgelegt werden.
Erstellen Sie eine Konfigurationsdatei mit dem Namen container_vm.yaml
, die in etwa so aussieht:
Jinja
Python
Ersetzen Sie ZONE_TO_RUN
durch die gewünschte Zone für Ihre virtuelle Maschine. Beachten Sie, dass durch die Datei auch das zu verwendende Container-Image und das bereits erstellte Containermanifest definiert werden.
VM-Instanz bereitstellen
Stellen Sie als Letztes mithilfe der Google Cloud CLI die VM-Instanz bereit:
gcloud deployment-manager deployments create my-container-deployment \
--config container_vm.yaml
Wenn die Bereitstellung abgeschlossen ist, können Sie die Details Ihrer Bereitstellung ansehen. Zum Beispiel:
$ gcloud deployment-manager deployments describe my-container-deployment
creationTimestamp: '2015-04-02T12:24:31.645-07:00'
fingerprint: ''
id: '8602410885927938432'
manifest: https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/my-container-deployment/manifests/manifest-1428002671645
name: my-container-deployment
state: DEPLOYED
resources:
NAME TYPE ID UPDATE_STATE ERRORS
my-container-deployment-my-container-vm compute.v1.instance 3775082612632070557 COMPLETED -
Prüfen, ob die Instanz ausgeführt wird
Prüfen Sie, ob Ihre Containerinstanz gestartet wurde. Rufen Sie dazu mit einem Browser die externe IP-Adresse der virtuellen Maschine auf. Es sollte dann hello world
angezeigt werden:
Fügen Sie eine Compute Engine-Firewallregel hinzu, die es Ihnen ermöglicht, den Traffic auf der virtuellen Maschine über den Port 8080 abzufragen:
gcloud compute firewall-rules create allow-8080 --allow tcp:8080
Rufen Sie die externe IP-Adresse Ihrer Instanz ab:
$ gcloud compute instances describe my-container-deployment-my-container-vm ... name: my-container-vm-my-container-deployment networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 104.197.8.138 type: ONE_TO_ONE_NAT name: nic0 network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default networkIP: 10.240.97.220 scheduling: automaticRestart: true onHostMaintenance: MIGRATE selfLink: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-container-deployment-my-container-vm status: RUNNING tags: fingerprint: 42WmSpB8rSM= zone: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a ...
In diesem Fall lautet die externe IP
104.197.8.138
.Geben Sie in einem Browserfenster die externe IP und den Port 8080 in der Adressleiste ein. Beispiel:
104.197.8.138:8080
.Wenn der Vorgang erfolgreich war, sollte die Meldung
hello world
angezeigt werden.
(Optional) Bereitstellung löschen
Wenn Sie Kosten sparen möchten und Ihre Bereitstellung nicht mehr wollen oder brauchen, löschen Sie die Bereitstellung.
gcloud deployment-manager deployments delete my-container-deployment
Weitere Informationen
In den umfassenden Nutzerhandbüchern und in der API finden Sie nähere Einzelheiten über Deployment Manager.
Lesen Sie auch folgende Anleitungen:
- Netzwerkprotokollanwendung mit Lastenausgleich erstellen
- HTTP-Protokollanwendung mit Lastenausgleich erstellen