VM-Instanz erstellen und starten

In diesem Dokument wird beschrieben, wie Sie eine VM-Instanz mit einem Bootlaufwerk-Image, einem Bootlaufwerk-Snapshot oder einem Container-Image erstellen. Einige Images unterstützen Shielded VM-Funktionen, die Sicherheitsfeatures wie UEFI-konforme Firmware, Secure Boot und vTPM-geschütztes Measured Boot bieten. Auf Shielded VMs sind standardmäßig vTPM und das Integritätsmonitoring aktiviert.

Beim Erstellen der VM können Sie ein oder mehrere Laufwerke dafür erstellen. Es ist aber auch möglich, nach dem Erstellen weitere Laufwerke hinzuzufügen. Nach dem Erstellen einer VM-Instanz wird diese von Compute Engine automatisch gestartet.

Informationen zu spezifischeren oder komplizierteren VM-Erstellung finden Sie in den folgenden Ressourcen:

Wenn Sie eine vorhandene Lizenz verwenden, lesen Sie den Abschnitt Eigene Lizenz mit Knoten für einzelne Mandanten verwenden.

Hinweis

VM-Instanz aus einem Image erstellen

In diesem Abschnitt wird gezeigt, wie Sie eine VM ausgehend von einem öffentlichen Betriebssystem-Image oder einem benutzerdefinierten Image erstellen. Eine VM enthält einen Bootloader, ein Boot-Dateisystem und ein Betriebssystem-Image.

Liste der in Compute Engine verfügbaren öffentlichen Images aufrufen

Bevor Sie eine VM mit einem öffentlichen Image erstellen, sollten Sie die Liste der öffentlichen Images prüfen, die in Compute Engine verfügbar sind.

Weitere Informationen zu den mit öffentlichen Images verfügbaren Features finden Sie unter Featureunterstützung nach Betriebssystem.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Images auf.

    Zur Seite „Images“

gcloud

  1. Führen Sie dazu diesen Befehl aus:

    gcloud compute images list
  2. Notieren Sie sich den Namen des Images oder der Image-Familie und den Namen des Projekts, das das Image enthält.

  3. Optional: Führen Sie den folgenden Befehl aus, um festzustellen, ob das Image Shielded VM-Funktionen unterstützt:

    gcloud compute images describe IMAGE_NAME \
        --project=IMAGE_PROJECT
    

    Dabei gilt:

    • IMAGE_NAME ist der Name des Images, das auf die Unterstützung von Shielded VM-Features geprüft werden soll.
    • IMAGE_PROJECT ist das Projekt, das das Image enthält.

    Wenn das Image Shielded VM-Features unterstützt, wird in der Ausgabe die folgende Zeile angezeigt: type: UEFI_COMPATIBLE.

API

  1. Führen Sie dazu diesen Befehl aus:

    GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/
    
  2. Notieren Sie sich den Namen des Images oder der Image-Familie und den Namen des Projekts, das das Image enthält.

  3. Optional: Führen Sie den folgenden Befehl aus, um festzustellen, ob das Image Shielded VM-Funktionen unterstützt:

    GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/IMAGE_NAME
    

    Dabei gilt:

    • IMAGE_PROJECT ist das Projekt, das das Image enthält.
    • IMAGE_NAME ist der Name des Images, das auf die Unterstützung von Shielded VM-Features geprüft werden soll.

    Wenn das Image Shielded VM-Features unterstützt, wird in der Ausgabe die folgende Zeile angezeigt: type: UEFI_COMPATIBLE.

Eine VM-Instanz aus einem öffentlichen Image erstellen

Google, Open-Source-Communities und Drittanbieter stellen öffentliche Betriebssystem-Images bereit und pflegen diese. Standardmäßig lassen sich mit allen Google Cloud-Projekten VMs aus öffentlichen Betriebssystem-Images erstellen. Wenn für Ihr Cloud-Projekt jedoch eine definierte Liste vertrauenswürdiger Images vorhanden ist, können Sie zum Erstellen einer VM nur die Images dieser Liste verwenden.

Wenn Sie ein Shielded VM-Image mit einer lokalen SSD erstellen, können Sie Daten nicht mit dem Integritätsmonitoring oder mit dem Virtual Trusted Platform Module (vTPM) schützen.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie auf Instanz erstellen.

  4. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

  5. Ändern Sie optional die Zone für diese VM. In Compute Engine wird die Liste der Zonen in jeder Region zufällig angeordnet, um die Verwendung in mehreren Zonen zu fördern.

  6. Wählen Sie eine Maschinenkonfiguration für Ihre VM aus.

  7. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um Ihr Bootlaufwerk zu konfigurieren. Sofern Sie nicht explizit ein anderes Bootlaufwerk auswählen und der Name der neuen VM mit dem Namen eines vorhandenen nichtflüchtigen Speichers übereinstimmt, wird der vorhandene nichtflüchtige Speicher automatisch als Bootlaufwerk an die VM angehängt.

  8. Wählen Sie auf dem Tab Öffentliche Images Folgendes aus:

    • Betriebssystem
    • Betriebssystemversion
    • Bootlaufwerktyp
    • Größe des Bootlaufwerks
  9. Klicken Sie auf Speichern, um Ihre Bootlaufwerksoptionen zu bestätigen.

  10. Wählen Sie HTTP-Traffic zulassen oder HTTPS-Traffic zulassen aus, um HTTP- oder HTTPS-Traffic zur VM zuzulassen. Wenn Sie eine dieser Optionen auswählen, fügt Compute Engine Ihrer VM ein Netzwerktag hinzu, das die Firewallregel mit der VM verknüpft. Anschließend erstellt Compute Engine die entsprechende Firewallregel für eingehenden Traffic, die den gesamten eingehenden Traffic über tcp:80 (HTTP) oder tcp:443 (HTTPS) zulässt.

  11. Wenn Sie ein Betriebssystem-Image ausgewählt haben, das Shielded VM-Funktionen unterstützt, können Sie optional die Einstellungen für Shielded VM ändern: Klicken Sie zum Ändern der Shielded VM-Einstellungen unter Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten auf den Tab Sicherheit und gehen Sie folgendermaßen vor:

  12. Klicken Sie auf Erstellen, um die VM zu erstellen und zu starten.

