Instanzvorlagen erstellen

Auf dieser Seite wird das Erstellen und Verwalten von Instanzvorlagen beschrieben. Mit Instanzvorlagen können Sie den Maschinentyp, das Bootlaufwerk-Image, das Netzwerk und andere VM-Attribute angeben, die Sie beim Erstellen von VM-Instanzen verwenden möchten.

Sie können mit Instanzvorlagen sowohl VMs in einer verwalteten Instanzgruppe als auch einzelne VMs erstellen.

Hinweis

Beschränkungen

Eine freigegebene VPC auf anderen Schnittstellen als nic0 für Instanzvorlagen wird im gcloud-Tool und in der API unterstützt, jedoch nicht in der Cloud Console.

Neue Instanzvorlage erstellen

Die meisten VM-Attribute, die Sie in einer Anfrage zum Erstellen einer einzelnen VM-Instanz angeben können, lassen sich auch für eine Instanzvorlage angeben, z. B. beliebige Instanzmetadaten, Startskripts, nichtflüchtiger Speicher, Dienstkonten und so weiter. Sie müssen den Maschinentyp, das Bootlaufwerk und das Netzwerk angeben.

Eine Instanzvorlage können Sie über die Google Cloud Console, mit dem gcloud-Befehlszeilentool oder mit der API erstellen.

Console

  1. Rufen Sie in der Cloud Console die Seite Instanzvorlagen auf.

    Instanzvorlagen aufrufen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Geben Sie Werte für die folgenden Felder ein oder übernehmen Sie die Standardwerte. Die Standardwerte ändern sich je nach ausgewählter Maschinenfamilie.

    • Maschinentyp
    • Bild
    • Bootlaufwerk
    • VPC-Netzwerk
    • IP-Adresse
  4. Optional: Wenn Sie ein Image ausgewählt haben, das Shielded VM unterstützt, ändern Sie die Einstellungen für die Shielded VM der VM:

    1. Klicken Sie unter Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten auf den Tab Netzwerk.
    2. Wenn Sie Secure Boot deaktivieren möchten, entfernen Sie das Häkchen bei Secure Boot aktivieren. Mit Secure Boot können Sie Ihre VM-Instanzen vor Malware und Rootkits auf Boot- und Kernel-Ebene schützen. Weitere Informationen finden Sie unter Secure Boot.
    3. Wenn Sie das Virtual Trusted Platform Module (vTPM) deaktivieren möchten, entfernen Sie das Häkchen bei vTPM aktivieren. Durch das vTPM wird Measured Boot aktiviert, das die Integrität der VM vor und während des Bootvorgangs prüft. Weitere Informationen finden Sie unter Virtual Trusted Platform Module (vTPM).

    4. Wenn Sie die Integritätsüberwachung deaktivieren möchten, entfernen Sie das Häkchen bei Integrity Monitoring aktivieren. Mit der Integritätsüberwachung können Sie die Integrität beim Starten Ihrer Shielded VM-Instanzen mithilfe von Cloud Monitoring überwachen. Weitere Informationen finden Sie unter Integritätsmonitoring.

  5. Optional: Klicken Sie unter Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten auf die Tabs, um Ihre Vorlage weiter anzupassen. Dort können Sie z. B. bis zu 15 sekundäre Nicht-Bootlaufwerke hinzufügen.

  6. Optional: Klicken Sie auf Entsprechende REST-Anfrage, um den REST-Anfragetext aufzurufen, der die JSON-Darstellung Ihrer Instanzvorlage enthält.

  7. Klicken Sie auf Erstellen, um die Vorlage anzulegen.

gcloud

Erstellen Sie mit dem Befehl instance-templates create eine Instanzvorlage in gcloud compute.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME

Ersetzen Sie dabei INSTANCE_TEMPLATE_NAME durch einen Namen für die Instanzvorlage.

Wenn Sie die Vorlageneinstellungen nicht explizit angeben, verwendet gcloud compute die folgenden Standardwerte:

  • Maschinentyp: der Maschinentyp, z. B. n1-standard-1.
  • Image: Das neueste Debian-Image
  • Bootlaufwerk: Ein neues Standardbootlaufwerk mit dem gleichen Namen wie die VM
  • Netzwerk: Das Standard-VPC-Netzwerk
  • IP-Adresse: Eine sitzungsspezifische externe IP-Adresse

