Herunterfahrzeit von Compute Engine-Instanzen verkürzen

In diesem Dokument wird erläutert, wie Sie die Herunterfahrzeit für eine Compute Engine-Instanz verkürzen, indem Sie die Instanz so konfigurieren, dass das Herunterfahren des Gastbetriebssystems beim Anhalten oder Löschen übersprungen wird.

Wenn Sie eine Instanz so konfigurieren, dass das Herunterfahren des Gastbetriebssystems beim Beenden oder Löschen übersprungen wird, fährt Compute Engine das Gastbetriebssystem sofort herunter, wenn sich der Instanzstatus in STOPPING ändert. Dadurch können Sie Kontingente oder Ressourcen schneller freigeben, da das Beenden oder Löschen einer Instanz beschleunigt wird. Weitere Informationen zu den Phasen, die eine Instanz beim Anhalten oder Löschen durchläuft, einschließlich des Standardintervalls für das saubere Herunterfahren des Gastbetriebssystems, finden Sie unter Vorgang zum Anhalten.

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud -Dienste und APIs überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren:

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

    gcloud

    1. Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    2. Set a default region and zone.

    REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

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

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute-Instanzadministrator (v1) (roles/compute.instanceAdmin.v1) für Ihr Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren einer Instanz benötigen, damit das Herunterfahren des Gastbetriebssystems übersprungen wird. 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 Konfigurieren einer Instanz zum Überspringen des Herunterfahrens des Gastbetriebssystems erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um eine Instanz so zu konfigurieren, dass das Herunterfahren des Gastbetriebssystems übersprungen wird:

  • So erstellen Sie eine Instanz:
    • compute.instances.create für das Projekt
    • Zur Erstellung der VM mit einem benutzerdefinierten Image: compute.images.useReadOnly für das Image
    • Zur Erstellung der VM mithilfe eines Snapshots: compute.snapshots.useReadOnly für den Snapshot
    • Zur Erstellung der VM mithilfe einer Instanzvorlage: compute.instanceTemplates.useReadOnly für die Instanzvorlage
    • Um der VM ein Legacy-Netzwerk zuzuweisen: compute.networks.use für das Projekt
    • Zum Festlegen einer statische IP-Adresse für die VM: compute.addresses.use für das Projekt
    • Zur Zuweisung einer externen IP-Adresse zur VM bei Verwendung eines Legacy-Netzwerks: compute.networks.useExternalIp für das Projekt
    • Um ein Subnetz für die VM anzugeben: compute.subnetworks.use für das Projekt oder für das ausgewählte Subnetz
    • Um der VM eine externe IP-Adresse zuzuweisen, wenn Sie ein VPC-Netzwerk verwenden: compute.subnetworks.useExternalIp für das Projekt oder für das ausgewählte Subnetz
    • Um die Metadaten der VM-Instanz für die VM festzulegen: compute.instances.setMetadata für das Projekt
    • Um Tags für die VM festzulegen: compute.instances.setTags für die VM
    • Um Labels für die VM festzulegen: compute.instances.setLabels für die VM
    • Um ein Dienstkonto festzulegen, das die VM verwenden soll: compute.instances.setServiceAccount für die VM
    • Um ein neues Laufwerk für die VM zu erstellen: compute.disks.create für das Projekt
    • Um ein vorhandenes Laufwerk im Lese- oder Lese‑/Schreibmodus anzuhängen: compute.disks.use für das Laufwerk
    • Um ein vorhandenes Laufwerk im Lesemodus anzuhängen: compute.disks.useReadOnly für das Laufwerk
  • Um eine Instanzvorlage zu erstellen: compute.instanceTemplates.create für das Projekt
  • So aktualisieren Sie eine Instanz: compute.instances.update für die Instanz

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

Instanzen so konfigurieren, dass das Herunterfahren des Gastbetriebssystems übersprungen wird

Verwenden Sie eine der folgenden Methoden, um eine Compute-Instanz so zu konfigurieren, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, wenn Sie die Instanz beenden oder löschen:

Herunterfahren des Gastbetriebssystems in einer vorhandenen Instanz konfigurieren

Sie können eine Compute-Instanz nur so konfigurieren, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, wenn die Instanz beendet (TERMINATED) ist.

Wählen Sie eine der folgenden Optionen aus, um eine Instanz so zu konfigurieren, dass das Herunterfahren des Gastbetriebssystems übersprungen wird:

gcloud

  1. Beenden Sie die Instanz, falls noch nicht geschehen.

  2. Verwenden Sie den Befehl gcloud beta compute instances set-scheduling mit dem Flag --skip-guest-os-shutdown, um eine Instanz so zu konfigurieren, dass das Herunterfahren des Gastbetriebssystems übersprungen wird:

    gcloud compute instances set-scheduling INSTANCE_NAME \
        --skip-guest-os-shutdown \
        --zone=ZONE
    

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: der Name der Instanz.

    • ZONE: Die Zone, in der sich die Instanz befindet.

REST

  1. Beenden Sie die Instanz, falls noch nicht geschehen.

  2. Wenn Sie eine Instanz so konfigurieren möchten, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, senden Sie eine POST-Anfrage an die Methode instances.setScheduling. Fügen Sie im Anfragetext das Feld skipGuestOsShutdown ein und legen Sie es auf true fest:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling
    
    {
      "skipGuestOsShutdown": true
    }
    

Weitere Informationen zum Aktualisieren einer Instanz finden Sie unter Instanzattribute aktualisieren.

Herunterfahren des Gastbetriebssystems beim Erstellen einer Instanz konfigurieren

Wählen Sie eine der folgenden Optionen aus, um eine Compute-Instanz zu erstellen, die so konfiguriert ist, dass das Herunterfahren des Gastbetriebssystems übersprungen wird:

gcloud

Verwenden Sie zum Erstellen einer Instanz, die so konfiguriert ist, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, den Befehl gcloud compute instances create mit dem Flag --skip-guest-os-shutdown:

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --skip-guest-os-shutdown \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der Instanz.

  • MACHINE_TYPE: der für die Instanz zu verwendende Maschinentyp.

  • ZONE: Die Zone, in der Sie die Instanz erstellen möchten.

REST

Wenn Sie eine Instanz erstellen möchten, die so konfiguriert ist, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, senden Sie eine POST-Anfrage an die Methode instances.insert. Geben Sie im Anfragetext das Feld skipGuestOsShutdown an, das auf true gesetzt ist:

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

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "skipGuestOsShutdown": true
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem Sie die Instanz erstellen möchten.

  • ZONE: Die Zone, in der Sie die Instanz erstellen möchten.

  • INSTANCE_NAME: der Name der Instanz.

  • MACHINE_TYPE: der für die Instanz zu verwendende Maschinentyp.

  • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud. Weitere Informationen zu den unterstützten Image-Projekten finden Sie unter Öffentliche Images.

  • IMAGE: Wählen Sie eine der folgenden Optionen aus:

    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240617.

    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Dieser Wert gibt das neueste nicht verworfene Betriebssystem-Image an. Wenn Sie beispielsweise family/debian-12 angeben, verwendet Compute Engine die aktuelle Version in der Debian 12-Image-Familie. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

Weitere Informationen zum Erstellen einer Instanz finden Sie unter Compute Engine-Instanz erstellen und starten.

Herunterfahren des Gastbetriebssystems beim Erstellen von Instanzen im Bulk konfigurieren

Wählen Sie eine der folgenden Optionen aus, um Compute-Instanzen im Bulk zu erstellen, die so konfiguriert sind, dass das Herunterfahren des Gastbetriebssystems übersprungen wird:

gcloud

Wenn Sie Instanzen im Bulk erstellen möchten, die so konfiguriert sind, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, verwenden Sie den Befehl gcloud compute instances bulk create mit dem Flag --skip-guest-os-shutdown.