gcloud

  1. Wählen Sie ein öffentliches Image aus. Notieren Sie sich den Namen des Images oder der Image-Familie und den Namen des Projekts, das das Image enthält.
  2. Erstellen Sie mit dem Befehl gcloud compute instances create eine VM aus einer Image-Familie oder aus einer bestimmten Version eines Betriebssystem-Images:

    Wenn Sie das optionale Flag --shielded-secure-boot angeben, erstellt Compute Engine eine VM, bei der alle drei Shielded VM-Features aktiviert sind:

    Nachdem Compute Engine Ihre VM gestartet hat, müssen Sie die VM beenden, um Shielded VM-Optionen zu ändern.

    gcloud compute instances create VM_NAME \
        [--image=IMAGE | --image-family=IMAGE_FAMILY] \
        --image-project=IMAGE_PROJECT
        --machine-type=MACHINE_TYPE

    Dabei gilt:

    • VM_NAME ist der Name der neuen VM.
    • Für IMAGE oder IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:

      • IMAGE ist eine bestimmte Version eines öffentlichen Images.

        z. B. --image=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 --image-family=debian-10 angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der Debian 10-Image-Familie an.

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

    • MACHINE_TYPE legt einen vordefinierten oder benutzerdefinierten Maschinentyp für die neue VM fest.

      Verwenden Sie zum Abrufen einer Liste der in einer Zone verfügbaren Maschinentypen den Befehl gcloud compute machine-types list mit dem Flag --zones.

  3. Prüfen Sie, ob Compute Engine die VM erstellt hat:

    gcloud compute instances describe VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM.

API

  1. Wählen Sie ein öffentliches Image aus. Notieren Sie sich den Namen des Images oder der Image-Familie und den Namen des Projekts, das das Image enthält.
  2. Erstellen Sie mit der Methode instances.insert eine VM aus einer Image-Familie oder einer bestimmten Version eines Betriebssystem-Images:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    
    {
     "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
     "name": "VM_NAME",
     "disks": [
       {
         "initializeParams": {
           "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot": true
       }
     ],
     "shieldedInstanceConfig": {
       "enableSecureBoot": ENABLE_SECURE_BOOT
     }
    }
    

    Dabei gilt:

    • PROJECT_ID ist die ID des Projekts, in dem die VM erstellt werden soll.
    • ZONE ist die Zone, in der die VM erstellt werden soll.
    • MACHINE_TYPE_ZONE ist die Zone mit dem Maschinentyp, der für die neue VM verwendet werden soll.
    • MACHINE_TYPE legt einen vordefinierten oder benutzerdefinierten Maschinentyp für die neue VM fest.
    • VM_NAME ist der Name der neuen VM.
    • IMAGE_PROJECT ist das Projekt, das das Image enthält.

      Wenn Sie beispielsweise debian-10 als Image-Familie festlegen, geben Sie debian-cloud als Image-Projekt an.

    • Für IMAGE oder IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:

      • IMAGE ist eine bestimmte Version eines öffentlichen 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.

    • ENABLE_SECURE_BOOT: (Optional) Wenn Sie ein Image ausgewählt haben, das Shielded VM-Features unterstützt, aktiviert Compute Engine standardmäßig das Virtual Trusted Platform Module (vTPM) und das Integritätsmonitoring. Compute Engine aktiviert nicht standardmäßig Secure Boot.

      Wenn Sie für enableSecureBoot den Wert true angeben, erstellt Compute Engine eine VM, bei der alle drei Shielded VM-Features aktiviert sind. Nachdem Compute Engine Ihre VM gestartet hat, müssen Sie die VM beenden, um Shielded VM-Optionen zu ändern.

Python

def create_instance(compute, project, zone, name, bucket):
    # Get the latest Debian Jessie image.
    image_response = compute.images().getFromFamily(
        project='debian-cloud', family='debian-9').execute()
    source_disk_image = image_response['selfLink']

    # Configure the machine
    machine_type = "zones/%s/machineTypes/n1-standard-1" % zone
    startup_script = open(
        os.path.join(
            os.path.dirname(__file__), 'startup-script.sh'), 'r').read()
    image_url = "http://storage.googleapis.com/gce-demo-input/photo.jpg"
    image_caption = "Ready for dessert?"

    config = {
        'name': name,
        'machineType': machine_type,

        # Specify the boot disk and the image to use as a source.
        'disks': [
            {
                'boot': True,
                'autoDelete': True,
                'initializeParams': {
                    'sourceImage': source_disk_image,
                }
            }
        ],

        # Specify a network interface with NAT to access the public
        # internet.
        'networkInterfaces': [{
            'network': 'global/networks/default',
            'accessConfigs': [
                {'type': 'ONE_TO_ONE_NAT', 'name': 'External NAT'}
            ]
        }],

        # Allow the instance to access cloud storage and logging.
        'serviceAccounts': [{
            'email': 'default',
            'scopes': [
                'https://www.googleapis.com/auth/devstorage.read_write',
                'https://www.googleapis.com/auth/logging.write'
            ]
        }],

        # Metadata is readable from the instance and allows you to
        # pass configuration from deployment scripts to instances.
        'metadata': {
            'items': [{
                # Startup script is automatically executed by the
                # instance upon startup.
                'key': 'startup-script',
                'value': startup_script
            }, {
                'key': 'url',
                'value': image_url
            }, {
                'key': 'text',
                'value': image_caption
            }, {
                'key': 'bucket',
                'value': bucket
            }]
        }
    }

    return compute.instances().insert(
        project=project,
        zone=zone,
        body=config).execute()

VM aus einem benutzerdefinierten Image erstellen

Ein benutzerdefiniertes Image gehört nur zu Ihrem Projekt. Wenn Sie eine VM mit einem benutzerdefinierten Image erstellen möchten, müssen Sie zuerst ein benutzerdefiniertes Image erstellen.

Console

  1. Rufen Sie die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie auf Instanz erstellen.

  4. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

  5. Ändern Sie optional die Zone für diese VM. In Compute Engine wird die Liste der Zonen in jeder Region zufällig angeordnet, um die Verwendung in mehreren Zonen zu fördern.

  6. Wählen Sie eine Maschinenkonfiguration für Ihre VM aus.

  7. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um Ihr Bootlaufwerk zu konfigurieren. Gehen Sie anschließend so vor:

    1. Wählen Sie den Tab Benutzerdefinierte Images aus.
    2. Wählen Sie Ihr Projekt aus der Drop-down-Liste Images anzeigen aus.
    3. Wählen Sie das gewünschte Bild aus der Drop-down-Liste Bilder aus.
    4. Wählen Sie einen Bootlaufwerktyp aus.
    5. Geben Sie die Größe an.
    6. Klicken Sie auf Auswählen.
  8. Wählen Sie dann HTTP-Traffic zulassen oder HTTPS-Traffic zulassen aus, damit die VM HTTP- oder HTTPS-Traffic empfangen kann.

    In der Cloud Console werden der VM ein Netzwerk-Tag hinzugefügt und entsprechende Firewallregeln für eingehenden Traffic erstellt, die den gesamten eingehenden Traffic über tcp:80 (HTTP) oder tcp:443 (HTTPS) zulassen. Das Netzwerk-Tag ordnet die Firewallregel der VM zu. Weitere Informationen finden Sie unter Übersicht über Firewallregeln in der Virtual Private Cloud-Dokumentation.

  9. Klicken Sie auf Erstellen, um die VM zu erstellen und zu starten.

gcloud

Mit dem Befehl gcloud compute instances create erstellen Sie eine VM mit einem benutzerdefinierten Image:

gcloud compute instances create VM_NAME \
    --image-project IMAGE_PROJECT \
    [--image IMAGE | --image-family IMAGE_FAMILY]

Dabei gilt:

  • VM_NAME: Name der VM
  • IMAGE_PROJECT: Name des Projekts, das das Image enthält
  • Für IMAGE oder IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:
    • IMAGE: Name Ihres benutzerdefinierten Images

      z. B. --image=my-debian-image-v2.

    • IMAGE_FAMILY legt die benutzerdefinierte Image-Familie fest, wenn Sie Ihre benutzerdefinierten Images als Teil einer benutzerdefinierten Image-Familie erstellt haben.

      Dadurch wird die VM aus der neuesten nicht verworfenen Version des Betriebssystem des Betriebssystem-Images in Ihrer benutzerdefinierten Image-Familie erstellt. Wenn Sie beispielsweise --image-family=my-debian-family angeben, erstellt Compute Engine eine VM aus dem neuesten Betriebssystem-Image in Ihrer benutzerdefinierten Image-Familie my-debian-family.

API

Wenn Sie in der API eine VM mit einem benutzerdefinierten Image erstellen möchten, gehen Sie genauso vor wie beim Erstellen einer VM mit einem öffentlich verfügbaren Image.

Verwenden Sie zum Erstellen der VM aus einem benutzerdefinierten Image die Methode instances.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
 "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
 "name": "VM_NAME",
 "disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
     },
     "boot": true
   }
 ],
 .....
}

