Laufzeit von VMs in einer verwalteten Instanzgruppe begrenzen


In diesem Dokument wird beschrieben, wie Sie virtuelle Maschinen (VMs) in einer verwalteten Instanzgruppe (Managed Instance Group, MIG) automatisch beenden, indem Sie ein Zeitlimit für die VMs angeben. Außerdem wird beschrieben, wie das Zeitlimit für VMs in einer MIG funktioniert.

Sie können temporäre Arbeitslasten optimieren, indem Sie ein Zeitlimit für die VMs in einer MIG angeben. Wenn eine VM das Zeitlimit erreicht, wird sie von der verwalteten Instanzgruppe automatisch beendet (gelöscht). Durch das Begrenzen der Laufzeit von VMs in einer MIG durch ein Zeitlimit können die Kosten minimiert und Kontingente freigegeben werden.

Informationen zum Angeben eines Zeitlimits für eine eigenständige VM finden Sie unter Laufzeit einer VM begrenzen. Wenn Sie möchten, dass einer MIG basierend auf Ihren Arbeitslasten automatisch VMs hinzugefügt oder daraus entfernt werden, lesen Sie den Hilfeartikel Autoscaling von Instanzgruppen.

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. 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.

Laufzeit von VMs in einer verwalteten Instanzgruppe begrenzen

Sie können die Laufzeit von VMs in einer verwalteten Instanzgruppe begrenzen, indem Sie in der Instanzvorlage, die für die MIG verwendet wird, ein Zeitlimit angeben. Wenn die MIG VMs anhand der Vorlage erstellt, wird das Zeitlimit auf jede VM angewendet.

Sie können einen von zwei Zeitlimits angeben:

  • Zeitlimit als Laufzeit
  • Zeitlimit als Beendigungszeitpunkt

So geben Sie ein Zeitlimit für die VMs in einer verwalteten Instanzgruppe an:

  1. Erstellen Sie eine Instanzvorlage mit einer Laufzeit für VMs oder mit einer Beendigungszeit für VMs.

  2. Verwenden Sie die Instanzvorlage, um eine MIG zu erstellen oder eine vorhandene MIG zu aktualisieren.

Beschränkungen

Instanzvorlage mit einer Laufzeit für VMs erstellen

Wenn VMs in einer MIG nach einer bestimmten Ausführungsdauer automatisch beendet werden sollen, legen Sie in der Instanzvorlage eine maximale Ausführungsdauer (maxRunDuration) fest.

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Wählen Sie den Standort so aus:

    • Wenn Sie die Instanzvorlage regionenübergreifend verwenden möchten, wählen Sie Global.
    • Wenn Sie die regionsübergreifende Abhängigkeit reduzieren möchten, wählen Sie Regional.
  4. Wenn Sie "Regional" ausgewählt haben, wählen Sie die Region, in der Sie die Instanzvorlage erstellen möchten.

  5. Erweitern Sie im Abschnitt Verfügbarkeitsrichtlinien die Option Erweiterte Einstellungen für das VM-Bereitstellungsmodell.

  6. Klicken Sie auf das Kästchen Zeitlimit für die VM festlegen.

  7. Wählen Sie im Feld Zeitlimittyp die Option Nach Stunden (Standard) aus, um das Zeitlimit als Dauer anzugeben. Geben Sie im nächsten Feld die Dauer in Stunden ein.

  8. Wählen Sie in der Liste Bei VM-Beendigung den Wert Löschen aus.

  9. Übernehmen Sie für die anderen Felder die Standardwerte oder ändern Sie sie je nach Bedarf.

  10. Klicken Sie auf Erstellen.

gcloud

Führen Sie den Befehl instance-templates create aus. Wenn Sie VMs nach einer bestimmten Dauer automatisch löschen möchten, geben Sie das Flag --max-run-duration an und setzen Sie das Flag --instance-termination-action auf DELETE. Gehen Sie dazu so vor:

  gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
      --max-run-duration=DURATION \
      --instance-termination-action=DELETE