Wenn Sie beispielsweise Instanzen im Bulk erstellen möchten, die ein Namensmuster in einer einzelnen Zone verwenden, führen Sie den folgenden Befehl aus:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --skip-guest-os-shutdown \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • COUNT: Die Anzahl der zu erstellenden Instanzen.

  • MACHINE_TYPE: der für die Instanzen zu verwendende Maschinentyp.

  • NAME_PATTERN ist das Namensmuster für die Instanzen. Wenn Sie eine Zahlenfolge in einem Instanznamen ersetzen möchten, verwenden Sie eine Folge von Hash-Zeichen (#). Wenn Sie beispielsweise instance-# als Namensmuster verwenden, generiert Compute Engine Instanzen mit Namen, die mit instance-1 und instance-2 beginnen. Dieses inkrementelle Muster wird bis zur Anzahl der Instanzen fortgesetzt, die Sie in COUNT angeben.

  • ZONE: Die Zone, in der Sie Instanzen erstellen möchten.

REST

Wenn Sie Instanzen im Bulk erstellen möchten, die so konfiguriert sind, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, senden Sie eine POST-Anfrage an die Methode instances.bulkInsert. Geben Sie im Anfragetext das Feld skipGuestOsShutdown an, das auf true gesetzt ist.

Wenn Sie beispielsweise Instanzen im Bulk erstellen möchten, die ein Namensmuster in einer einzelnen Zone verwenden, stellen Sie eine POST-Anfrage wie hier beschrieben:

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

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "skipGuestOsShutdown": true
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem Sie Instanzen im Bulk-Verfahren erstellen möchten.

  • ZONE: Die Zone, in der Sie Instanzen erstellen möchten.

  • COUNT: Die Anzahl der zu erstellenden Instanzen.

  • NAME_PATTERN ist das Namensmuster für die Instanzen. Wenn Sie eine Zahlenfolge in einem Instanznamen ersetzen möchten, verwenden Sie eine Folge von Hash-Zeichen (#). Wenn Sie beispielsweise instance-# als Namensmuster verwenden, generiert Compute Engine Instanzen mit Namen, die mit instance-1 und instance-2 beginnen. Dieses inkrementelle Muster wird bis zur Anzahl der Instanzen fortgesetzt, die Sie in COUNT angeben.

  • MACHINE_TYPE: der für die Instanzen zu verwendende Maschinentyp.

  • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud. Weitere Informationen zu den unterstützten Image-Projekten finden Sie unter Öffentliche Images.

  • IMAGE: Wählen Sie eine der folgenden Optionen aus:

    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240617.

    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Dieser Wert gibt das neueste nicht verworfene Betriebssystem-Image an. Wenn Sie beispielsweise family/debian-12 angeben, verwendet Compute Engine die aktuelle Version in der Debian 12-Image-Familie. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

Weitere Informationen zum Erstellen von Instanzen im Bulk-Verfahren finden Sie unter Instanzen im Bulk-Verfahren erstellen.

Herunterfahren des Gastbetriebssystems beim Erstellen einer Instanzvorlage konfigurieren

Nachdem Sie eine Instanzvorlage erstellt haben, die so konfiguriert ist, dass das Herunterfahren des Gastbetriebssystems beim Beenden oder Löschen von Compute-Instanzen übersprungen wird, können Sie die Instanzvorlage für Folgendes verwenden:

Wählen Sie eine der folgenden Optionen aus, um eine Instanzvorlage zu erstellen, die so konfiguriert ist, dass das Herunterfahren des Gastbetriebssystems übersprungen wird:

gcloud

Verwenden Sie zum Erstellen einer Instanzvorlage, die so konfiguriert ist, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, den Befehl gcloud compute instance-templates create mit dem Flag --skip-guest-os-shutdown.

Wenn Sie beispielsweise eine regionale Instanzvorlage erstellen möchten, in der das Herunterfahren des Gastbetriebssystems übersprungen wird, führen Sie den folgenden Befehl aus. Wenn Sie eine globale Instanzvorlage erstellen möchten, verwenden Sie denselben Befehl ohne das Flag --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --skip-guest-os-shutdown

Ersetzen Sie Folgendes:

  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.

  • REGION: die Region, in der Sie die Instanzvorlage erstellen möchten.

  • MACHINE_TYPE: der Maschinentyp, der in der Instanzvorlage angegeben werden soll.

REST

Wenn Sie eine Instanzvorlage erstellen möchten, die so konfiguriert ist, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, senden Sie eine POST-Anfrage an eine der folgenden Methoden:

Geben Sie im Anfragetext das Feld skipGuestOsShutdown an, das auf true gesetzt ist.

Wenn Sie beispielsweise eine regionale Instanzvorlage erstellen möchten, die angibt, dass das Herunterfahren des Gastbetriebssystems übersprungen werden soll, stellen Sie eine POST-Anfrage wie hier beschrieben:

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

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "skipGuestOsShutdown": true
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem Sie die Instanzvorlage erstellen möchten.

  • REGION: die Region, in der Sie die Instanzvorlage erstellen möchten.

  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.

  • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud. Weitere Informationen zu den unterstützten Image-Projekten finden Sie unter Öffentliche Images.

  • IMAGE: Wählen Sie eine der folgenden Optionen aus:

    • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240617.

    • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Diese gibt das neueste nicht verworfene Betriebssystem-Image an. Beispiel: Wenn Sie family/debian-12 angeben, wird die aktuelle Version in der Debian 12-Image-Familie verwendet. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

  • MACHINE_TYPE: der Maschinentyp, der in der Instanzvorlage angegeben werden soll.

Weitere Informationen zum Erstellen einer Instanzvorlage finden Sie unter Instanzvorlagen erstellen.

Einstellung für das Herunterfahren des Gastbetriebssystems ansehen

Sie können prüfen, ob Compute Engine das Herunterfahren des Gastbetriebssystems überspringt, wenn Sie eine Compute-Instanz beenden oder löschen.

Wählen Sie eine der folgenden Optionen aus, um die Herunterfahrzeit des Gastbetriebssystems in einer Instanz aufzurufen:

gcloud

Wenn Sie die Details einer Instanz aufrufen möchten und sehen möchten, ob das Herunterfahren des Gastbetriebssystems übersprungen wird, verwenden Sie den Befehl gcloud compute instances describe:

gcloud compute instances describe INSTANCE_NAME \
    --zone=ZONE

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der Instanz.

  • ZONE: Die Zone, in der sich die Instanz befindet.

Wenn Sie die Instanz so konfiguriert haben, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, enthält die Ausgabe das Feld skipGuestOsShutdown, das auf true festgelegt ist, wie im folgenden Beispiel:

...
scheduling:
  automaticRestart: true
  skipGuestOsShutdown: true
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD
...

Andernfalls, wenn das Feld skipGuestOsShutdown fehlt oder auf false gesetzt ist, verwendet das Gastbetriebssystem die Standard-Herunterfahrzeit.

REST

Stellen Sie eine GET-Anfrage an die Methode instances.get, um die Details einer Instanz aufzurufen und zu sehen, ob das Herunterfahren des Gastbetriebssystems übersprungen wird:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem die Instanz vorhanden ist.

  • ZONE: Die Zone, in der sich die Instanz befindet.

  • INSTANCE_NAME: der Name der Instanz.

Wenn Sie die Instanz so konfiguriert haben, dass das Herunterfahren des Gastbetriebssystems übersprungen wird, enthält die Ausgabe das Feld skipGuestOsShutdown, das auf true festgelegt ist, wie im folgenden Beispiel:

{
  ...
  "scheduling": {
    "automaticRestart": true,
    "skipGuestOsShutdown": true,
    "onHostMaintenance": "MIGRATE",
    "preemptible": false,
    "provisioningModel": "STANDARD"
  },
  ...
}

Andernfalls, wenn das Feld skipGuestOsShutdown fehlt oder auf false gesetzt ist, verwendet das Gastbetriebssystem die Standard-Herunterfahrzeit.

Nächste Schritte