Dabei gilt:

  • PROJECT_ID ist die ID des Projekts, in dem die VM erstellt werden soll.
  • ZONE ist die Zone, in der die VM erstellt werden soll.
  • MACHINE_TYPE_ZONE ist die Zone mit dem Maschinentyp, der für die neue VM verwendet werden soll.
  • MACHINE_TYPE legt einen vordefinierten oder benutzerdefinierten Maschinentyp für die neue VM fest.
  • VM_NAME ist der Name der neuen VM.
  • IMAGE_PROJECT ist der Name des Projekts, das das benutzerdefinierte Image enthält.
  • Für IMAGE oder IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:

    • IMAGE ist der Name Ihres benutzerdefinierten Images.

      Beispiel: "sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2"

    • IMAGE_FAMILY legt die benutzerdefinierte Image-Familie fest, wenn Sie Ihre benutzerdefinierten Images als Teil einer benutzerdefinierten Image-Familie erstellt haben.

      Dies erstellt die VM aus dem aktuellen, nicht verworfenen Betriebssystem-Image in Ihrer benutzerdefinierten Image-Familie. Wenn Sie beispielsweise "sourceImage": "projects/my-project-1234/global/images/family/my-debian-family" angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der benutzerdefinierten my-debian-family-Image-Familie an.

VM-Instanz mit zusätzlichen Nicht-Bootlaufwerken erstellen

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie auf Instanz erstellen.

  4. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

  5. Ändern Sie optional die Zone für diese VM. In Compute Engine wird die Liste der Zonen in jeder Region zufällig angeordnet, um die Verwendung in mehreren Zonen zu fördern.

  6. Wählen Sie eine Maschinenkonfiguration für Ihre VM aus.

  7. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um Ihr Bootlaufwerk zu konfigurieren. Sofern Sie nicht explizit ein anderes Bootlaufwerk auswählen und der Name der neuen VM mit dem Namen eines vorhandenen nichtflüchtigen Speichers übereinstimmt, wird der vorhandene nichtflüchtige Speicher automatisch als Bootlaufwerk an die neue VM angehängt.

  8. Wählen Sie auf dem Tab Öffentliche Images folgende Optionen aus und klicken Sie auf Speichern:

    • Betriebssystem
    • Betriebssystemversion
    • Bootlaufwerktyp
    • Größe des Bootlaufwerks
  9. Wählen Sie HTTP-Traffic zulassen oder HTTPS-Traffic zulassen aus, um HTTP- oder HTTPS-Traffic zur VM zuzulassen. Wenn Sie eine dieser Optionen auswählen, fügt Compute Engine Ihrer VM ein Netzwerktag hinzu, das die Firewallregel mit der VM verknüpft. Anschließend erstellt Compute Engine die entsprechende Firewallregel für eingehenden Traffic, die den gesamten eingehenden Traffic über tcp:80 (HTTP) oder tcp:443 (HTTPS) zulässt.

  10. So fügen Sie der VM Nicht-Bootlaufwerke hinzu:

    1. Klicken Sie auf den Abschnitt Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
    2. Klicken Sie auf den Tab Laufwerke.
    3. Klicken Sie unter Zusätzliche Laufwerke auf Neues Laufwerk hinzufügen.
    4. Geben Sie für das Laufwerk Name, Typ, Quelltyp, Modus und Löschregel an. Weitere Informationen zum Hinzufügen neuer Laufwerke finden Sie unter Laufwerk erstellen und anhängen.
    5. Klicken Sie auf Fertig.
  11. Klicken Sie auf Erstellen, um die VM zu erstellen und zu starten.