Sie können diese Konfigurationseinstellungen auch explizit festlegen. Beispiel:

gcloud compute instance-templates create example-template-custom \
    --machine-type=e2-standard-4 \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --boot-disk-size=250GB

Sie können bis zu 15 sekundäre Nicht-Bootlaufwerke hinzufügen. Geben Sie das Flag --create-disk für jedes erstellte sekundäre Laufwerk an. Wenn Sie sekundäre Laufwerke aus einem öffentlichen oder einem vorhandenen Image erstellen möchten, geben Sie im Flag --create-disk die Attribute image und image-project an. Für die Erstellung eines leeren Laufwerks geben Sie diese Attribute nicht an. Fügen Sie optional Attribute für das Laufwerk size und type hinzu.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --create-disk= \
        {--image=DISK_IMAGE | --image-family=DISK_IMAGE_FAMILY}, \
        image-project=DISK_IMAGE_PROJECT, \
        size=SIZE_GB

Dabei gilt:

  • INSTANCE_TEMPLATE_NAME: Der Name der neuen Vorlage.

  • Für DISK_IMAGE oder DISK_IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:
    • DISK_IMAGE ist der Name des Images, das Sie als Nicht-Bootlaufwerk verwenden möchten.
    • DISK_IMAGE_FAMILY ist eine Image-Familie, die als Nicht-Bootlaufwerk verwendet werden soll.

      Weitere Informationen zu Image-Familien finden Sie unter Best Practices für die Verwendung von Image-Familien in Compute Engine.

  • Bei leeren Laufwerken geben Sie nicht das Attribut image an.

  • DISK_IMAGE_PROJECT ist das Image-Projekt, das das Image enthält.

    Bei leeren Laufwerken geben Sie nicht das Attribut image-project an. Weitere Informationen zu öffentlichen Images finden Sie unter Öffentliche Images.

  • SIZE_GB: Die Größe des sekundären Laufwerks.

Wenn Sie ein Image ausgewählt haben, das Shielded VM unterstützt, können Sie optional die Shielded VM-Einstellungen der Instanz mit einem der folgenden Flags ändern:

  • --no-shielded-secure-boot: Secure Boot wird deaktiviert

    Mit Secure Boot können Sie Ihre VM-Instanzen vor Malware und Rootkits auf Boot- und Kernelebene schützen. Weitere Informationen finden Sie unter Secure Boot.

  • --no-shielded-vtpm: Deaktiviert das Virtual Trusted Platform Module (vTPM)

    Durch das vTPM wird Measured Boot aktiviert, das die Integrität der VM vor und während des Startens überprüft. Weitere Informationen finden Sie unter Virtual Trusted Platform Module (vTPM).

  • --no-shielded-integrity-monitoring: Deaktiviert das Integritätsmonitoring

    Mit dem Integritätsmonitoring können Sie die Integrität beim Booten Ihrer Shielded VM-Instanzen mithilfe von Cloud Monitoring beobachten. Weitere Informationen finden Sie unter Integritätsüberwachung.

Eine Liste aller verfügbaren Unterbefehle und Flags finden Sie in der Referenz zu instance-templates.

Eine Vorlage mit den Einstellungen für die Standardkonfiguration könnte so aussehen:

gcloud compute instance-templates describe example-template
creationTimestamp: '2019-09-10T16:18:32.042-07:00'
description: ''
id: '6057583701980539406'
kind: compute#instanceTemplate
name: example-template
properties:
  canIpForward: false
  disks:
  - autoDelete: true
    boot: true
    initializeParams:
      sourceImage: https://compute.googleapis.com/compute/v1/projects/debian-cloud/global/images/family/debian-10
    kind: compute#attachedDisk
    mode: READ_WRITE
    type: PERSISTENT
  machineType: e2-standard-2
  networkInterfaces:
  - accessConfigs:
    - kind: compute#accessConfig
      name: external-nat
      type: ONE_TO_ONE_NAT
    network: https://compute.googleapis.com/compute/v1/projects/myproject/global/networks/default
  scheduling:
    automaticRestart: true
    onHostMaintenance: MIGRATE
  serviceAccounts:
  - email: default
    scopes:
    - https://www.googleapis.com/auth/devstorage.read_only