Ersetzen Sie Folgendes:

  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.
  • DURATION: durch die Dauer, für die die VMs ausgeführt werden sollen. Die MIG löscht die VM nach der angegebenen Dauer automatisch.

    Formatieren Sie die Dauer als Anzahl an Tagen, Stunden, Minuten und Sekunden gefolgt von d, h, m und s. Geben Sie beispielsweise 30m für eine Dauer von 30 Minuten oder 1d2h3m4s für eine Dauer von 1 Tag, 2 Stunden, 3 Minuten und 4 Sekunden an. Die Mindestdauer beträgt 30 Sekunden (30s) und die maximale Dauer 120 Tage (120d).

Terraform

Verwenden Sie zum Erstellen einer Instanzvorlage mit Terraform die Ressource google_compute_instance_template. Zum Erstellen einer Instanzvorlage, die VMs nach einer bestimmten Dauer automatisch löscht, müssen Sie das Argument max_run_duration angeben und das Argument instance_termination_action auf DELETE festlegen.

Weitere Informationen finden Sie in der Terraform-Dokumentation zur Ressource google_compute_instance_template.

REST

Verwenden Sie die Methode instanceTemplates.insert. Wenn Sie VMs nach einer bestimmten Dauer automatisch löschen möchten, fügen Sie das Feld maxRunDuration ein und legen Sie das Feld instanceTerminationAction wie unten beschrieben auf DELETE fest:

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

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "machineType": "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"
        }
      }
    ]
    "scheduling": {
      "maxRunDuration":
      {
        "seconds": DURATION
      },
      "instanceTerminationAction": "DELETE"
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem Sie die Instanzvorlage erstellen möchten.
  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.
  • MACHINE_TYPE: der vordefinierte oder benutzerdefinierte Maschinentyp für die VMs in der Gruppe.
  • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud.
  • Für IMAGE oder IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:

    • IMAGE ist eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-10-buster-v20200309.

    • IMAGE_FAMILY ist eine Image-Familie. Diese gibt das neueste nicht verworfene Betriebssystem-Image an. Beispiel: Wenn Sie family/debian-10 angeben, wird die aktuelle Version in der Debian 10-Image-Familie verwendet.

  • DURATION: durch die Dauer, für die die VMs ausgeführt werden sollen. Die MIG löscht die VM nach der angegebenen Dauer automatisch.

    Formatieren Sie die Dauer als Anzahl an Tagen, Stunden, Minuten und Sekunden gefolgt von d, h, m und s. Geben Sie beispielsweise 30m für eine Dauer von 30 Minuten oder 1d2h3m4s für eine Dauer von 1 Tag, 2 Stunden, 3 Minuten und 4 Sekunden an. Die Mindestdauer beträgt 30 Sekunden (30s) und die maximale Dauer 120 Tage (120d).

Instanzvorlage mit einer Beendigungszeit für VMs erstellen

Wenn Sie VMs in einer MIG zu einer bestimmten Zeit automatisch beenden möchten, legen Sie in der Instanzvorlage eine Zeit für die Beendigung (terminationTime) fest. Sie können ein Datum und eine Uhrzeit festlegen, zu dem bzw. der die VMs von einer MIG beendet werden sollen.

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Wählen Sie den Standort so aus:

    • Wenn Sie die Instanzvorlage regionenübergreifend verwenden möchten, wählen Sie Global.
    • Wenn Sie die regionsübergreifende Abhängigkeit reduzieren möchten, wählen Sie Regional.
  4. Wenn Sie "Regional" ausgewählt haben, wählen Sie die Region, in der Sie die Instanzvorlage erstellen möchten.

  5. Erweitern Sie im Abschnitt Verfügbarkeitsrichtlinien die Option Erweiterte Einstellungen für das VM-Bereitstellungsmodell.

  6. Wählen Sie im Feld Art des Zeitlimits die Option Nach Datum aus, um das Zeitlimit als Uhrzeit und Datum anzugeben. Klicken Sie im nächsten Feld auf Datum und Uhrzeit auswählen und wählen Sie das Datum, die Uhrzeit und die Zeitzone für die automatische Kündigung aus.

  7. Wählen Sie in der Liste Bei VM-Beendigung den Wert Löschen aus.

  8. Übernehmen Sie für die anderen Felder die Standardwerte oder ändern Sie sie je nach Bedarf.

  9. Klicken Sie auf Erstellen.

gcloud

Führen Sie den Befehl instance-templates create aus. Wenn Sie VMs zu einer bestimmten Zeit automatisch löschen möchten, geben Sie das Flag --termination-time an und setzen Sie das Flag --instance-termination-action auf DELETE. Gehen Sie dazu so vor:

  gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
      --termination-time=TIME \
      --instance-termination-action=DELETE

Ersetzen Sie Folgendes:

  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.
  • TIME: die Zeit, zu der diese VM automatisch beendet werden soll. Die von Ihnen angegebene Zeit muss mindestens 30 Sekunden in der Zukunft und höchstens 120 Tage in der Zukunft liegen. Formatieren Sie die Uhrzeit als RFC 3339-Zeitstempel:

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Dabei gilt:

    • YYYY-MM-DD: ein Datum als vierstelliges Jahr formatiert, ein Monat zweistellig und ein Tag eines Monats zweistellig, getrennt durch Bindestriche.
    • HH:MM:SS: eine Zeit, die als zweistellige Stundenzahl im 24-Stunden-Format, zweistellige Minute und zweistellige Sekunde formatiert und durch Doppelpunkte getrennt ist.
    • OFFSET: die Zeitzone formatiert als Versatz der koordinierten Weltzeit (Coordinated Universal Time, UTC) Wenn Sie beispielsweise Pacific Standard Time (PST) verwenden möchten, das 8 Stunden vor UTC liegt, geben Sie -08:00 an. Wenn Sie keinen Versatz (UTC+0) verwenden möchten, geben Sie Z an.

REST

Verwenden Sie die Methode instanceTemplates.insert. Wenn Sie VMs zu einer bestimmten Zeit automatisch löschen möchten, fügen Sie das Feld terminationTime ein und legen Sie das Feld instanceTerminationAction wie unten beschrieben auf DELETE fest:

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

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "machineType": "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"
        }
      }
    ]
    "scheduling": {
      "terminationTime": TIME,
      "instanceTerminationAction": "DELETE"
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem Sie die Instanzvorlage erstellen möchten.
  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.
  • MACHINE_TYPE: der vordefinierte oder benutzerdefinierte Maschinentyp für die VMs in der Gruppe.
  • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud.
  • Für IMAGE oder IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:

    • IMAGE ist eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-10-buster-v20200309.

    • IMAGE_FAMILY ist eine Image-Familie. Diese gibt das neueste nicht verworfene Betriebssystem-Image an. Beispiel: Wenn Sie family/debian-10 angeben, wird die aktuelle Version in der Debian 10-Image-Familie verwendet.

  • TIME: Die Zeit, zu der diese VM automatisch beendet werden soll. Die von Ihnen angegebene Zeit muss mindestens 30 Sekunden in der Zukunft und höchstens 120 Tage in der Zukunft liegen. Formatieren Sie die Uhrzeit als RFC 3339-Zeitstempel:

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Dabei gilt:

    • YYYY-MM-DD: ein Datum als vierstelliges Jahr formatiert, ein Monat zweistellig und ein Tag eines Monats zweistellig, getrennt durch Bindestriche.
    • HH:MM:SS: eine Zeit, die als zweistellige Stundenzahl im 24-Stunden-Format, zweistellige Minute und zweistellige Sekunde formatiert und durch Doppelpunkte getrennt ist.
    • OFFSET: die Zeitzone formatiert als Versatz der koordinierten Weltzeit (Coordinated Universal Time, UTC) Wenn Sie beispielsweise Pacific Standard Time (PST) verwenden möchten, das 8 Stunden vor UTC liegt, geben Sie -08:00 an. Wenn Sie keinen Versatz (UTC+0) verwenden möchten, geben Sie Z an.

Funktionsweise des Zeitlimits für VMs in einer verwalteten Instanzgruppe

Wenn Sie ein Zeitlimit für VMs in einer verwalteten Instanzgruppe angeben, wird die Zeit, zu der eine VM von einer verwalteten Instanzgruppe beendet wird, automatisch im Feld „Beendigungszeitstempel“ (terminationTimestamp) der VM festgelegt.

Je nach Art des von Ihnen angegebenen Zeitlimits wird der Zeitstempel für die Beendigung einer VM so festgelegt:

  • Zeitlimit als Laufzeit (maxRunDuration):

    terminationTimestamp einer VM = letzte Erstellungs- oder Startzeit der VM + maxRunDuration

    Wenn Sie eine Dauer angeben, wird der Zeitstempel für die Beendigung relativ zur letzten Erstellungs- oder Startzeit der VM festgelegt. Wenn die VM neu erstellt, neu gestartet, fortgesetzt oder ersetzt wird, wird der Zeitstempel für das Ende neu berechnet. Der Zeitstempel für die Beendigung kann je nach VM in einer MIG variieren, je nachdem, wann die jeweilige VM zuletzt erstellt oder gestartet wurde. Wenn beispielsweise eine VM repariert wird, wird der Zeitstempel der VM neu berechnet, indem die Dauer zum Zeitpunkt hinzuaddiert wird, zu dem die VM während der Reparatur neu erstellt wurde.

  • Zeitlimit als Endzeit (terminationTime):

    terminationTimestamp einer VM = terminationTime

    Wenn Sie eine Zeit angeben, wird der Zeitstempel für die Beendigung auf diese Zeit festgelegt, sofern die Zeit in der Zukunft liegt. Wenn die Beendigungszeit abgelaufen ist, schlägt jede MIG-Aktion zum Erstellen, Neustarten oder Ersetzen einer VM mit einer Fehlermeldung fehl. Um diesen Fehler zu beheben, müssen Sie eine neue Instanzvorlage mit einem Endzeitpunkt in der Zukunft erstellen und diese Vorlage auf die MIG anwenden. Wenn Sie die vorhandenen Vorlageneigenschaften in der neuen Vorlage verwenden möchten, erstellen Sie eine Instanzvorlage auf der Grundlage der vorhandenen Vorlage.

Während einer VM-Aktualisierung ändert sich der Zeitstempel für die Beendigung nicht. Wenn Sie beispielsweise die Unterbrechungsstufe für Updates auf REFRESH festlegen, wird der Zeitstempel für die Beendigung beibehalten, wenn die VM von der verwalteten Instanzgruppe aktualisiert wird.

Wenn Sie eine VM in einer MIG anhalten oder beenden, wird der Zeitstempel für die Beendigung unabhängig von der Art des Zeitlimits automatisch gelöscht. Wenn Sie eine VM fortsetzen oder starten, wird der Zeitstempel für die Beendigung je nach Art des Zeitlimits neu festgelegt, wie oben in diesem Abschnitt erläutert.

So funktioniert das Autoscaling, wenn ein Zeitlimit festgelegt ist

Mit Autoscaling können Sie VMs Ihrer MIG bei zunehmender oder abnehmender Last automatisch hinzufügen oder entfernen. Wenn eine MIG VMs löscht, deren Beendigungszeitstempel erreicht wurde, erstellt die MIG neue VMs, um die vom Autoscaling empfohlene Größe beizubehalten. Die neuen VMs werden für den angegebenen Zeitraum ausgeführt. Wenn das Autoscaling empfiehlt, die Anzahl der VMs zu reduzieren, löscht die verwaltete Instanzgruppe VMs, bevor die Zeitlimits erreicht werden.

Wenn Sie Skalierungspläne konfiguriert haben, werden die VMs nur bis zum Ende eines Zeitplans oder bis eine VM ihren Zeitstempel für die Beendigung erreicht, je nachdem, was zuerst eintritt.

Nächste Schritte