gcloud

Führen Sie den Befehl gcloud compute instances create aus, um eine VM mit zusätzlichen Nicht-Bootlaufwerken zu erstellen.

Beim Erstellen einer VM können Sie bis zu 128 Nicht-Bootlaufwerke hinzufügen. Geben Sie das Flag --create-disk für jedes Nicht-Bootlaufwerk an, das Sie erstellen.

Wenn Sie Nicht-Bootlaufwerke aus einem öffentlichen oder einem vorhandenen Image erstellen möchten, geben Sie im Flag --create-disk die Attribute image oder image-family und image-project an. Wenn Sie diese Attribute nicht angeben, wird ein leeres Laufwerk erstellt. Optional können Sie Attribute für das Laufwerk size und type einfügen.

gcloud compute instances create VM_NAME \
    [--image=IMAGE | --image-family=IMAGE_FAMILY] \
    --image-project=IMAGE_PROJECT \
    --create-disk [image=DISK_IMAGE | image-family=DISK_IMAGE_FAMILY ],image-project=DISK_IMAGE_PROJECT,size=SIZE_GB,type=DISK_TYPE

Dabei gilt:

  • VM_NAME ist der Name der neuen VM.
  • IMAGE oder IMAGE_FAMILY. Wählen Sie eine der folgenden Optionen aus:

    • IMAGE ist eine bestimmte Version eines öffentlichen Images.

      z. B. --image=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 --image-family=debian-10 angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der Debian 10-Image-Familie an.

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

  • Ersetzen Sie für zusätzliche Laufwerke folgende Optionen:

    • 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.
    • DISK_IMAGE_PROJECT ist ein Image-Projekt, zu dem das Laufwerk-Image gehört.
    • SIZE_GB (optional): die Größe des Nicht-Bootlaufwerks.
    • DISK_TYPE (optional): die vollständige oder partielle URL für den Typ des nichtflüchtigen Speichers.

      z. B. https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd. Führen Sie den Befehl gcloud compute disk-types list aus, um die verfügbaren Laufwerktypen aufzurufen.

    Bei leeren Laufwerken geben Sie die Parameter DISK_IMAGE, DISK_IMAGE_FAMILY oder DISK_IMAGE_PROJECT nicht an.

API

Sie können beim Erstellen einer VM-Instanz bis zu 128 Nicht-Bootlaufwerke erstellen. Geben Sie dazu für jedes zusätzliche Laufwerk das Attribut initializeParams an. Sie können zusätzliche Laufwerke mit einem öffentlichen oder mit einem privaten Image erstellen. Wenn Sie ein leeres Laufwerk erstellen möchten, geben Sie für den Eintrag initializeParams keinen sourceImage-Wert an.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
 "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
 "name": "VM_NAME",
 "disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
     },
     "boot": true
   },
   {
     "initializeParams": {
       "diskSizeGb": "SIZE_GB",
       "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE",
       "diskType": "DISK_TYPE"
   },
   {
     "initializeParams": {
     "diskSizeGb": "SIZE_GB",
     "diskType": "DISK_TYPE"
   }
    }...]

Dabei gilt:

  • PROJECT_ID ist die ID des Projekts, in dem die VM erstellt werden soll.
  • ZONE ist die Zone, in der die VM erstellt werden soll.
  • MACHINE_TYPE_ZONE ist die Zone mit dem Maschinentyp, der für die neue VM verwendet werden soll.
  • MACHINE_TYPE legt einen vordefinierten oder benutzerdefinierten Maschinentyp für die neue VM fest.
  • VM_NAME ist der Name der neuen VM.
  • IMAGE_PROJECT ist der Name des Projekts, das das benutzerdefinierte Image enthält.
  • Für IMAGE oder IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:

    • IMAGE ist der Name Ihres benutzerdefinierten Images.

      z. B. "sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2".

    • IMAGE_FAMILY legt die benutzerdefinierte Image-Familie fest, wenn Sie Ihre benutzerdefinierten Images als Teil einer benutzerdefinierten Image-Familie erstellt haben.

      Dadurch wird die VM aus der neuesten nicht verworfenen Betriebssystemversion des Betriebssystem-Images in Ihrer benutzerdefinierten Image-Familie erstellt. Wenn Sie beispielsweise "sourceImage": "projects/my-project-1234/global/images/family/my-debian-family" angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der benutzerdefinierten my-debian-family-Image-Familie an.

  • Ersetzen Sie für zusätzliche Laufwerke folgende Optionen:

    • SIZE_GB ist die Laufwerkgröße.
    • DISK_IMAGE oder DISK_IMAGE_FAMILY: Geben Sie entweder ein Quell-Image oder eine Image-Familie für das Nicht-Bootlaufwerk an:

      • DISK_IMAGE ist der Name des Images, das Sie als Nicht-Bootlaufwerk verwenden möchten.

        Beispiel: "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE"

      • DISK_IMAGE_FAMILY ist eine Image-Familie, die als Nicht-Bootlaufwerk verwendet werden soll.

        Beispiel: "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/family/DISK_IMAGE_FAMILY"

    • DISK_TYPE ist die vollständige oder partielle URL für den Typ des nichtflüchtigen Speichers.

    z. B. https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd.

    Bei leeren Laufwerken geben Sie die Parameter DISK_IMAGE, DISK_IMAGE_FAMILY oder DISK_IMAGE_PROJECT nicht an.

Formatieren und stellen Sie die Laufwerke bereit, bevor Sie sie verwenden.

