In diesem Dokument werden die Best Practices für die Verwendung von Image-Familien in Compute Engine erläutert.
Hinweis
-
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. Wenn Sie
Code oder Beispiele aus einer lokalen Entwicklungsumgebung ausführen möchten, können Sie sich bei
Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:
Wählen Sie den Tab für die geplante Verwendung der Beispiele auf dieser Seite aus:
gcloud
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
- Legen Sie eine Standardregion und -zone fest.
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.
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 Google Cloud Authentifizierungsdokumentation unter Für die Verwendung von REST authentifizieren.
Öffentliche Image-Familien
Compute Engine stellt Image-Familien bereit, mit denen Sie sicherstellen können, dass Ihre Automatisierungssysteme auf die neuesten Images verweisen.
Als Administrator können Sie eine Gruppe von Images als Image-Familie zusammenfassen. So müssen die Nutzer der Images nur auf den Namen der Image-Familie statt auf einen genauen Image-Namen achten. Da Image-Namen eindeutig sein müssen, erstellen Image-Build-Pipelines oft Image-Namen mit darin codierten Informationen. So wird beispielsweise der Anwendungsname, das Datum und die Version angegeben: my-application-v3-20210101.
In Automatisierungstools können Sie auf den Namen der Image-Familie verweisen, anstatt den Image-Namen in regelmäßigen Abständen aktualisieren zu müssen. Durch die Nutzung von Image-Familien können Sie immer auf das neueste Image in der Familie zugreifen, z. B. my-application.
Öffentliche Images werden in Image-Familien gruppiert. Eine öffentliche Image-Familie verweist immer auf die neueste Version eines Images, das in jeder Zone verfügbar ist. Wenn neue Images global veröffentlicht werden, ist deren anfängliche Verfügbarkeit in Image-Familien zonenabhängig. Dies verbessert die zonale Fehlertoleranz für Ihre Workflows bei Google-Image-Updates.
Während des Image-Rollouts kann die neueste Version eines Images in einer Image-Familie in verschiedenen Zonen abweichen. Beispielsweise verweist die
debian-12 Image-Familie im
debian-cloud Projekt immer auf das neueste Debian 12-Image, aber das
neueste Debian 12-Image in den Zonen us-central1-a und southamerica-east1-b
kann unterschiedlich sein.
Wenn Sie VMs aus Image-Familien mit der Google Cloud CLI erstellen, verwendet Compute Engine für Ihre Anfrage das neueste Image, das in der Zone Ihrer VM verfügbar ist. Wenn Sie VMs mit der Google Cloud Console erstellen, zeigt Compute Engine
nur die in Ihrer ausgewählten Zone verfügbaren öffentlichen Images an. Wenn Sie VMs mit dem neuesten global verfügbaren Image erstellen möchten, verwenden Sie den Befehl instances create der gcloud CLI und geben Sie --image-family-scope=global an.
Neueste verfügbare Image-Version anzeigen lassen
Sie können das neueste global verfügbare Image in einer Image-Familie oder das neueste Image anzeigen lassen, das in einer bestimmten Zone verfügbar ist.
Global
Mit einer der folgenden Methoden können Sie sich das neueste verfügbare Image in einer Image-Familie anzeigen lassen:
gcloud
Führen Sie den Befehl gcloud compute images describe-from-family aus:
gcloud compute images describe-from-family IMAGE_FAMILY_NAME \ --project=IMAGE_PROJECT
Dabei gilt:
IMAGE_FAMILY_NAMEist der Name der Image-Familie, nach der Sie suchen möchten. Eine vollständige Liste der Image-Familiennamen finden Sie unter Details zu Betriebssystemen.IMAGE_PROJECTist der Name des Image-Projekts. Eine vollständige Liste der Image-Projektnamen finden Sie unter Details zu Betriebssystemen.
REST
Stellen Sie eine GET Anfrage an die
images.getFromFamily Methode:
GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME
Dabei gilt:
IMAGE_PROJECTist der Name des Image-Projekts. Eine vollständige Liste der Image-Projektnamen finden Sie unter Details zu Betriebssystemen.IMAGE_FAMILY_NAMEist der Name der Image-Familie, nach der Sie suchen möchten. Eine vollständige Liste der Image-Familiennamen finden Sie unter Details zu Betriebssystemen.
Pro Zone
Mit einer der folgenden Methoden können Sie sich das neueste verfügbare Image in einer Image-Familie für eine bestimmte Zone anzeigen lassen:
gcloud
Führen Sie den Befehl gcloud compute images describe-from-family mit dem Flag --zone aus:
gcloud compute images describe-from-family IMAGE_FAMILY_NAME \ --project=IMAGE_PROJECT \ --zone=ZONE
Dabei gilt:
IMAGE_FAMILY_NAMEist der Name der Image-Familie, nach der Sie suchen möchten. Eine vollständige Liste der Image-Familiennamen finden Sie unter Details zu Betriebssystemen.IMAGE_PROJECTist der Name des Image-Projekts. Eine vollständige Liste der Image-Projektnamen finden Sie unter Details zu Betriebssystemen.ZONEist die Zone, die Sie abfragen möchten.
REST
Stellen Sie eine GET Anfrage an die
imageFamilyViews Methode:
GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/zones/ZONE/imageFamilyViews/IMAGE_FAMILY_NAME
Dabei gilt:
IMAGE_PROJECTist der Name des Image-Projekts. Eine vollständige Liste der Image-Projektnamen finden Sie unter Details zu Betriebssystemen.ZONEist die Zone, die Sie abfragen möchten.IMAGE_FAMILY_NAMEist der Name der Image-Familie, nach der Sie suchen möchten. Eine vollständige Liste der Image-Familiennamen finden Sie unter Details zu Betriebssystemen.
Familien von benutzerdefinierten Images
Sie können benutzerdefinierte Image-Familien für Ihre benutzerdefinierten Images erstellen. Die Image-Familie verweist auf das neueste Image, mit dem Sie die Image-Familie erstellt haben. Wenn Sie eine Image-Familie auf eine frühere Image-Version zurücksetzen möchten, können Sie das neueste Image in dieser Familie verwerfen, sofern das vorherige Image nicht verworfen wurde. Weitere Informationen finden Sie unter Image-Versionen in einer Image-Familie festlegen.
Wenn Sie ein Image mit einer Image-Familie oder (wenn keine vorhanden ist) die eigentliche Image-Familie erstellen möchten, müssen Sie dem Image-Erstellungsschritt ein zusätzliches Flag --family hinzufügen. Beispiel:
gcloud compute images create my-application-v3-20210101 \
--source-disk my-application-disk-1 \
--source-disk-zone us-central1-f \
--family my-application
Nachdem Sie diesen Befehl ausgeführt haben, verweisen alle Aufrufe zum Ausführen einer auf dem Image
my-application beruhenden Instanz auf das neu erstellte Image, my-application-v3-20210101.
Beachten Sie bei der Auswahl eines Namens für Ihre Image-Familie die Namenskonventionen.
Image-Familien verwenden
Sie können mit Image-Familien zwar auf das neueste Image verweisen, das neueste Image kann aber eine Inkompatibilität mit Ihrer Anwendung verursachen. Das wiederum führt zu Problemen in der Produktionsumgebung, wenn das Image nicht geprüft wird. Wenn Sie die Vorteile von Image-Familien optimal nutzen und gleichzeitig die Risiken reduzieren möchten, sollten Sie das letzte referenzierte Image aus der Image-Familie testen, bevor Sie es in Ihrer Produktionsumgebung verwenden.
Gehen Sie dazu so vor:
- Richten Sie eine von Ihrer Produktionsumgebung getrennte Testumgebung ein.
- Führen Sie in der Testumgebung die folgenden Schritte aus:
- Erstellen Sie eine benutzerdefinierte Image-Familie aus der Quell-Image-Familie.
- Prüfen Sie die Stabilität des neuen Images in der benutzerdefinierten Image-Familie auf Basis Ihrer Arbeitslasten.
- Nach der Prüfung verschieben Sie diese benutzerdefinierte Image-Familie in eine Produktionsumgebung.
Der Prozess könnte beispielsweise so aussehen:
Erstellen Sie in Ihrem Testprojekt ein Image aus der Quell-Image-Familie. Diese neue Quell-Image-Familie muss auch eine eigene benutzerdefinierte Image-Familie haben, auf die in der Testumgebung verwiesen werden kann. Führen Sie den folgenden Befehl aus, um das Image mit einer benutzerdefinierten Image-Familie zu erstellen:
gcloud compute images create test-image-name \ --source-image-project source-project \ --source-image-family source-image-family \ --project test-project \ --family test-image-family
Dabei gilt:
test-image-nameist der Name des Test-Images.source-projectist das Projekt, zu dem die Quell-Image-Familie gehört.source-image-familyist der Name der Quell-Image-Familie.test-projectist der Name des Testprojekts, dem Sie die Image-Familie hinzufügen möchten.test-image-familyist der Name der Test-Image-Familie.
Erstellen Sie mit der benutzerdefinierten Image-Familie
test-image-familyeine VM, um Ihre Arbeitslast zu testen. Führen Sie den folgenden Befehl aus, um die VM zu erstellen:gcloud compute instances create test-instance-name \ --image-family your-test-image-family \ --project test-project
Dabei gilt:
test-instance-nameist der Name der Testinstanz.test-image-familyist der Name der Test-Image-Familie.test-projectist der Name des Testprojekts.
Sobald Sie geprüft haben, ob dieses Image für Ihre Arbeitslast geeignet ist, kopieren Sie das Image in Ihre Produktionsumgebung.
gcloud compute images create prod-image-name \ --source-image-family test-image-family \ --source-image-project test-project \ --project prod-project \ --family prod-image-family
Dabei gilt:
prod-image-nameist der Name Ihres Produktions-Images.test-image-familyist der Name der Test-Image-Familie.test-projectist das Projekt, zu dem die Test-Image-Familie gehört.prod-projectist der Name Ihres Projekts in der Produktionsumgebung.prod-image-familyist der Name der Image-Familie, die Sie in Ihrer Produktionsumgebung verwenden möchten.