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

Vorbereitung

Image-Version in einer Image-Familie festlegen

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