VM-Instanz aus einem freigegebenen Image erstellen

Wenn ein anderer Nutzer ein Image für Sie freigegeben hat, können Sie dieses Image zum Erstellen einer VM verwenden.

Console

  1. Rufen Sie die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.
  3. Klicken Sie auf Instanz erstellen.
  4. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.
  5. Ändern Sie optional die Zone für diese VM. In Compute Engine wird die Liste der Zonen in jeder Region zufällig angeordnet, um die Verwendung in mehreren Zonen zu fördern.
  6. Wählen Sie eine Maschinenkonfiguration für Ihre VM aus.
  7. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um Ihr Bootlaufwerk zu konfigurieren. Führen Sie dann folgende Schritte durch:
    1. Wählen Sie den Tab Benutzerdefinierte Images aus.
    2. Wählen Sie das Image-Projekt aus der Drop-down-Liste Images anzeigen aus.
    3. Wählen Sie das gewünschte Bild aus der Drop-down-Liste Bilder aus.
    4. Klicken Sie auf Auswählen.
  8. Wählen Sie dann HTTP-Traffic zulassen oder HTTPS-Traffic zulassen aus, damit die VM HTTP- oder HTTPS-Traffic empfangen kann.

    In der Cloud Console werden der VM ein Netzwerk-Tag hinzugefügt und entsprechende Firewallregeln für eingehenden Traffic erstellt, die den gesamten eingehenden Traffic über tcp:80 (HTTP) oder tcp:443 (HTTPS) zulassen. Das Netzwerk-Tag ordnet die Firewallregel der VM zu. Weitere Informationen finden Sie unter Übersicht über Firewallregeln in der Virtual Private Cloud-Dokumentation.

  9. Klicken Sie auf Erstellen, um die VM zu erstellen und zu starten.

gcloud

Sie erstellen eine VM mit dem gcloud compute instances create command und verwenden die Flags --image und --image-project, um den Image-Namen und das Projekt anzugeben, in dem das Image liegt:

 gcloud compute instances create VM_NAME \
        --image=IMAGE \
        --image-project=IMAGE_PROJECT
    

Dabei gilt:

  • VM_NAME ist der Name der neuen VM.
  • IMAGE ist der Name des Images.
  • IMAGE_PROJECT ist das Projekt, zu dem das Image gehört.

Wenn der Befehl erfolgreich ausgeführt wurde, gibt gcloud die Attribute der neuen VM zurück:

    Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
    NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    example-instance     us-central1-b  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING

API

Folgen Sie der API-Anleitung zum Erstellen einer VM aus einem öffentlichen Image, geben Sie dabei aber im Anfragetext das Feld image an. Wenn Sie ein leeres Laufwerk hinzufügen möchten, geben Sie keine Image-Quelle an. Optional können Sie die Attribute diskSizeGb, diskType und labels angeben.

    [...
    image: "projects/PROJECT_ID/global/images/IMAGE_NAME
    {
     "initializeParams": {
        "diskSizeGb": "SIZE_GB",
        "sourceImage": "IMAGE"
           }
     }
     ...]

Dabei gilt:

  • PROJECT_ID ist das Projekt, das das Image enthält.
  • IMAGE_NAME ist das Quell-Image
  • SIZE_GB ist die Laufwerkgröße.
  • IMAGE ist das Quell-Image für das Nicht-Bootlaufwerk.
  • Bei leeren Laufwerken geben Sie keine Image-Quelle an.

VM-Instanz aus einem Snapshot erstellen

Wenn Sie einen nichtflüchtigen Bootspeicher per Snapshot gesichert haben, können Sie mit diesem eine VM erstellen.

Wenn Sie schnell mehrere VMs mit demselben Bootlaufwerk erstellen möchten, erstellen Sie ein benutzerdefiniertes Image und erstellen Sie VMs dann aus diesem Image statt aus dem Snapshot.

Neues VM-Instanz-Bootlaufwerk aus einem Snapshot erstellen

Sie können den Snapshot eines Bootlaufwerks auf einem neuen Bootlaufwerk wiederherstellen, wenn Sie eine neue VM erstellen.

Console

  1. Rufen Sie die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie auf Instanz erstellen.

  4. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

  5. Ändern Sie optional die Zone für diese VM. In Compute Engine wird die Liste der Zonen in jeder Region zufällig angeordnet, um die Verwendung in mehreren Zonen zu fördern.

  6. Wählen Sie eine Maschinenkonfiguration für Ihre VM aus.

  7. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um Ihr Bootlaufwerk zu konfigurieren. Gehen Sie anschließend so vor:

    1. Klicken Sie auf den Tab Snapshots und wählen Sie einen Snapshot aus der Liste aus.
    2. Klicken Sie auf Auswählen.
  8. Wählen Sie dann HTTP-Traffic zulassen oder HTTPS-Traffic zulassen aus, damit die VM HTTP- oder HTTPS-Traffic empfangen kann.

    In der Cloud Console werden der VM ein Netzwerk-Tag hinzugefügt und entsprechende Firewallregeln für eingehenden Traffic erstellt, die den gesamten eingehenden Traffic über tcp:80 (HTTP) oder tcp:443 (HTTPS) zulassen. Das Netzwerk-Tag ordnet die Firewallregel der VM zu. Weitere Informationen finden Sie unter Übersicht über Firewallregeln in der Virtual Private Cloud-Dokumentation.

  9. Klicken Sie auf Erstellen, um die VM zu erstellen und zu starten.

gcloud

Verwenden Sie den Befehl gcloud compute instances create und fügen Sie das Flag --source-snapshot ein.

gcloud compute instances create VM_NAME \
    --source-snapshot=BOOT_SNAPSHOT_NAME \
    --boot-disk-size=BOOT_DISK_SIZE \
    --boot-disk-type=BOOT_DISK_TYPE \
    --boot-disk-device-name=BOOT_DISK_NAME

