Benutzerdefinierte Images erstellen, löschen und verwerfen


Sie können benutzerdefinierte Images von Quelllaufwerken, Images, Snapshots oder von in Cloud Storage gespeicherten Images erstellen und diese Images verwenden, um VM-Instanzen zu erstellen. Benutzerdefinierte Images sind ideal, wenn Sie ein nichtflüchtiges Bootlaufwerk oder ein bestimmtes Image in einem bestimmten Zustand erstellt und geändert haben und diesen Zustand zum Erstellen von VMs speichern müssen.

Alternativ können Sie das Tool zum Importieren virtueller Laufwerke verwenden, um Images von Bootlaufwerken aus vorhandenen Systemen in Compute Engine zu importieren und der Liste Ihrer benutzerdefinierten Images hinzuzufügen.

Hinweis

Benutzerdefiniertes Image erstellen

In diesem Abschnitt wird beschrieben, wie Sie ein benutzerdefiniertes Image auf einer Linux-VM erstellen. Weitere Informationen zum Erstellen eines Windows-Images finden Sie unter Windows-Image erstellen.

Image-Speicherort auswählen

Beim Erstellen eines benutzerdefinierten Images können Sie dessen Speicherort in Cloud Storage angeben, sofern es sich nicht um Standorte mit zwei Regionen handelt. Die Angabe des Image-Speicherorts ermöglicht es Ihnen, geltende Vorschriften und Compliance-Anforderungen hinsichtlich der Datenlokalität einzuhalten. Außerdem können Sie Ihre hohen Verfügbarkeitsanforderungen erfüllen, da Sie für regionsübergreifende Redundanz sorgen. Zum Erstellen, Ändern und Löschen von in Cloud Storage gespeicherten Images benötigen Sie roles/compute.storageAdmin.

Die Angabe des Speicherorts ist optional. Wenn Sie keinen Speicherort auswählen, speichert Compute Engine das Image in der Multiregion, die der Image-Quelle am nächsten liegt. Wenn Sie beispielsweise ein Image von einem Quelllaufwerk erstellen, das sich in us-central1 befindet, und Sie keinen Speicherort für das benutzerdefinierte Image angeben, speichert Compute Engine das Image in der Multi-Region us.

Wenn das Image in einer Region nicht verfügbar ist, in der Sie eine VM erstellen, speichert Compute Engine das Image in dieser Region beim ersten Erstellen einer VM im Cache.

Den Speicherort eines Images können Sie mit dem Befehl images describe von gcloud compute abrufen:

gcloud compute images describe IMAGE_NAME \
    --project=PROJECT_ID

Dabei gilt:

  • IMAGE_NAME ist der Name des Images.

  • PROJECT_ID ist das Projekt, zu dem das Image gehört.

Alle Images, die Sie vor der Einführung dieses Features erstellt haben, bleiben an ihrem bisherigen Speicherort. Der einzige Unterschied ist, dass Sie den Speicherort aller Images sehen können. Wenn Sie ein vorhandenes Image verschieben möchten, müssen Sie es am gewünschten Speicherort neu erstellen.

VM für ein Image vorbereiten

Sie können ein Image von einem Laufwerk erstellen, auch wenn es mit einer ausgeführten VM verknüpft ist. Das Image wird jedoch zuverlässiger, wenn Sie die VM in einen Zustand versetzen, den das Image leichter erfassen kann. Mit einem der folgenden Prozesse bereiten Sie Ihr Bootlaufwerk für das Image vor:

  • Beenden Sie die VM, sodass sie herunterfahren und das Schreiben von Daten auf den nichtflüchtigen Speicher beenden kann.

  • Wenn Sie Ihre VM nicht beenden können, bevor Sie das Image erstellen, minimieren Sie die Anzahl der Schreibvorgänge auf das Laufwerk und synchronisieren Sie Ihr Dateisystem. So minimieren Sie das Schreiben in Ihren nichtflüchtigen Speicher:

    1. Pausieren Sie alle Anwendungen oder Prozesse des Betriebssystems, die Daten in den nichtflüchtigen Speicher schreiben.
    2. Leeren Sie die Anwendungsdaten auf das Laufwerk, falls erforderlich. MySQL bietet hierfür zum Beispiel die Anweisung FLUSH. Andere Anwendungen haben möglicherweise ähnliche Prozesse.
    3. Beenden Sie das Schreiben von Daten auf den nichtflüchtigen Speicher durch Anwendungen.
    4. Führen Sie sudo sync aus.