selfLink: https://compute.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/example-template

API

Stellen Sie zum Erstellen einer Instanzvorlage eine POST-Anfrage an die Methode instanceTemplates.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

Ersetzen Sie PROJECT_ID durch die Projekt-ID.

Geben Sie im Anfragetext die Vorlagenattribute an:

{
  "name": "INSTANCE_TEMPLATE_NAME"
  "properties": {
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default",
        "accessConfigs":
        [
          {
            "name": "external-IP",
            "type": "ONE_TO_ONE_NAT"
          }
        ]
      }
    ],
    "disks":
    [
      {
        "type": "PERSISTENT",
        "boot": true,
        "mode": "READ_WRITE",
        "initializeParams":
        {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ]
  }
}

Dabei gilt:

  • INSTANCE_TEMPLATE_NAME: Name der Instanzvorlage
  • ZONE: die Zone, in der sich die VMs befinden
  • MACHINE_TYPE: den Maschinentyp der VMs.

  • IMAGE_PROJECT ist das Image-Projekt, das das Image enthält.

    Weitere Informationen zu öffentlichen Images finden Sie unter Öffentliche Images.

  • Für IMAGE oder IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:
    • IMAGE: eine bestimmte Version des Images

      Beispiel: "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"

    • IMAGE_FAMILY ist eine Image-Familie.

      Dadurch wird die VM aus dem neuesten nicht verworfenen Betriebssystem-Image erstellt. Wenn Sie beispielsweise "sourceImage": "projects/debian-cloud/global/images/family/debian-10" angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der Debian 10-Image-Familie an.

      Weitere Informationen zu Image-Familien finden Sie unter Best Practices für die Verwendung von Image-Familien in Compute Engine.

Sie können eine der folgenden Optionen für das Attribut disks angeben:

  • Geben Sie initializeParams an, um nichtflüchtige Bootlaufwerke für jede Instanz zu erstellen. Sie können bis zu 15 sekundäre Nicht-Bootlaufwerke hinzufügen. Geben Sie dazu für jedes zusätzliche Laufwerk das Attribut initializeParams an. Sie können Laufwerke mithilfe von öffentlichen oder benutzerdefinierten Images (oder Image-Familien) in sourceImage erstellen, wie im vorherigen Beispiel gezeigt. Wenn Sie leere Laufwerke hinzufügen möchten, geben Sie sourceImage nicht an.

  • Geben Sie source an, um ein vorhandenes nichtflüchtiges Bootlaufwerk hinzuzufügen. Wenn Sie ein vorhandenes Bootlaufwerk hinzufügen, können Sie aus Ihrer Vorlage nur eine Instanz erstellen.

Optional können Sie die Attribute diskSizeGb, diskType undlabels für initializeParams und das Attribut diskSizeGb fürsource angeben.

Wenn Sie ein Image ausgewählt haben, das Shielded VM unterstützt, können Sie optional die Shielded VM-Einstellungen der VM mit den folgenden booleschen Anfragetextelementen ändern:

  • enableSecureBoot: aktiviert oder deaktiviert Secure Boot

    Mit Secure Boot können Sie Ihre VM-Instanzen vor Malware und Rootkits auf Boot- und Kernelebene schützen. Weitere Informationen finden Sie unter Secure Boot.

  • enableVtpm: Aktiviert oder deaktiviert das Virtual Trusted Platform Module (vTPM)

    Durch das vTPM wird Measured Boot aktiviert, das die Integrität der VM vor und während des Startens überprüft. Weitere Informationen finden Sie unter Virtual Trusted Platform Module (vTPM).

    Beim Deaktivieren des vTPM wird auch die Integritätsüberwachung deaktiviert, da dies auf Daten basiert, die von Measured Boot erfasst werden.

  • enableIntegrityMonitoring: aktiviert oder deaktiviert Integritätsüberwachung

    Mit dem Integritätsmonitoring können Sie die Integrität beim Booten der Laufzeit Ihrer Shielded VM-Instanzen mithilfe von Cloud Monitoring-Berichten beobachten und prüfen. Weitere Informationen finden Sie unter Integritätsüberwachung.

Weitere Informationen zu Anfrageparametern finden Sie unter der Methode instanceTemplates.insert.