Dabei gilt:

  • VM_NAME ist der Name der neuen VM.
  • BOOT_SNAPSHOT_NAME ist der Name des Bootlaufwerk-Snapshots, den Sie auf dem Bootlaufwerk der neuen VM wiederherstellen möchten.
  • BOOT_DISK_SIZE (optional) ist die Größe des neuen Bootlaufwerks in Gigabyte.

    Die Größe muss größer oder gleich der Größe des Quelllaufwerks sein, auf dem der Snapshot erstellt wurde.

  • BOOT_DISK_TYPE (optional) ist der Typ des nichtflüchtigen Bootspeichers.

    z. B. pd-ssd.

  • BOOT_DISK_NAME ist der Name des neuen Bootlaufwerks für diese VM.

API

Wenn Sie die API zum Erstellen einer VM aus einem Snapshot verwenden, gelten die folgenden Einschränkungen:

  • Nur ein nichtflüchtiger Speicher kann als nichtflüchtiger Bootspeicher verwendet werden.
  • Der nichtflüchtige Bootspeicher muss der VM als das erste Laufwerk hinzugefügt werden.
  • Wenn Sie das Attribut source angeben, können Sie nicht gleichzeitig das Attribut initializeParams anführen. source weist darauf hin, dass der nichtflüchtige Bootspeicher bereits vorhanden ist, aber das Attribut initializeParams gibt an, dass Compute Engine einen neuen nichtflüchtigen Bootspeicher erstellen soll.

    Zum Erstellen einer VM aus einem Bootlaufwerk-Snapshot geben Sie das Feld sourceSnapshot unter dem Attribut disks an. Optional können Sie die Attribute diskSizeGb und diskType für das neue Bootlaufwerk angeben:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "boot": true,
     "initializeParams": {
       "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME",
       "diskSizeGb": "BOOT_DISK_SIZE",
       "diskType": "BOOT_DISK_TYPE"
    }
   }],
 }

Dabei gilt:

  • PROJECT_ID: Ihre Projekt-ID
  • ZONE ist die Zone, in der Sie die neue VM erstellen möchten.
  • VM_NAME ist der Name der VM, auf der Sie einen Snapshot wiederherstellen möchten.
  • MACHINE_TYPE ist der Maschinentyp der VM.
  • BOOT_SNAPSHOT_NAME ist der Name des Snapshots, den Sie zum Erstellen des Bootlaufwerks einer neuen VM verwenden möchten.
  • BOOT_DISK_SIZE (optional) ist die Größe des neuen Bootlaufwerks in Gigabyte.

    Die Größe muss größer oder gleich der Größe des Quelllaufwerks sein, auf dem der Snapshot erstellt wurde.

  • BOOT_DISK_TYPE (optional) ist der Typ des nichtflüchtigen Bootspeichers.

    z. B. pd-ssd.

Snapshots ohne Startfunktion in einer neuen VM-Instanz wiederherstellen

Snapshots ohne Startfunktion sind Sicherungen sekundärer nichtflüchtiger Speicher, die Ihre VM nur für die Datenspeicherung verwendet. Sie können Snapshots ohne Startfunktion auf neuen Laufwerken wiederherstellen, wenn Sie eine VM erstellen. Alternativ können Sie Snapshots ohne Startfunktion in einer vorhandenen VM wiederherstellen.

Wenn Sie Snapshots ohne Startfunktion in einer neuen VM wiederherstellen möchten, gehen Sie beim Erstellen einer VM außerdem folgendermaßen vor:

Console

Wenn Sie von der Console aus Snapshots ohne Startfunktion in einer neuen VM wiederherstellen, müssen Sie zuerst ein Laufwerk aus jedem Snapshot erstellen. Fügen Sie dann die neuen Laufwerke hinzu, wenn Sie die VM erstellen.

  1. Stellen Sie alle Snapshots ohne Startfunktion auf einem neuen Laufwerk wieder her.

    1. Rufen Sie in der Google Cloud Console die Seite Laufwerke auf.

      Zur Seite „Laufwerke“

    2. Klicken Sie auf Laufwerk erstellen.

    3. Geben Sie einen Namen für Ihr Laufwerk an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

    4. Wählen Sie die Region und Zone für das Laufwerk aus. Das Laufwerk und die VM müssen sich in derselben Zone befinden.

    5. Wählen Sie den Typ des Laufwerks aus.

    6. Wählen Sie unter Quelltyp die Option Snapshot aus.

    7. Wählen Sie unter dem neuen Feld Quell-Snapshot den Snapshot ohne Startfunktion aus, den Sie auf dem neuen Laufwerk wiederherstellen möchten.

    8. Klicken Sie auf Erstellen, um das Laufwerk anzulegen.

    Wiederholen Sie diese Schritte, um aus jedem Snapshot, den Sie wiederherstellen möchten, ein Laufwerk zu erstellen. Beim Erstellen einer VM können Sie bis zu 15 Nicht-Bootlaufwerke hinzufügen.

  2. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  3. Klicken Sie auf Instanz erstellen.

  4. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

  5. Wählen Sie die Region und Zone für die VM aus. Das Laufwerk und die VM müssen sich in derselben Zone befinden.

  6. Wählen Sie unter Maschinentyp einen Maschinentyp für Ihre VM aus.

  7. Wenn Sie eingehenden externen Traffic zulassen möchten, ändern Sie die Firewallregeln für die VM.

  8. So fügen Sie Laufwerke zur VM hinzu:

    1. Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
    2. Wählen Sie den Tab Laufwerke aus.
    3. Klicken Sie unter Zusätzliche Laufwerke auf Vorhandenes Laufwerk hinzufügen.
    4. Wählen Sie unter dem neuen Feld Laufwerk ein Laufwerk aus, das zu dieser VM hinzugefügt werden soll.
    5. Geben Sie einen Modus und eine Löschregel für das Laufwerk an.
    6. Klicken Sie auf Fertig.

    Wiederholen Sie diese Schritte für jedes Laufwerk, das Sie hinzufügen möchten. Beim Erstellen einer VM können Sie bis zu 15 Nicht-Bootlaufwerke hinzufügen.

  9. Klicken Sie auf Erstellen, um die VM zu erstellen und zu starten.

gcloud