Nachdem die VM vorbereitet wurde, können Sie das Image erstellen.

Image erstellen

Sie können folgende Quellen verwenden, um Laufwerk-Images zu erstellen:

  • einen nichtflüchtigen Speicher, auch wenn dieser mit einer VM verbunden ist
  • einen Snapshot eines nichtflüchtigen Speichers
  • ein anderes Image in Ihrem Projekt
  • ein Image, das von einem anderen Projekt freigegeben wird
  • Ein komprimiertes RAW-Image in Cloud Storage

Sie können alle 10 Minuten ein Laufwerk-Image erstellen. Wenn Sie mehrere Anfragen zum Erstellen eines Laufwerk-Images senden möchten, können Sie maximal 6 Anfragen innerhalb von 60 Minuten senden. Weitere Informationen finden Sie unter Limits für die Snapshot-Häufigkeit.

Console

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

    Zur Seite „Image erstellen“

  2. Geben Sie im Feld Name den Image-Namen an.

  3. Geben Sie die Quelle an, auf deren Grundlage Sie ein Image erstellen möchten. Dies kann ein nichtflüchtiger Speicher, ein Snapshot, ein anderes Image oder eine disk.raw-Datei in Cloud Storage sein.

  4. Wenn Sie ein Image von einem Laufwerk erstellen, das mit einer ausgeführten VM verbunden ist, aktivieren Sie Instanz weiter ausführen, um zu bestätigen, dass Sie das Image erstellen möchten, während die VM ausgeführt wird. Sie können die VM vorbereiten, bevor Sie das Image erstellen.

  5. Geben Sie in der Drop-down-Liste Basierend auf dem Standort des Quelllaufwerks (Standard) den Speicherort für das Image an. Geben Sie beispielsweise us an, um das Image in der Multiregion us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.

  6. Optional: Legen Sie die gewünschten Attribute des Images fest.

    • Familie: die Image-Familie, zu der das neue Image gehört.
    • Beschreibung: Eine Beschreibung für Ihr benutzerdefiniertes Image.
    • Label: ein Label, um Ressourcen zu gruppieren.
  7. Geben Sie den Verschlüsselungsschlüssel an. Sie können zwischen einem von Google verwalteten Schlüssel, einem Cloud Key Management Service (Cloud KMS)-Schlüssel oder einem vom Kunden bereitgestellten Verschlüsselungsschlüssel (CSEK) wählen. Wenn kein Verschlüsselungsschlüssel angegeben ist, werden die Images mit einem von Google verwalteten Schlüssel verschlüsselt.

  8. Klicken Sie auf Erstellen, um das Image zu erstellen.

gcloud

Im gcloud-Befehlszeilentool können Sie den Befehl gcloud compute images create verwenden, um ein benutzerdefiniertes Image zu erstellen.

Image von einem Quelllaufwerk erstellen:

Das Flag --force ist ein optionales Flag, mit dem Sie das Image von einer laufenden Instanz erstellen können. Standardmäßig können Sie keine Images von ausgeführten Instanzen erstellen. Geben Sie dieses Flag nur an, wenn Sie sicher sind, dass Sie das Image erstellen möchten, während die Instanz ausgeführt wird.

gcloud compute images create IMAGE_NAME \
    --source-disk=SOURCE_DISK \
    --source-disk-zone=ZONE \
    [--family=IMAGE_FAMILY] \
    [--storage-location=LOCATION] \
    [--force]

Dabei gilt:

  • IMAGE_NAME ist ein Name für das neue Image
  • SOURCE_DISK ist das Laufwerk, von dem Sie das Image erstellen möchten
  • ZONE ist die Zone, in der sich das Laufwerk befindet
  • IMAGE_FAMILY (Optional): Ein Flag, das angibt, zu welcher Image-Familie dieses Image gehört
  • LOCATION (Optional): Ein Flag, mit dem Sie die Region oder Multiregion festlegen können, in der Ihr Image gespeichert wird. Geben Sie beispielsweise us an, um das Image in der Multiregion us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.

Image von einem Quell-Image erstellen:

gcloud compute images create IMAGE_NAME \
  --source-image=SOURCE_IMAGE \
  [--source-image-project=IMAGE_PROJECT] \
  [--family=IMAGE_FAMILY] \
  [--storage-location=LOCATION]