Instanzvorlage auf Basis einer vorhandenen Instanz erstellen

Mit der Compute Engine API oder dem gcloud-Tool können Sie die Konfiguration einer vorhandenen VM-Instanz als Instanzvorlage speichern. Die Definition der Quelllaufwerke in der Vorlage kann optional überschrieben werden.

Wenn Sie andere Attribute überschreiben müssen, erstellen Sie zuerst eine Instanzvorlage auf der Grundlage einer vorhandenen Instanz und dann eine ähnliche Vorlage mit den gewünschten Überschreibungen.

gcloud

Verwenden Sie den Befehl gcloud instance-templates create mit den Flags --source-instance und --source-instance-zone.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --source-instance=SOURCE_INSTANCE \
    --source-instance-zone=SOURCE_INSTANCE_ZONE \

Fügen Sie ein oder mehrere --configure-disk-Flags hinzu, um die Definition der Laufwerke der Quellinstanz zu überschreiben:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --source-instance=SOURCE_INSTANCE \
    --source-instance-zone=SOURCE_INSTANCE_ZONE \
    --configure-disk= \
        device-name=SOURCE_DISK, \
        instantiate-from=INSTANTIATE_FROM, \
        auto-delete=AUTO_DELETE

Dabei gilt:

  • INSTANCE_TEMPLATE_NAME der Name der zu erstellenden Vorlage ist.
  • SOURCE_INSTANCE ist der Name der Instanz, die als Modell für die neue Vorlage verwendet werden soll.
  • SOURCE_INSTANCE_ZONE ist die Zone, die die Quellinstanz enthält.
  • SOURCE_DISK ist der Name eines Laufwerks der Quellinstanz, das Sie in der Vorlage überschreiben möchten.
  • INSTANTIATE_FROM angibt, ob das Laufwerk mit aufgenommen und welches Image verwendet werden soll. Gültige Werte sind vom Laufwerkstyp abhängig:

    • source-image oder source-image-family (nur für Boot- und andere nichtflüchtige Laufwerke mit Lese-/Schreibzugriff gültig).
    • custom-image (nur für Boot- und andere nichtflüchtige Laufwerke mit Lese-/Schreibzugriff gültig). Wenn dieses Flag angegeben ist, muss auch der Pfad oder die URL für das benutzerdefinierte Image, wie im folgenden Beispiel dargestellt, angegeben werden. Alternativ können Sie eine Image-Familie auch im folgenden Format angeben:

      projects/exampleproject/global/images/family/IMAGE_FAMILY_NAME.

      Ersetzen Sie IMAGE_FAMILY_NAME durch den Namen der Image-Familie.

    • attach-read-only (nur für schreibgeschützte Laufwerke gültig).

    • blank (nur für nichtflüchtige Speicher, bei denen es sich nicht um ein Bootlaufwerk handelt, und lokale SSDs gültig). Ist dieser Wert angegeben und dient die Vorlage zum Erstellen einer neuen Instanz, wird das Laufwerk unformatiert erstellt. Sie müssen das Laufwerk in einem Startskript formatieren und bereitstellen, bevor Sie es in einer skalierbaren Konfiguration verwenden können.

    • do-not-include (nur für nichtflüchtige Speicher, bei denen es sich nicht um ein Bootlaufwerk handelt, und schreibgeschützte Laufwerke gültig).

    • blank (nur für nichtflüchtige Speicher, bei denen es sich nicht um ein Bootlaufwerk handelt, und schreibgeschützte Laufwerke gültig).

  • AUTO_DELETE gibt an, ob das Laufwerk automatisch gelöscht wird, sobald die Instanz gelöscht wird. Gültige Werte sind false, no, true und yes.

Mit folgendem Befehl wird beispielsweise eine Instanzvorlage auf der Basis von my-source-instance erstellt, mit der Option, das ursprüngliche Image von data-disk-a zu verwenden, aber mit true für automatisches Löschen. Außerdem wird data-disk-b durch ein benutzerdefiniertes Image ersetzt.

gcloud compute instance-templates create my-instance-template  \
    --source-instance=my-source-instance \
    --configure-disk=device-name=data-disk-a,instantiate-from=source-image, \
      auto-delete=true
    --configure-disk=device-name=data-disk-b,instantiate-from=custom-image, \
      custom-image=projects/cps-cloud/global/images/cos-89-16108-403-15