Erstellen Sie eine VM mit dem Befehl gcloud compute instances create. Fügen Sie für jeden Snapshot ohne Startfunktion, den Sie wiederherstellen möchten, das Flag --create-disk ein und geben Sie einen source-snapshot an. Beim Erstellen einer VM können Sie bis zu 15 Nicht-Bootlaufwerke hinzufügen.

Mit dem folgenden Befehl können Sie zum Beispiel zwei Snapshots ohne Startfunktion in einer neuen VM wiederherstellen:

gcloud compute instances create VM_NAME \
    --create-disk source-snapshot=SNAPSHOT_1_NAME,name=DISK_1_NAME,size=DISK_1_SIZE,type=DISK_1_TYPE \
    --create-disk source-snapshot=SNAPSHOT_2_NAME,name=DISK_2_NAME,size=DISK_2_SIZE,type=DISK_2_TYPE

Dabei gilt:

  • VM_NAME ist der Name der neuen VM.
  • SNAPSHOT_1_NAME und SNAPSHOT_2_NAME sind die Namen der Snapshots ohne Startfunktion, die Sie wiederherstellen möchten.
  • DISK_1_NAME und DISK_2_NAME sind die Namen der neuen Nicht-Bootlaufwerke für diese VM.
  • DISK_1_SIZE und DISK_2_SIZE (optional) sind die Größen der jeweiligen neuen Nicht-Bootlaufwerke in Gigabyte.

    Die Größe muss größer oder gleich der Größe der Quelllaufwerke sein, auf denen der Snapshot erstellt wurde.

  • DISK_1_TYPE und DISK_2_TYPE (optional) sind die Typen der nichtflüchtigen Speicher.

    z. B. https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd.

API

Wenn Sie die API zum Wiederherstellen eines Snapshots ohne Startfunktion in einer neuen VM verwenden, gelten die folgenden Einschränkungen:

  • Nur 1 nichtflüchtiger Speicher kann der nichtflüchtige Bootspeicher sein.
  • Der nichtflüchtige Bootspeicher muss der VM als das erste Laufwerk hinzugefügt werden.
  • Wenn Sie das Attribut source angeben, können Sie nicht gleichzeitig das Attribut initializeParams verwenden. source weist darauf hin, dass der nichtflüchtige Bootspeicher bereits vorhanden ist, aber das Attribut initializeParams gibt an, dass Compute Engine einen neuen nichtflüchtigen Bootspeicher erstellen soll.

Geben Sie unter Verwendung der Beta-API das Feld sourceSnapshot unter dem Attribut initializeParams an. Sie können bis zu 15 Nicht-Bootlaufwerke hinzufügen. Wiederholen Sie dazu das Attribut initializeParams bei jedem Nicht-Bootlaufwerk, das Sie erstellen möchten. Optional können Sie die Attribute diskSizeGb und diskType für alle von Ihnen erstellten Laufwerke angeben.

Wenn Sie beispielsweise zwei Snapshots ohne Startfunktion in einer neuen VM wiederherstellen möchten, stellen Sie folgende Anfrage:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "diskSizeGb": "DISK_SIZE",
     "diskType": "DISK_TYPE"
   },
   {
     "initializeParams": {
        "sourceSnapshot": "global/snapshots/SNAPSHOT_1_NAME",
        "diskSizeGb": "DISK_SIZE",
        "diskType": "DISK_TYPE"
     }
   },
   {
     "initializeParams": {
        "sourceSnapshot": "global/snapshots/SNAPSHOT_2_NAME",
        "diskSizeGb": "DISK_SIZE",
        "diskType": "DISK_TYPE"
     }
  }]
 }

Dabei gilt:

  • PROJECT_ID: Ihre Projekt-ID
  • ZONE ist die Zone, in der Sie die VM erstellen möchten.
  • VM_NAME ist der Name der VM, auf der Sie einen Snapshot wiederherstellen möchten.
  • MACHINE_TYPE ist der Maschinentyp der VM.
  • DISK_SIZE (optional) ist die Größe des entsprechenden Laufwerks in Gigabyte.

    Wenn dieses Attribut angegeben wird, muss es größer oder gleich der Größe des Quelllaufwerks sein, auf dem der Snapshot erstellt wurde.

  • DISK_TYPE (optional): die vollständige oder partielle URL für den Typ des entsprechenden nichtflüchtigen Speichers.

    z. B. https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd.

  • SNAPSHOT_1_NAME und SNAPSHOT_2_NAME sind Namen von Snapshots ohne Startfunktion, die Sie auf neuen Nicht-Bootlaufwerken auf der neuen VM wiederherstellen möchten.

VM-Instanz aus einem Container-Image erstellen

Wenn Sie einen Container auf einer Compute Engine-VM bereitstellen und starten möchten, geben Sie beim Erstellen der VM einen Container-Image-Namen und optionale Konfigurationsparameter an. Compute Engine erstellt die VM mit der neuesten Version des öffentlichen Images für Container-Optimized OS, auf dem Docker installiert ist. Dann startet Compute Engine den Container beim Start der VM. Weitere Informationen dazu finden Sie unter Container auf VMs bereitstellen.

Zum Erstellen einer VM aus einem Container-Image müssen Sie die Cloud Console oder gcloud verwenden.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

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

  5. Geben Sie das zu verwendende Container-Image an. Beispiel:

    • So wählen Sie ein NGINX 1.12-Container-Image aus Cloud Launcher aus:

      gcr.io/cloud-marketplace/google/nginx1:1.12

    • Wenn Sie ein Apache-Container-Image von Docker Hub bereitstellen möchten, geben Sie immer den vollständigen Docker-Image-Namen an:

      docker.io/httpd:2.4

  6. Optional: Klicken Sie auf Erweiterte Containeroptionen. Weitere Informationen finden Sie unter Optionen zum Ausführen von Containern konfigurieren.

  7. Klicken Sie auf Erstellen, um die VM zu erstellen sowie die VM und den Container zu starten.

gcloud

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

gcloud compute instances create-with-container VM_NAME \
    --container-image=CONTAINER_IMAGE

Dabei gilt:

  • VM_NAME ist der Name der neuen VM.
  • CONTAINER_IMAGE ist der Name des Container-Images.