Dabei gilt:

  • IMAGE_NAME ist ein Name für das neue Image.
  • SOURCE_IMAGE ist das Image, von dem Sie das neue Image erstellen möchten.
  • IMAGE_PROJECT (Optional): das Projekt, in dem sich das Quell-Image befindet. Verwenden Sie diesen Parameter, wenn Sie ein Image aus einem anderen Projekt kopieren möchten.
  • IMAGE_FAMILY (Optional): Die Image-Familie, zu der das neue Image gehört.
  • LOCATION (Optional): Hiermit können Sie die Region oder Multiregion festlegen, in der Ihr Image gespeichert wird. Geben Sie beispielsweise us an, um das Image in der Multiregion us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, wird das Image von Compute Engine an dem multiregionalen Standort gespeichert, der dem Quellspeicherort des Images am nächsten liegt.

Image von einem Snapshot erstellen:

gcloud compute images create IMAGE_NAME \
    --source-snapshot=SOURCE_SNAPSHOT \
    [--storage-location=LOCATION]

Dabei gilt:

  • IMAGE_NAME ist ein Name für das neue Image
  • SOURCE_SNAPSHOT ist der Snapshot, von dem Sie das Image erstellen möchten.
  • LOCATION (Optional): Ein Flag, mit dem Sie die Region oder Multiregion festlegen können, in der Ihr Image gespeichert wird. Geben Sie beispielsweise us an, um das Image in der Multiregion us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.

Image-Speicherort ansehen:

Mit dem Befehl gcloud compute images describe rufen Sie den Speicherort eines Images ab.

gcloud compute images describe IMAGE_NAME

Ersetzen Sie IMAGE_NAME durch den Namen des Images, das Sie sich ansehen möchten.

API

Stellen Sie eine POST-Anfrage an die Methode images().insert. Fügen Sie in den Anfragetext eine URL ein, die auf das Quellobjekt verweist, aus dem Sie das Image erstellen möchten. Geben Sie URLs zu Ihren Ressourcen an und verwenden Sie dazu Ihre eigene Projekt-ID und Ihre Ressourcennamen.

Image von einem nichtflüchtigen Speicher erstellen:

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

{
  "name": "IMAGE_NAME",
  "sourceDisk": "/zones/ZONE/disks/SOURCE_DISK",
  ("storageLocations": "LOCATION",)
  ("forceCreate": "TRUE")
}

Dabei gilt:

  • PROJECT_ID ist das Projekt, zu dem das Image gehört.
  • IMAGE_NAME ist ein Name für das neue Image, das Sie erstellen möchten.
  • ZONE ist die Zone, in der sich das Quelllaufwerk befindet.
  • SOURCE_DISK ist das Laufwerk, von dem Sie das Image erstellen möchten.
  • LOCATION (Optional): Der Speicherort Ihres Images. Geben Sie beispielsweise us an, um das Image in der Multiregionus zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.

Mit dem optionalen Parameter forceCreate können Sie das Image von einer laufenden VM erstellen. Geben Sie den Wert TRUE nur an, wenn Sie sicher sind, dass Sie das Image von einer ausgeführten VM erstellen möchten. Die Standardeinstellung von forceCreate ist FALSE.

Ein Image von einem anderen Image erstellen:

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

{
  "name": "IMAGE_NAME",
  "sourceImage": "/global/images/SOURCE_IMAGE",
  ("storageLocations": "LOCATION")
}

Dabei gilt:

  • PROJECT_ID ist das Projekt, zu dem das Image gehört.
  • IMAGE_NAME ist ein Name für das neue Image, das Sie erstellen möchten.
  • SOURCE_IMAGE ist das Image, von dem Sie das Image erstellen möchten.
  • LOCATION (Optional): Der Speicherort Ihres Images. Geben Sie beispielsweise us an, um das Image in der Multiregion us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, wird das Image von Compute Engine an dem multiregionalen Standort gespeichert, der dem Quellspeicherort des Images am nächsten liegt.

Image von einem Snapshot erstellen:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images
{
  "name": "IMAGE_NAME",
  "sourceSnapshot": "(/SOURCE_PROJECT_ID)/global/snapshots/SOURCE_SNAPSHOT",
  ("storageLocations": "LOCATION")
}