API

Rufen Sie die Methode instanceTemplates.insert auf und geben Sie das Feld sourceInstance an. Wenn Sie die Definition der Laufwerke der Quellinstanz überschreiben möchten, fügen Sie ein oder mehrere diskConfigs-Felder hinzu.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "sourceInstance": "zones/SOURCE_INSTANCE_ZONE/instances/SOURCE_INSTANCE",
  "sourceInstanceParams": {
    "diskConfigs": [
      {
        "deviceName": "SOURCE_DISK",
        "instantiateFrom": "INSTANTIATE_FROM",
        "autoDelete": false
      }
    ]
  }
}

Dabei gilt:

  • PROJECT_ID: die Projekt-ID für die Anfrage.
  • INSTANCE_TEMPLATE_NAME: Der Name der neuen Vorlage.
  • SOURCE_INSTANCE_ZONE ist die Zone der Quellinstanz.
  • SOURCE_INSTANCE: Name der Quellinstanz, die als Modell für diese Instanzvorlage verwendet werden soll
  • SOURCE_DISK: der Name eines Laufwerks der Quellinstanz, das Sie in der Vorlage überschreiben möchten.
  • INSTANTIATE_FROM: gibt an, ob das Laufwerk mit aufgenommen und welches Image verwendet werden soll.

    Gültige Werte sind vom Laufwerkstyp abhängig:

    • source-image oder source-image-family (nur für Boot- und andere nichtflüchtige Laufwerke mit Lese-/Schreibzugriff gültig).
    • custom-image (nur für Boot- und andere nichtflüchtige Laufwerke mit Lese-/Schreibzugriff gültig). Wenn dieses Flag angegeben ist, muss auch der Pfad oder die URL für das benutzerdefinierte Image, wie im folgenden Beispiel dargestellt, angegeben werden. Alternativ können Sie eine Image-Familie auch im folgenden Format angeben:

      projects/exampleproject/global/images/family/IMAGE_FAMILY_NAME.

      Ersetzen Sie IMAGE_FAMILY_NAME durch den Namen der Image-Familie.

    • attach-read-only (nur für schreibgeschützte Laufwerke gültig).

    • blank (nur für nichtflüchtige Speicher, bei denen es sich nicht um ein Bootlaufwerk handelt, und lokale SSDs gültig). Ist dieser Wert angegeben und dient die Vorlage zum Erstellen einer neuen Instanz, wird das Laufwerk unformatiert erstellt. Sie müssen das Laufwerk in einem Startskript formatieren und bereitstellen, bevor Sie es in einer skalierbaren Konfiguration verwenden können.

    • do-not-include (nur für nichtflüchtige Speicher, bei denen es sich nicht um ein Bootlaufwerk handelt, und schreibgeschützte Laufwerke gültig).

Im folgenden Beispiel wird eine neue Instanzvorlage auf der Basis von my-source-instance erstellt. In der Instanzvorlage wird das Image für data-disk-a durch projects/cos-cloud/global/images/cos-89-16108-403-15 ersetzt.

POST https://compute.googleapis.com/compute/v1/projects/my_project/global/instanceTemplates

{
  "name": "my-instance-template",
  "sourceInstance": "zones/us-central1-a/instances/my-source-instance",
  "sourceInstanceParams":
  {
    "diskConfigs":
    [
      {
        "deviceName": "data-disk-a",
        "instantiateFrom": "custom-image",
        "customImage": "projects/cos-cloud/global/images/cos-89-16108-403-15"
      }
    ]
  }
}

In der folgenden Tabelle sind die Optionen zum Überschreiben der Definition von Laufwerken in der Vorlage aufgeführt.

Laufwerkstyp Optionen
Bootlaufwerk
  • [Standard] Dasselbe Quell-Image oder dieselbe Image-Familie wie zum Erstellen des Bootlaufwerks auf der Quellinstanz verwenden.
  • Verwenden Sie die URL eines beliebigen benutzerdefinierten oder öffentlichen Images, wie im vorherigen Beispiel beschrieben, oder geben Sie eine Image-Familie im folgenden Format an:

    projects/exampleproject/global/images/family/IMAGE_FAMILY_NAME