Mit dem folgenden Befehl wird beispielsweise eine VM mit dem Namen nginx-vm erstellt, die das Container-Image startet und ausführt:

gcr.io/cloud-marketplace/google/nginx1:1.12

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

Wenn Sie ein Apache-Container-Image von Docker Hub bereitstellen möchten, geben Sie immer den vollständigen Docker-Image-Namen an:

docker.io/httpd:2.4.

VM-Instanz mit Zugriff auf andere Google Cloud-Dienste erstellen

Wenn Sie auf Ihrer VM eine Anwendung ausführen möchten, die auf andere Google Cloud-Dienste zugreifen muss, erstellen Sie ein Dienstkonto, bevor Sie die VM erstellen, und richten Sie die VM dann so ein, dass sie als Dienstkonto ausgeführt wird. Ein Dienstkonto ist ein spezielles Konto, dessen Anmeldedaten Sie in Ihrem Anwendungscode verwenden können, um auf andere Google Cloud-Dienste zuzugreifen.

Weitere Informationen finden Sie unter Dienstkonten.

VM-Instanz in einem bestimmten Subnetz erstellen

Standardmäßig erstellt Google Cloud für jedes Projekt ein VPC-Netzwerk im automatischen Modus mit dem Namen default. Möchten Sie ein anderes Netzwerk bzw. Subnetz verwenden, das Sie manuell in einem VPC-Netzwerk im automatischen oder im benutzerdefinierten Modus erstellt haben, müssen Sie das Subnetz beim Erstellen der VM angeben.

Beachten Sie beim Erstellen einer VM in einem Subnetz folgende Regeln:

  • Wenn Sie kein Netzwerk oder Subnetz angeben, verwendet Compute Engine das Standard-VPC-Netzwerk und das automatische Subnetz, das sich in derselben Region wie die VM befindet.
  • Wenn Sie kein Netzwerk angeben, leitet Compute Engine das Netzwerk aus dem angegebenen Subnetz ab.
  • Wenn Sie ein Netzwerk angeben, müssen Sie ein Subnetz angeben, das zu demselben Netzwerk gehören muss. Andernfalls schlägt die VM-Erstellung fehl.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie auf Instanz erstellen.

  4. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

  5. Ändern Sie optional die Zone für diese VM. In Compute Engine wird die Liste der Zonen in jeder Region zufällig angeordnet, um die Verwendung in mehreren Zonen zu fördern.

  6. Wählen Sie dann HTTP-Traffic zulassen oder HTTPS-Traffic zulassen aus, damit die VM HTTP- oder HTTPS-Traffic empfangen kann.

    In der Cloud Console werden der VM ein Netzwerk-Tag hinzugefügt und entsprechende Firewallregeln für eingehenden Traffic erstellt, die den gesamten eingehenden Traffic über tcp:80 (HTTP) oder tcp:443 (HTTPS) zulassen. Das Netzwerk-Tag ordnet die Firewallregel der VM zu. Weitere Informationen finden Sie unter Übersicht über Firewallregeln in der Virtual Private Cloud-Dokumentation.

  7. Maximieren Sie den Abschnitt Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.

  8. Klicken Sie auf den Tab Netzwerk. Geben Sie unter Netzwerkschnittstellen die Netzwerkdetails an.

    1. Wählen Sie im Feld Netzwerk das VPC-Netzwerk aus, welches das von Ihnen erstellte Subnetz enthält.
    2. Wählen Sie dann im Feld Subnetz das Subnetz für die zu verwendende VM aus.
  9. Klicken Sie auf Erstellen, um die VM zu erstellen und zu starten.

gcloud

Verwenden Sie das gcloud-Befehlszeilentool und folgen Sie der Anleitung zum Erstellen einer VM aus einem Image oder einem Snapshot. Fügen Sie dabei die Flags --subnet=SUBNET_NAME und --zone=ZONE hinzu, wenn Sie den Befehl gcloud compute instances create ausführen:

gcloud compute instances create VM_NAME \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --zone=ZONE

Dabei gilt:

  • VM_NAME ist der Name der VM.
  • NETWORK_NAME (optional) ist der Name des Netzwerks.
  • SUBNET_NAME ist der Name des Subnetzes.

    Mit dem folgenden Befehl rufen Sie eine Liste der Subnetze im Netzwerk auf: gcloud compute networks subnets list.

  • ZONE ist die Zone, in der die VM erstellt wird, z. B. europe-west1-b.

    Die Region der VM wird aus der Zone abgeleitet.

API

Gehen Sie vor, wie in der API-Anleitung zum Erstellen einer VM aus einem Image oder einem Snapshot beschrieben. Geben Sie dabei aber das Feld subnet im Anfragetext an. Wenn Sie leere Laufwerke hinzufügen möchten, geben Sie kein Quell-Image an. Optional können Sie die Attribute diskSizeGb, diskType und labels angeben.

...
"networkInterfaces": [
{
  "network": "global/networks/NETWORK_NAME",
  "subnetwork": "regions/REGION/subnetworks/SUBNET_NAME",
  "accessConfigs":
    {
      "name": "External NAT",
      "type": "ONE_TO_ONE_NAT"
    }
    {
      "initializeParams": {
         "diskSizeGb": "SIZE_GB",
         "sourceImage": "IMAGE"
    {
      "initializeParams": {
      "diskSizeGb": "SIZE_GB"
     }
 }...]

Dabei gilt:

  • NETWORK_NAME (optional) ist der Name des Netzwerks.
  • REGION ist die Region, in der sich das angegebene Subnetz befindet.
  • SUBNET_NAME ist der Name des Subnetzes.
  • SIZE_GB ist die Laufwerkgröße.
  • IMAGE ist das Quell-Image für das Nicht-Bootlaufwerk.

    Bei leeren Laufwerken geben Sie keine Image-Quelle an.

Fehlerbehebung

Methoden zur Behebung häufiger VM-Erstellungsfehler finden Sie unter Fehlerbehebung bei der VM-Erstellung.

Nächste Schritte

Jetzt testen

Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit von Compute App Enginge in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.

Compute Engine kostenlos testen