Dabei gilt:

  • PROJECT_ID ist das Projekt, zu dem das Image gehört.
  • IMAGE_NAME ist ein Name für das neue Image, das Sie erstellen möchten.
  • SOURCE_PROJECT_ID (Optional): Das Projekt, in dem sich der Snapshot befindet. Sie benötigen die Zugriffsberechtigung für die Snapshot-Ressource in diesem Projekt.
  • SOURCE_SNAPSHOT ist der Snapshot, von dem Sie das Image erstellen möchten.
  • LOCATION (Optional): Der Speicherort Ihres Images. Geben Sie beispielsweise us an, um das Image in der Multiregionus zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, wird das Image von Compute Engine an dem multiregionalen Standort gespeichert, der dem Quellspeicherort des Images am nächsten liegt.

Weitere Informationen zum Hinzufügen von Images finden Sie in der Image-Referenz.

Image freigeben

Nachdem Sie ein benutzerdefiniertes Image erstellt haben, können Sie es projektübergreifend freigeben. Wenn Sie Nutzern aus einem anderen Projekt die Verwendung Ihrer benutzerdefinierten Images erlauben, können sie auf diese Images zugreifen, indem sie in ihrer Anfrage das Image-Projekt angeben.

Benutzerdefiniertes Image verwerfen

Mit Compute Engine können Sie ein benutzerdefiniertes Image verwerfen, dessen Inhaber Sie sind. Hierzu legen Sie den Verwerfungsstatus des Images fest. Jeder Einstellungsstatus führt zu einer anderen Antwort des Servers. Dies hilft Ihnen dabei, Nutzer auf organisierte Art und Weise von nicht mehr unterstützten Images wegzuführen. Zum Verwerfen eines Images können Sie die Google Cloud Console, das gcloud-Befehlszeilentool oder die Compute Engine API verwenden.

Verwerfungsstatus

Die folgenden Verwerfungsstatus werden unterstützt:

  • ACTIVE: Das Image ist aktiv und kann wie gewohnt verwendet werden. Image-Familien verweisen auf das neueste und aktive Image in einer Familie.
  • DEPRECATED: Das Image wird als verworfen gekennzeichnet, kann aber weiterhin zum Erstellen einer VM verwendet werden. Neue Links auf dieses Image sind erlaubt. Image-Familien verweisen nicht mehr auf dieses Image, selbst wenn es das neueste Image der Familie ist.

    Wenn Sie mit dem gcloud-Befehlszeilentool eine VM mit einem verworfenen Image erstellen, wird die Anfrage mit einer Warnung erfolgreich ausgeführt.

  • OBSOLETE: Das Image wird als veraltet gekennzeichnet und steht nicht mehr zur Verfügung. Wenn Sie versuchen, dieses Image in einer Anfrage zu verwenden, erhalten Sie eine Fehlermeldung. Vorhandene Links zu diesem Image sind weiterhin zulässig.

  • DELETED: Dieses Image wurde gelöscht. Wenn Sie versuchen, ein gelöschtes Image zu verwenden, erhalten Sie eine Fehlermeldung.

Sie können eine Einstellung rückgängig machen (ein Image wieder aktivieren). Ändern Sie dazu den Verwerfungsstatus in ACTIVE.

Console

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

    Zur Seite „Images“

  2. Klicken Sie für das Image, das Sie verwerfen möchten, auf Aktionen .

  3. Wählen Sie Verwerfen aus.

  4. Für den Status wählen Sie entweder Verworfen oder Veraltet aus. Weitere Informationen zum Status finden Sie unter Verwerfungsstatus.

  5. Optional: Geben Sie ein Ersatz-Image an.

  6. Klicken Sie auf Image verwerfen.

gcloud

Verwenden Sie den Befehl gcloud compute images deprecate, um den Einstellungsstatus eines Images festzulegen.

gcloud compute images deprecate IMAGE_NAME \
    --state STATE \
    --replacement REPLACEMENT

Dabei gilt:

  • IMAGE_NAME ist der Name des Images, das Sie verwerfen möchten.
  • STATE ist der Verwerfungsstatus.
  • REPLACEMENT ist das Image, mit dem das verworfene Image ersetzt werden soll.

API

Stellen Sie eine POST-Anfrage an die Methode images().deprecate. Geben Sie den Namen des Images an, das Sie verwerfen möchten.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/RESOURCE_ID/deprecate

{
  "state": "STATE",
  "replacement": "REPLACEMENT"
}

