Instanz aus einem freigegebenen Image erstellen


In diesem Dokument wird beschrieben, wie Sie eine Compute Engine-Instanz aus einem benutzerdefinierten Image erstellen, das von einem anderen Projekt freigegeben wird.

Eine Instanz enthält einen Bootloader, ein Boot-Dateisystem und ein Betriebssystem-Image. Sie können benutzerdefinierte Images von Quelllaufwerken, Images, Snapshots oder von in Cloud Storage gespeicherten Images erstellen und diese Images verwenden, um Instanzen zu erstellen. Standardmäßig gehört ein benutzerdefiniertes Image nur zum Projekt, in dem es erstellt wurde. Wenn ein anderer Nutzer ein Image mit Ihnen geteilt hat, können Sie dieses Image zum Erstellen einer Instanz verwenden.

Hinweise

  • Beim Erstellen von Instanzen aus Images mit der Google Cloud CLI oder der Compute Engine API sind maximal 20 Instanzen pro Sekunde zulässig. Wenn Sie eine höhere Anzahl von Instanzen pro Sekunde erstellen müssen, fordern Sie ein höheres Kontingentlimit für die Images-Ressource an.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Dienste und APIs von Google Cloud überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Instanz aus einem freigegebenen Image benötigen, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) für das Projekt zu gewähren. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen einer Instanz aus einem freigegebenen Image erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um eine Instanz aus einem freigegebenen Image zu erstellen:

  • compute.instances.create für das Projekt
  • So erstellen Sie die Instanz mit einem freigegebenen Image: compute.images.useReadOnly für das Image

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Instanz aus einem freigegebenen Image erstellen

So erstellen Sie eine Instanz aus einem freigegebenen Image:

Console

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

    Zur Seite „Instanz erstellen“

    Wenn Sie dazu aufgefordert werden, wählen Sie Ihr Projekt aus und klicken auf Weiter.

    Die Seite Instanz erstellen wird angezeigt. Darin ist der Bereich Maschinenkonfiguration zu sehen.

  2. Führen Sie im Bereich Maschinenkonfiguration die folgenden Schritte aus:

    1. Geben Sie im Feld Name einen Namen für die Instanz ein. Weitere Informationen finden Sie unter Namenskonvention für Ressourcen.
    2. Optional: Wählen Sie im Feld Zone eine Zone für diese Instanz aus.

      Die Standardauswahl ist Beliebig. Wenn Sie diese Standardauswahl nicht ändern, wählt Google automatisch eine Zone für Sie aus, die auf dem Maschinentyp und der Verfügbarkeit basiert.

    3. Wählen Sie die Maschinenfamilie für Ihre Instanz aus. In der Google Cloud Console werden dann die Maschinenreihen angezeigt, die für die ausgewählte Maschinenfamilie verfügbar sind. Folgende Maschinenfamilienoptionen sind verfügbar:

      • Allgemein
      • Computing-optimiert
      • Speicheroptimiert
      • Speicheroptimiert
      • GPUs

    4. Wählen Sie in der Spalte Reihe die Maschinenreihe für Ihre Instanz aus.

      Wenn Sie im vorherigen Schritt GPUs als Maschinenfamilie ausgewählt haben, wählen Sie den gewünschten GPU-Typ aus. Die Maschinenreihe wird dann automatisch für den ausgewählten GPU-Typ ausgewählt.

    5. Wählen Sie im Abschnitt Maschinentyp den Maschinentyp für Ihre Instanz aus.

  3. Klicken Sie im Navigationsmenü auf Betriebssystem und Speicher. Konfigurieren Sie im angezeigten Bereich Betriebssystem und Speicher das Bootlaufwerk:

    1. Klicken Sie auf Ändern. Der Bereich Bootlaufwerk wird angezeigt und der Tab Öffentliche Images wird geöffnet.
    2. Klicken Sie auf Benutzerdefinierte Images. Der Tab Benutzerdefinierte Images wird angezeigt.
    3. Klicken Sie zum Auswählen des Image-Projekts auf Ändern und wählen Sie dann das Projekt aus, das das Image enthält.
    4. Wählen Sie in der Liste Image das Bild aus, das Sie importieren möchten.
    5. Wählen Sie in der Liste Bootlaufwerktyp den Typ des Bootlaufwerks aus.
    6. Geben Sie im Feld Größe (GB) die Größe des Bootlaufwerks an.
    7. Optional: Maximieren Sie den Bereich Erweiterte Konfigurationen anzeigen, um erweiterte Konfigurationsoptionen aufzurufen.
    8. Klicken Sie auf Auswählen, um die Bootlaufwerkoptionen zu bestätigen und zum Bereich Betriebssystem und Speicher zurückzukehren.
  4. Klicken Sie im Navigationsmenü auf Netzwerk. Führen Sie im angezeigten Bereich Netzwerk die folgenden Schritte aus:

    1. Gehen Sie zum Abschnitt Firewall.
    2. Wählen Sie dann HTTP-Traffic zulassen oder HTTPS-Traffic zulassen aus, damit die Instanz HTTP- oder HTTPS-Traffic empfangen kann.

      In der Compute Engine werden der Instanz 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 Instanz zu. Weitere Informationen finden Sie unter Übersicht über Firewallregeln in der Dokumentation zur Cloud Firewall der nächsten Generation.

  5. Optional: Geben Sie weitere Konfigurationsoptionen an. Weitere Informationen finden Sie unter Konfigurationsoptionen beim Erstellen einer Instanz.

  6. Klicken Sie zum Erstellen und Starten der Instanz auf Erstellen.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Erstellen Sie mit gcloud compute instances create command eine Instanz und verwenden Sie dabei die Flags --image und --image-project, um den Image-Namen und das Projekt anzugeben, in dem sich das Image befindet:

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

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: Der Name der neuen Instanz.
    • IMAGE: der Name des Image
    • IMAGE_PROJECT: das Projekt, zu dem das Image gehört

    Wenn der Befehl erfolgreich ausgeführt wurde, gibt gcloud die Attribute der neuen Instanz zurück, wie im folgenden Beispiel:

    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
    

Terraform

Wenn Sie in Terraform eine Instanz mit einem freigegebenen Image erstellen möchten, gehen Sie genauso vor wie beim Erstellen einer Instanz mit einem öffentlich verfügbaren Image.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.
  3. Geben Sie die gewünschten Parameter an.
  4. Klicken Sie oben oder unten auf der Seite auf Entsprechender Code und dann auf den Tab Terraform, um den Terraform-Code aufzurufen.

REST

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

Verwenden Sie zum Erstellen der Instanz aus einem freigegebenen 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
      }
   ],
   
   
   "networkInterfaces":[
      {
         "network":"global/networks/NETWORK_NAME"
      }
   ],
   
  
   "shieldedInstanceConfig":{
      "enableSecureBoot":"ENABLE_SECURE_BOOT"
   }
}

Ersetzen Sie Folgendes:

  • 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 freigegebene Image enthält.
  • IMAGE: Wählen Sie eine der folgenden Optionen aus:
    • IMAGE ist der Name des freigegebenen Images. Beispiel: "sourceImage": "projects/finance-project-1234/global/images/finance-debian-image-v2".
    • IMAGE_FAMILY legt die benutzerdefinierte Image-Familie fest, wenn das freigegebene Image als Teil einer benutzerdefinierten Image-Familie erstellt wird.

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

  • NETWORK_NAME: das VPC-Netzwerk, das Sie für die VM verwenden möchten. Sie können default angeben, um Ihr Standardnetzwerk zu verwenden.
  • 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.

Nächste Schritte