Andere nichtflüchtige Speicher mit Lese-/Schreibzugriff
  • [Standard] Dasselbe Quell-Image oder dieselbe Image-Familie wie zum Erstellen des Bootlaufwerks auf der Quellinstanz verwenden. Hinweis: Wenn das Laufwerk der Quellinstanz kein Attribut für Quell-Image-/Quell-Image-Familie hat, wird es als leeres Laufwerk in die Vorlage aufgenommen.
  • Verwenden Sie die URL eines beliebigen benutzerdefinierten oder öffentlichen Images, wie im vorherigen Beispiel beschrieben, oder geben Sie eine Image-Familie im folgenden Format an:

    projects/exampleproject/global/images/family/IMAGE_FAMILY_NAME

  • Stattdessen ein leeres Laufwerk in der Vorlage verwenden. Dient die Vorlage zum Erstellen einer neuen Instanz, wird das Laufwerk unformatiert erstellt. Sie müssen das Laufwerk in einem Startskript formatieren und bereitstellen, bevor Sie es in einer skalierbaren Konfiguration verwenden können.
  • Das Laufwerk nicht mit aufnehmen.
Schreibgeschützte Laufwerke
  • [Standard] Das Laufwerk im schreibgeschützten Modus aufnehmen.
  • Das Laufwerk nicht mit aufnehmen.
Lokale SSD(s)
  • [Standard] Eine leere lokale SSD mit aufnehmen. Dient die Vorlage zum Erstellen einer neuen Instanz, wird das Laufwerk unformatiert erstellt. Sie müssen das Laufwerk in einem Startskript formatieren und bereitstellen, bevor Sie es in einer skalierbaren Konfiguration verwenden können.

Sie können für jedes Laufwerk auch das Attribut auto-delete überschreiben und angeben, ob das Laufwerk gelöscht oder nicht gelöscht werden soll, wenn die zugehörige Instanz gelöscht wird.

Wenn keine Optionen zum Überschreiben angegeben sind, entspricht die Laufwerkskonfiguration in der Vorlage standardmäßig der Quellinstanz.

Instanzvorlage auf Basis einer vorhandenen Vorlage erstellen

Sie können eine vorhandene Instanzvorlage nicht aktualisieren. Wenn eine Instanzvorlage jedoch veraltet ist oder Sie Änderungen vornehmen müssen, können Sie über die Konsole eine andere mit ähnlichen Attributen erstellen.

  1. Zur Seite Instanzvorlagen.

    Zu Instanzvorlagen

  2. Klicken Sie auf die Instanzvorlage, die Sie kopieren und aktualisieren möchten.

  3. Klicken Sie auf Ähnliche erstellen.

  4. Aktualisieren Sie die Konfiguration in der neuen Vorlage.

  5. Klicken Sie auf Erstellen.

Instanzvorlage mit einem Container-Image erstellen

Sie können ein Container-Image in einer Instanzvorlage angeben. Standardmäßig enthält Compute Engine in der Vorlage auch ein Container-Optimized OS-Image mit installiertem Docker. Wenn Sie die Vorlage zum Erstellen einer neuen Instanz verwenden, wird der Container beim Start der Instanz automatisch gestartet.

Console

  1. Rufen Sie die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Klicken Sie im Abschnitt Container das Kästchen Container-Image für diese VM-Instanz bereitstellen an.

  4. Geben Sie das zu verwendende Container-Image an.

    • Sie können ein Image aus Container Registry oder Artifact Registry angeben. Beispiel:
      • gcr.io/cloud-marketplace/google/nginx1:1.12 wählt ein NGINX 1.12-Container-Image aus Google Cloud Marketplace aus.
      • us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 wählt ein Beispiel-hello-app-Image aus, das in Artifact Registry gespeichert ist.
    • Wenn Sie ein Container-Image von Docker Hub verwenden, geben Sie immer den vollständigen Docker-Image-Namen an. Geben Sie zum Beispiel den folgenden Image-Namen an, um ein Apache-Container-Image bereitzustellen: docker.io/httpd:2.4.
  5. Klicken Sie optional auf Erweiterte Containeroptionen. Weitere Informationen finden Sie unter Optionen zum Ausführen von Containern konfigurieren.

  6. Klicken Sie auf Erstellen.

gcloud

Führen Sie den Befehl gcloud compute instance-templates create-with-container aus:

gcloud compute instance-templates create-with-container INSTANCE_TEMPLATE_NAME \
     --container-image=CONTAINER_IMAGE

Dabei gilt:

  • INSTANCE_TEMPLATE_NAME: Der Name der zu erstellenden Vorlage.
  • CONTAINER_IMAGE: Der vollständige Name des zu verwendenden Container-Images.

Mit dem folgenden Befehl wird beispielsweise eine neue Instanzvorlage mit dem Namen nginx-vm erstellt. Eine aus dieser Vorlage erstellte VM-Instanz startet das Container-Image gcr.io/cloud-marketplace/google/nginx1:1.12 und führt es aus, wenn die VM gestartet wird.

gcloud compute instance-templates create-with-container nginx-vm \
     --container-image=gcr.io/cloud-marketplace/google/nginx1:1.12

Sie können auch Optionen zum Ausführen des Containers konfigurieren.

Erstellen einer Instanzvorlage, die ein Subnetz spezifiziert

Mit dem Flag --subnet können Sie Instanzen, die aus der Vorlage erstellt wurden, in das Subnetz Ihrer Wahl einfügen. Für das Flag --subnet ist das Flag --region erforderlich.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --region=REGION \
    --subnet=SUBNET_NAME_OR_URL

Dabei gilt:

  • INSTANCE_TEMPLATE_NAME: Der Name der Instanzvorlage.
  • REGION: Die Region des Subnetzes.
  • SUBNET_NAME_OR_URL: Entweder der Name des Subnetzes oder seine URL.

Im folgenden Beispiel wird eine Vorlage namens template-qa erstellt, die nur Instanzen im Subnetz subnet-us-qa erstellt.

gcloud compute instance-templates create template-qa \
    --region=us-central1 \
    --subnet=subnet-us-qa

Created [https://compute.googleapis.com/compute/latest/projects/PROJECT_ID/global/instanceTemplates/template-qa].
NAME        MACHINE_TYPE  PREEMPTIBLE CREATION_TIMESTAMP
template-qa e2-standard-2             2019-12-23T20:34:00.791-07:00

Wenn Sie mit dieser Vorlage eine Instanz für eine MIG (mit oder ohne Autoscaling) erstellen, wird die Instanz automatisch in der angegebenen Region und im angegebenen Subnetz erstellt. Auf diese Weise können Sie das Subnetz von neuen Instanzen kontrollieren, die für das Load-Balancing erstellt wurden.

Verwendung benutzerdefinierter und öffentlicher Images in Ihren Instanzvorlagen

Sie können entweder ein benutzerdefiniertes Image oder ein öffentliches Image für Ihre Instanzvorlagen verwenden:

  • Benutzerdefinierte Images. Da MIGs Instanzen häufig hinzufügen und entfernen können, ist es sinnvoll, ein benutzerdefiniertes Image zu erstellen und dieses in der Instanzvorlage anzugeben. Sie können Ihr Image mit den Anwendungen und Einstellungen vorbereiten, die Ihre VMs benötigen, sodass Sie diese Elemente nicht manuell auf einzelnen VMs in der MIG konfigurieren müssen.

  • Öffentliche Images Sie können eine Instanzvorlage erstellen, die ein öffentliches Image und ein Startskript für die Vorbereitung der Instanz nach dem Start verwendet.

Benutzerdefinierte Images sind deterministischer und starten schneller als VMs mit Startskripts. Auf der anderen Seite sind Startskripts flexibler und ermöglichen Ihnen, die Anwendungen und Einstellungen in Ihren Instanzen leichter zu verändern.

Wenn Sie Images mithilfe von Image-Familien verwalten, können Sie den Namen Ihrer benutzerdefinierten oder öffentlichen Image-Familie in der Instanzvorlage angeben. Weitere Informationen zu Image-Familien finden Sie unter Best Practices für die Verwendung von Image-Familien in Compute Engine.

Instanzvorlage aktualisieren

Eine existierende Instanzvorlage kann nicht aktualisiert oder verändert werden, nachdem sie erstellt wurde. Wenn eine Instanzvorlage nicht mehr aktuell ist oder Sie Änderungen an der Konfiguration vornehmen müssen, erstellen Sie eine neue Instanzvorlage.

Nächste Schritte