Dabei gilt:

  • PROJECT_ID ist das Projekt, zu dem das Image gehört.
  • RESOURCE_ID ist der Name des Images, das Sie verwerfen.
  • STATE ist der Verwerfungsstatus dieser Ressource.
  • REPLACEMENT ist das Image, mit dem das verworfene Image ersetzt werden soll.

Benutzerdefiniertes Image löschen

Sie können nur benutzerdefinierte Images löschen, die von Ihnen oder einem Nutzer mit Zugriff auf das Projekt hinzugefügt wurden. Zum Löschen des Images können Sie die Google Cloud Console, das gcloud-Befehlszeilentool oder die Compute Engine API verwenden.

Console

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

    Zur Seite „Images“

  2. Klicken Sie das Kästchen links neben dem Image an, das Sie löschen möchten.

  3. Klicken Sie oben auf der Seite auf Löschen. Das Image wird gelöscht.

gcloud

Mit dem Befehl gcloud compute images delete löschen Sie ein Image:

gcloud compute images delete IMAGE_NAME

Ersetzen Sie IMAGE_NAME durch den Namen des Images, das gelöscht werden soll.

API

Stellen Sie eine POST-Anfrage an die Methode images().delete. Geben Sie den Namen des Images an, das Sie löschen möchten.

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

Dabei gilt:

  • PROJECT_ID ist das Projekt, zu dem das Image gehört.
  • RESOURCE_ID ist der Name des Images, das Sie löschen möchten.

Image-Versionen in einer Image-Familie festlegen

Nutzen Sie Image-Familien, um die Versionsverwaltung von Images zu vereinfachen. Wenn Sie ein Image zu einer Image-Familie hinzufügen, wird dieses als neueste Imageversion festgelegt. Wenn Sie feststellen, dass Sie die Image-Familie auf eine frühere Image-Version zurücksetzen müssen, verwerfen Sie das neueste Image in der Familie.

Best Practices für die Arbeit mit Image-Familien finden Sie unter Best Practices für Image-Familien.

Optional können Sie den Image-Speicherort über die Google Cloud Console, den gcloud compute images create-Befehl mit dem Flag --storage-location oder die images().insert-Methode angeben.

Erstellen Sie beispielsweise ein Image mit dem Namen image-v1 als Teil einer Image-Familie.

Console

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

    Zur Seite „Image erstellen“

  2. Geben Sie im Feld Name den Image-Namen an. Beispiel: image-v1.

  3. Geben Sie die Quelle an, auf deren Grundlage Sie ein Image erstellen möchten. Dies kann ein nichtflüchtiger Speicher, ein Snapshot, ein anderes Image oder eine disk.raw-Datei in Cloud Storage sein.

  4. Wenn Sie ein Image von einem Laufwerk erstellen, das mit einer ausgeführten VM verbunden ist, aktivieren Sie Instanz weiter ausführen, um zu bestätigen, dass Sie das Image erstellen möchten, während die VM ausgeführt wird. Sie können die VM vorbereiten, bevor Sie das Image erstellen.

  5. Geben Sie in der Drop-down-Liste Basierend auf dem Standort des Quelllaufwerks (Standard) den Speicherort für das Image an. Geben Sie beispielsweise us an, um das Image in der Multiregion us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, wird das Image von Compute Engine an dem multiregionalen Standort gespeichert, der dem Quellspeicherort des Images am nächsten liegt.

  6. Geben Sie das Image Familie für das neue Image an. Fügen Sie beispielsweise my-image-family hinzu, um das Image als Teil einer Image-Familie zu organisieren.

  7. Optional: Geben Sie weitere Bildattribute an:

    • Beschreibung: Eine Beschreibung für Ihr benutzerdefiniertes Image.
    • Label: ein Label, um Ressourcen zu gruppieren.
  8. Geben Sie den Verschlüsselungsschlüssel an. Sie können zwischen einem von Google verwalteten Schlüssel, einem Cloud Key Management Service (Cloud KMS)-Schlüssel oder einem vom Kunden bereitgestellten Verschlüsselungsschlüssel (CSEK) wählen. Wenn kein Verschlüsselungsschlüssel angegeben ist, werden die Images mit einem von Google verwalteten Schlüssel verschlüsselt.

  9. Klicken Sie auf Erstellen, um das Image zu erstellen.

gcloud

gcloud compute images create image-v1 \
    --source-disk disk-1 \
    --source-disk-zone us-central1-f \
    --family my-image-family

Die Image-Familie verweist auf image-v1. Fügen Sie der Familie ein zweites Image hinzu:

gcloud compute images create image-v2 \
    --source-disk disk-2 \
    --source-disk-zone us-central1-f \
    --family my-image-family

API

Stellen Sie eine POST-Anfrage an die Methode images().insert. Geben Sie im Anfragetext die Image-Familie an.

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

{
  "name": "image-v2",
  "sourceDisk": "/zones/us-central1-f/disks/disk-2",
  "family":"my-image-family",

}

Die Image-Familie verweist auf image-v2, weil dies das neueste Image ist, das Sie der Familie hinzugefügt haben.

gcloud

Mit dem Befehl gcloud compute images describe-from-family können Sie sehen, auf welches Image eine Familie verweist.

Beispiel:

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '8904691942610171306'
kind: compute#image
name: image-v2
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v2
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v2
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY

API

Stellen Sie eine GET-Anfrage an die Methode images().getFromFamily. Geben Sie im Anfragetext die Image-Familie an.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/family

{
  "resourceId":"my-image-family",

}

Wenn Sie feststellen, dass Sie ein Rollback der Image-Familie ausführen müssen, sodass sie nicht mehr auf image-v2 verweist, verwerfen Sie image-v2 und die Familie verweist wieder auf image-v1.

gcloud compute images deprecate image-v2 \
    --state DEPRECATED \
    --replacement image-v1

Prüfen Sie, ob die Image-Familie auch wirklich auf image-v1 verweist.

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '2741732787056801255'
kind: compute#image
name: image-v1
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v1
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v1
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY

Gastbetriebssystem-Funktionen auf benutzerdefinierten Images aktivieren

Verwenden Sie Gastbetriebssystem-Funktionen (OS), um die folgenden Netzwerk-, Sicherheits-, Speicher- und Betriebssystemoptionen für benutzerdefinierte Images zu konfigurieren. Benutzerdefinierte Images mit diesen konfigurierten Features werden als Bootlaufwerke verwendet.

gcloud

Verwenden Sie den Befehl gcloud compute images create mit dem Flag --guest-os-features, um ein neues benutzerdefiniertes Image aus einem vorhandenen benutzerdefinierten Image zu erstellen.

gcloud compute images create IMAGE_NAME \
    --source-image=SOURCE_IMAGE \
    [--source-image-project=IMAGE_PROJECT] \
    --guest-os-features="FEATURES,..." \
    [--storage-location=LOCATION]

Dabei gilt:

  • IMAGE_NAME: der Name für das neue Image
  • SOURCE_IMAGE: ein Image, auf dem das neue Image basieren soll
  • IMAGE_PROJECT (optional): das Projekt, das das Quell-Image enthält

    Verwenden Sie diesen Parameter, um ein Image aus einem anderen Projekt zu kopieren.

  • FEATURES: Gastbetriebssystem-Tags zum Aktivieren von Features für VMs, die Sie aus Images erstellen

    Wenn Sie mehrere Werte hinzufügen möchten, trennen Sie die Werte durch Kommas. Legen Sie einen oder mehrere der folgenden Werte fest:

    • VIRTIO_SCSI_MULTIQUEUE. Auf lokalen SSD-Geräten als Alternative zu NVMe verwenden. Weitere Informationen zu Images, die SCSI unterstützen, finden Sie unter Schnittstelle auswählen.

      Sie können für Linux-Images Multi-Queue-SCSI auf lokalen SSD-Geräten bei Images mit Kernel-Versionen ab 3.17 aktivieren. Sie können für Windows-Images Multi-Queue-SCSI auf lokalen SSD-Geräten bei Images mit Compute Engine-Windows-Treibern der Version 1.2 aktivieren.

    • WINDOWS. Benutzerdefinierte Windows Server-Boot-Images als Windows-Images taggen.
    • MULTI_IP_SUBNET. Schnittstellen mit einer anderen Netzmaske als /32 konfigurieren. Weitere Informationen zu mehreren Netzwerkschnittstellen und ihrer Funktionsweise finden Sie unter Übersicht über mehrere Netzwerkschnittstellen und Beispiele.
    • UEFI_COMPATIBLE. Mit UEFI-Firmware und den folgenden Shielded VM-Features booten:
    • SECURE_BOOT. Digitale Signatur aller Startkomponenten prüfen, damit auf der VM nur authentische Software ausgeführt wird.
    • GVNIC. Höhere Netzwerkbandbreiten von bis zu 50 Gbit/s bis 100 Gbit/s unterstützen. Weitere Informationen finden Sie unter Google Virtual NIC verwenden.
    • SEV_CAPABLE: Verwendet, wenn Sie eine Confidential VM auf der CPU-Plattform AMD SEV (Secure Encrypted Virtualization) erstellen. Weitere Informationen finden Sie unter Neue Confidential VM-Instanz erstellen.
    • SUSPEND_RESUME_COMPATIBLE. Anhalten und Fortsetzen auf einer VM unterstützen. Weitere Informationen finden Sie unter Betriebssystemkompatibilität.
  • LOCATION (optional): Region oder Multiregion, in der das Image gespeichert werden soll

    Geben Sie beispielsweise us an, um das Image in der Multiregion us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.

API

Verwenden Sie die Methode images().insert mit dem Flag guestOsFeatures, um ein neues benutzerdefiniertes Image aus einem vorhandenen benutzerdefinierten Image zu erstellen.


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

{
 "name": "IMAGE_NAME",
 "sourceImage": "(projects/IMAGE_PROJECT)/global/images/SOURCE_IMAGE",
 ("storageLocations": "LOCATION",)
 "guestOsFeatures": [
  {
   "type": "FEATURES"
  }
 ]
}

Dabei gilt:

  • PROJECT_ID: ID des Projekts, in dem das neue Image erstellt werden soll
  • IMAGE_NAME ist ein Name für das neue Image
  • IMAGE_PROJECT (optional): das Projekt, das das Quell-Image enthält

    Verwenden Sie diesen Parameter, um ein Image aus einem anderen Projekt zu kopieren.

  • SOURCE_IMAGE: Image, auf dem das neue Image basieren soll.

  • LOCATION (optional): Region oder Multiregion, in der das Image gespeichert werden soll

    Geben Sie beispielsweise us an, um das Image in der Multiregion us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.

  • FEATURES: Gastbetriebssystem-Tags zum Aktivieren von Features für VMs, die Sie aus Images erstellen

    Wenn Sie mehrere Werte hinzufügen möchten, trennen Sie die Werte durch Kommas. Legen Sie einen oder mehrere der folgenden Werte fest:

    • VIRTIO_SCSI_MULTIQUEUE. Auf lokalen SSD-Geräten als Alternative zu NVMe verwenden. Weitere Informationen zu Images, die SCSI unterstützen, finden Sie unter Schnittstelle auswählen.

      Sie können für Linux-Images Multi-Queue-SCSI auf lokalen SSD-Geräten bei Images mit Kernel-Versionen ab 3.17 aktivieren. Sie können für Windows-Images Multi-Queue-SCSI auf lokalen SSD-Geräten bei Images mit Compute Engine-Windows-Treibern der Version 1.2 aktivieren.

    • WINDOWS. Benutzerdefinierte Windows Server-Boot-Images als Windows-Images taggen.
    • MULTI_IP_SUBNET. Schnittstellen mit einer anderen Netzmaske als /32 konfigurieren. Weitere Informationen zu mehreren Netzwerkschnittstellen und ihrer Funktionsweise finden Sie unter Übersicht über mehrere Netzwerkschnittstellen und Beispiele.
    • UEFI_COMPATIBLE. Mit UEFI-Firmware und den folgenden Shielded VM-Features booten:
    • SECURE_BOOT. Digitale Signatur aller Startkomponenten prüfen, damit auf der VM nur authentische Software ausgeführt wird.
    • GVNIC. Höhere Netzwerkbandbreiten von bis zu 50 Gbit/s bis 100 Gbit/s unterstützen. Weitere Informationen finden Sie unter Google Virtual NIC verwenden.
    • SEV_CAPABLE: Verwendet, wenn Sie eine Confidential VM auf der CPU-Plattform AMD SEV (Secure Encrypted Virtualization) erstellen. Weitere Informationen finden Sie unter Neue Confidential VM-Instanz erstellen.
    • SUSPEND_RESUME_COMPATIBLE. Anhalten und Fortsetzen auf einer VM unterstützen. Weitere Informationen finden Sie unter Betriebssystemkompatibilität.

Nächste Schritte