In diesem Leitfaden wird beschrieben, wie Sie mit Cloud Build und Terraform Blau/Grün-Bereitstellungen ohne Ausfallzeiten in verwalteten Compute Engine-Instanzgruppen (Managed Instance Groups, MIGs) durchführen.
Mit Cloud Build können Sie eine Vielzahl von Entwicklerprozessen automatisieren, darunter das Erstellen und Bereitstellen von Anwendungen in verschiedenen Google Cloud Laufzeiten wie Compute Engine, Google Kubernetes Engine, GKE Enterprise und Cloud Run-Funktionen.
Mit Compute Engine-MIGs können Sie Anwendungen auf mehreren identischen VMs ausführen. Sie können Ihre Arbeitslasten skalierbar und hochverfügbar machen, indem Sie automatisierte MIG-Dienste nutzen, darunter Autoscaling, automatische Reparatur, regionale Bereitstellung (in mehreren Zonen) und automatische Aktualisierung. Mit dem Modell für die kontinuierliche Blau/Grün-Bereitstellung lernen Sie, wie Sie den Nutzer-Traffic schrittweise von einer MIG (blau) zu einer anderen MIG (grün) übertragen, die beide in der Produktion ausgeführt werden.
Hinweis
Aktivieren Sie die APIs für Cloud Build, Cloud Run, Artifact Registry und Resource Manager, falls sie noch nicht aktiviert sind.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen
Halten Sie den Quellcode Ihrer Anwendung bereit. Ihr Quellcode muss in einem Repository wie GitHub oder Bitbucket gespeichert sein.
Zum Ausführen der
gcloud-Befehle auf dieser Seite müssen Sie die Google Cloud CLI installieren.
Erforderliche IAM-Berechtigungen (Identity and Access Management)
-
Rufen Sie in der Google Cloud Console die Seite settings Cloud Build Berechtigungen auf:
Legen Sie für Ihr angegebenes Cloud Build-Dienstkonto oder Standard-Cloud Build-Dienstkonto den Status der folgenden Rollen auf Aktiviert fest:
- Compute-Instanzadministrator v1 (
roles/compute.instanceAdmin): Ermöglicht Cloud Build, neue Instanzen in Compute Engine bereitzustellen.- Wählen Sie im Bereich „Rolle ‚Dienstkontonutzer‘ zuweisen“ ein Dienstkonto aus, dessen Identität angenommen werden soll, und klicken Sie dann auf Berechtigung erteilen.
- Storage-Administrator (
roles/storage.admin): Ermöglicht das Lesen und Schreiben in Cloud Storage. - Artifact Registry-Autor (
roles/artifactregistry.writer): Ermöglicht das Abrufen von Bildern aus und das Schreiben in Artifact Registry. - Logs Writer (
roles/logging.logWriter): Ermöglicht das Schreiben von Logeinträgen in Cloud Logging. - Cloud Build-Bearbeiter (
roles/cloudbuild.builds.editor): Ermöglicht Ihrem Dienstkonto, Builds auszuführen.
- Compute-Instanzadministrator v1 (
Designübersicht
Das folgende Diagramm zeigt das Blau/Grün-Bereitstellungsmodell, das vom in diesem Dokument beschriebenen Codebeispiel verwendet wird:
Auf übergeordneter Ebene umfasst dieses Modell die folgenden Komponenten:
- Zwei Compute Engine-VM-Pools: „Blau“ und „Grün“.
- Drei externe HTTP(S)-Load-Balancer:
- Ein Blue-Green-Load-Balancer, der Traffic von Endnutzern entweder an den blauen oder den grünen Pool von VM-Instanzen weiterleitet.
- Ein blauer Load Balancer, der Traffic von QA-Engineers und Entwicklern an den blauen VM-Instanzpool weiterleitet.
- Ein grüner Load Balancer, der Traffic von QA-Engineern und Entwicklern an den grünen Instanzpool weiterleitet.
- Zwei Nutzergruppen:
- Endnutzer, die Zugriff auf den Blau/Grün-Load-Balancer haben, der sie entweder zum blauen oder zum grünen Instanzpool weiterleitet.
- QA-Engineers und Entwickler, die für Entwicklungs- und Testzwecke Zugriff auf beide Gruppen benötigen. Sie können sowohl auf den blauen als auch auf den grünen Load-Balancer zugreifen, wodurch sie an den blauen bzw. den grünen Instanzpool weitergeleitet werden.
Die VM-Pools „Blau“ und „Grün“ werden als Compute Engine-MIGs implementiert und externe IP-Adressen werden über externe HTTP(S)-Load-Balancer an die VMs in der MIG weitergeleitet. Im Codebeispiel in diesem Dokument wird Terraform verwendet, um diese Infrastruktur zu konfigurieren.
Das folgende Diagramm veranschaulicht die Entwicklervorgänge, die bei der Bereitstellung stattfinden:
Im vorherigen Diagramm stellen die roten Pfeile den Bootstrapping-Ablauf dar, der bei der erstmaligen Einrichtung der Bereitstellungsinfrastruktur stattfindet. Die blauen Pfeile stellen den GitOps-Ablauf dar, der bei jeder Bereitstellung stattfindet.
Um diese Infrastruktur einzurichten, führen Sie ein Setupscript aus, das den Bootstrap-Prozess startet und die Komponenten für den GitOps-Ablauf einrichtet.
Das Setupscript führt eine Cloud Build-Pipeline aus, die die folgenden Vorgänge ausführt:
- Erstellt ein Repository in Cloud Source Repositories mit dem Namen
copy-of-gcp-mig-simpleund kopiert den Quellcode aus dem GitHub-Beispielrepository in das Repository in Cloud Source Repositories. - Erstellt zwei Cloud Build-Trigger mit den Namen
applyunddestroy.
Der apply-Trigger ist an eine Terraform-Datei namens main.tfvars in Cloud Source Repositories angehängt. Diese Datei enthält die Terraform-Variablen, die die blauen und grünen Load Balancer darstellen.
Um die Bereitstellung einzurichten, aktualisieren Sie die Variablen in der Datei main.tfvars.
Der apply-Trigger führt eine Cloud Build-Pipeline aus, die tf_apply ausführt und die folgenden Vorgänge ausführt:
- Erstellt zwei Compute Engine-MIGs (eine für „green“ und eine für „blue“), vier Compute Engine-VM-Instanzen (zwei für die „green“-MIG und zwei für die „blue“-MIG), die drei Load Balancer („blue“, „green“ und „splitter“) und drei öffentliche IP-Adressen.
- Gibt die IP-Adressen aus, mit denen Sie die bereitgestellten Anwendungen in den blauen und grünen Instanzen aufrufen können.
Der „destroy“-Trigger wird manuell ausgelöst, um alle Ressourcen zu löschen, die vom „apply“-Trigger erstellt wurden.
Ziele
Mit Cloud Build und Terraform können Sie externe HTTP(S)-Load-Balancer mit Compute Engine-VM-Instanzgruppen-Back-Ends einrichten.
Führen Sie Blau/Grün-Bereitstellungen auf den VM-Instanzen durch.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
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.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Cloud Build API, die Cloud Run API, die Artifact Registry API und die Resource Manager API, falls sie noch nicht aktiviert sind:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable cloudbuild.googleapis.com
run.googleapis.com artifactregistry.googleapis.com cloudresourcemanager.googleapis.com -
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.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Cloud Build API, die Cloud Run API, die Artifact Registry API und die Resource Manager API, falls sie noch nicht aktiviert sind:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable cloudbuild.googleapis.com
run.googleapis.com artifactregistry.googleapis.com cloudresourcemanager.googleapis.com
Testen
Führen Sie das Setupscript aus dem Google-Codebeispiel-Repository aus:
bash <(curl https://raw.githubusercontent.com/GoogleCloudPlatform/cloud-build-samples/main/mig-blue-green/setup.sh)Wenn das Setupscript Sie um die Nutzereinwilligung bittet, geben Sie yes ein.
Die Ausführung des Skripts dauert nur wenige Sekunden.
Öffnen Sie in der Google Cloud Console die Cloud Build-Seite Build-Verlauf:
Klicken Sie auf den neuesten Build.
Die Seite Build-Details wird angezeigt. Sie enthält eine Cloud Build-Pipeline mit drei Build-Schritten: Im ersten Build-Schritt wird ein Repository in Cloud Source Repositories erstellt, im zweiten Schritt werden die Inhalte des Beispiel-Repositorys in GitHub in Cloud Source Repositories geklont und im dritten Schritt werden zwei Build-Trigger hinzugefügt.
Cloud Source Repositories öffnen:
Klicken Sie in der Liste der Repositories auf
copy-of-gcp-mig-simple.Auf dem Tab Verlauf unten auf der Seite sehen Sie einen Commit mit der Beschreibung
A copy of https://github.com/GoogleCloudPlatform/cloud-build-samples.git, der von Cloud Build erstellt wurde, um ein Repository mit dem Namencopy-of-gcp-mig-simplezu erstellen.Öffnen Sie die Cloud Build-Seite Trigger:
So starten Sie die Bereitstellung:
infra/main.tfvarsErstellen Sie im Terminalfenster einen Ordner mit dem Namen
deploy-compute-engineund wechseln Sie in diesen Ordner:mkdir ~/deploy-compute-engine cd ~/deploy-compute-engineKlonen Sie das
copy-of-gcp-mig-simple-Repo:gcloud source repos clone copy-of-mig-blue-greenWechseln Sie zum geklonten Verzeichnis:
cd ./copy-of-mig-blue-greenAktualisieren Sie
infra/main.tfvars, um Blau durch Grün zu ersetzen:sed -i'' -e 's/blue/green/g' infra/main.tfvarsFügen Sie die aktualisierte Datei hinzu:
git add .Führen Sie mit der Datei ein Commit durch:
git commit -m "Promote green"Übertragen Sie die Datei per Push:
git pushWenn Sie Änderungen an
infra/main.tfvarsvornehmen, wird die Ausführung des Triggersapplyausgelöst, wodurch die Bereitstellung gestartet wird.
Cloud Source Repositories öffnen:
Klicken Sie in der Liste der Repositories auf
copy-of-gcp-mig-simple.Der Commit mit der Beschreibung
Promote greenwird unten auf der Seite auf dem Tab Verlauf angezeigt.So rufen Sie die Ausführung des
apply-Triggers auf: Öffnen Sie in der Google Cloud Console die Seite Build-Verlauf:Öffnen Sie die Seite Build-Details, indem Sie auf den ersten Build klicken.
Die Pipeline mit dem
apply-Trigger und zwei Build-Schritten wird angezeigt. Im ersten Build-Schritt wird „terraform apply“ ausgeführt, um die Compute Engine- und Load-Balancing-Ressourcen für die Bereitstellung zu erstellen. Im zweiten Build-Schritt wird die IP-Adresse ausgegeben, unter der die Anwendung ausgeführt wird.Öffnen Sie die IP-Adresse, die der grünen MIG entspricht, in einem Browser. Sie sehen einen Screenshot ähnlich dem folgenden, der die Bereitstellung zeigt:
Rufen Sie die Compute Engine-Seite Instanzgruppe auf, um die blauen und grünen Instanzgruppen zu sehen:
Öffnen Sie die Seite VM-Instanzen, um die vier VM-Instanzen zu sehen:
Öffnen Sie die Seite Externe IP-Adressen, um die drei Load Balancer zu sehen:
Es werden zwei Build-Trigger mit den Namen apply und destroy angezeigt. Der apply-Trigger ist an die Datei infra/main.tfvars im Branch main angehängt. Dieser Trigger wird jedes Mal ausgeführt, wenn die Datei aktualisiert wird. Der destroy-Trigger ist ein manueller Trigger.
Code verstehen
Der Quellcode für dieses Codebeispiel umfasst:
- Quellcode für das Einrichtungsskript.
- Quellcode für die Cloud Build-Pipelines.
- Quellcode für die Terraform-Vorlagen.
Setup script
setup.sh ist das Setupscript, das den Bootstrap-Prozess ausführt und die Komponenten für die Blau/Grün-Bereitstellung erstellt. Das Skript führt die folgenden Vorgänge aus:
- Aktiviert die APIs Cloud Build, Resource Manager, Compute Engine und Cloud Source Repositories.
- Weist dem Cloud Build-Dienstkonto in Ihrem Projekt die IAM-Rolle
roles/editorzu. Diese Rolle ist erforderlich, damit Cloud Build die erforderlichen GitOps-Komponenten für die Bereitstellung erstellen und einrichten kann. - Weist dem Cloud Build-Dienstkonto in Ihrem Projekt die IAM-Rolle
roles/source.adminzu. Diese Rolle ist für das Cloud Build-Dienstkonto erforderlich, um die Cloud Source Repositories in Ihrem Projekt zu erstellen und den Inhalt des GitHub-Beispielrepositorys in Ihre Cloud Source Repositories zu klonen. Generiert inline eine Cloud Build-Pipeline mit dem Namen
bootstrap.cloudbuild.yaml, die:- Erstellt ein neues Repository in Cloud Source Repositories.
- Kopiert den Quellcode aus dem GitHub-Beispielrepository in das neue Repository in Cloud Source Repositories.
- Erstellt die Build-Trigger „apply“ und „destroy“.
Cloud Build-Pipelines
apply.cloudbuild.yaml und destroy.cloudbuild.yaml sind die Cloud Build-Konfigurationsdateien, die das Setupscript verwendet, um die Ressourcen für den GitOps-Ablauf einzurichten. apply.cloudbuild.yaml enthält zwei Build-Schritte:
tf_apply build-Build-Schritt, der die Funktiontf_install_in_cloud_build_stepaufruft, mit der Terraform installiert wird.tf_applyzum Erstellen der im GitOps-Ablauf verwendeten Ressourcen. Die Funktionentf_install_in_cloud_build_stepundtf_applysind inbash_utils.shdefiniert und der Build-Schritt verwendet den Befehlsource, um sie aufzurufen.describe_deployment-Build-Schritt, der die Funktiondescribe_deploymentaufruft, die die IP-Adressen der Load-Balancer ausgibt.
destroy.cloudbuild.yaml ruft tf_destroy auf, wodurch alle von tf_apply erstellten Ressourcen gelöscht werden.
Die Funktionen tf_install_in_cloud_build_step, tf_apply, describe_deployment und tf_destroy sind in der Datei bash_utils.sh definiert.
In den Build-Konfigurationsdateien wird der Befehl source verwendet, um die Funktionen aufzurufen.
Der folgende Code zeigt die Funktion tf_install_in_cloud_build_step, die in bash_utils.sh definiert ist. Diese Funktion wird von den Build-Konfigurationsdateien aufgerufen, um Terraform im laufenden Betrieb zu installieren. Es wird ein Cloud Storage-Bucket erstellt, um den Terraform-Status aufzuzeichnen.
Das folgende Code-Snippet zeigt die Funktion tf_apply, die in bash_utils.sh definiert ist. Zuerst wird terraform init aufgerufen, um alle Module und benutzerdefinierten Bibliotheken zu laden. Anschließend wird terraform apply ausgeführt, um die Variablen aus der Datei main.tfvars zu laden.
Das folgende Code-Snippet zeigt die Funktion describe_deployment, die in bash_utils.sh definiert ist. Es verwendet gcloud compute addresses describe, um die IP-Adressen der Load-Balancer anhand des Namens abzurufen und auszugeben.
Das folgende Code-Snippet zeigt die Funktion tf_destroy, die in bash_utils.sh definiert ist. Darin wird terraform init aufgerufen, wodurch alle Module und benutzerdefinierten Bibliotheken geladen werden. Anschließend wird terraform destroy ausgeführt, wodurch die Terraform-Variablen entladen werden.
Terraform-Vorlagen
Alle Terraform-Konfigurationsdateien und -Variablen finden Sie im Ordner copy-of-gcp-mig-simple/infra/.
main.tf: Dies ist die Terraform-Konfigurationsdatei.main.tfvars: In dieser Datei werden die Terraform-Variablen definiert.mig/undsplitter/: Diese Ordner enthalten die Module, die die Load Balancer definieren. Der Ordnermig/enthält die Terraform-Konfigurationsdatei, in der die MIG für die blauen und grünen Load-Balancer definiert ist. Die blauen und grünen MIGs sind identisch. Sie werden daher einmal definiert und für die blauen und grünen Objekte instanziiert. Die Terraform-Konfigurationsdatei für den Splitter-Load-Balancer befindet sich im Ordnersplitter/.
Das folgende Code-Snippet zeigt den Inhalt von infra/main.tfvars. Sie enthält drei Variablen: zwei, die bestimmen, welche Anwendungsversion in den blauen und grünen Pools bereitgestellt werden soll, und eine Variable für die aktive Farbe: Blau oder Grün. Änderungen an dieser Datei lösen die Bereitstellung aus.
Das Folgende ist ein Code-Snippet aus infra/main.tf. In diesem Snippet:
- Für das Google Cloud Projekt ist eine Variable definiert.
- Google ist als Terraform-Anbieter festgelegt.
- Eine Variable ist für den Namespace definiert. Alle von Terraform erstellten Objekte haben diese Variable als Präfix, damit mehrere Versionen der Anwendung im selben Projekt bereitgestellt werden können und die Objektnamen nicht miteinander kollidieren.
- Die Variablen
MIG_VER_BLUE,MIG_VER_BLUEundMIG_ACTIVE_COLORsind die Bindungen für die Variablen in der Dateiinfra/main.tfvars.
Das folgende Code-Snippet aus infra/main.tf zeigt die Instanziierung des Splittermoduls. In diesem Modul wird die aktive Farbe verwendet, damit der Splitter-Load-Balancer weiß, in welcher verwalteten Instanzgruppe die Anwendung bereitgestellt werden soll.
Im folgenden Code-Snippet aus infra/main.tf werden zwei identische Module für blaue und grüne MIGs definiert. Es werden die Farbe, das Netzwerk und das Subnetzwerk verwendet, die im Splittermodul definiert sind.
In der Datei splitter/main.tf werden die Objekte definiert, die für die Splitter-MIG erstellt werden. Das Folgende ist ein Code-Snippet aus splitter/main.tf, das die Logik für den Wechsel zwischen dem grünen und dem blauen MIG enthält. Er wird vom Dienst google_compute_region_backend_service unterstützt, der Traffic an zwei Backend-Regionen weiterleiten kann: var.instance_group_blue oder var.instance_group_green.
Mit capacity_scaler wird festgelegt, wie viel Traffic weitergeleitet werden soll.
Mit dem folgenden Code wird 100% des Traffics an die angegebene Farbe weitergeleitet. Sie können diesen Code jedoch für die Canary-Bereitstellung aktualisieren, um den Traffic an eine Teilmenge der Nutzer weiterzuleiten.
Die Datei mig/main.tf definiert die Objekte für die MIGs „Blau“ und „Grün“. Im folgenden Code-Snippet aus dieser Datei wird die Compute Engine-Instanzvorlage definiert, die zum Erstellen der VM-Pools verwendet wird. Für diese Instanzvorlage ist das Terraform-Lebenszyklusattribut auf create_before_destroy festgelegt.
Das liegt daran, dass Sie beim Aktualisieren der Version des Pools die Vorlage nicht verwenden können, um die neue Version der Pools zu erstellen, wenn sie noch von der vorherigen Version des Pools verwendet wird. Wenn die ältere Version des Pools jedoch vor dem Erstellen der neuen Vorlage zerstört wird, gibt es einen Zeitraum, in dem die Pools nicht verfügbar sind. Um dies zu vermeiden, setzen wir den Terraform-Lebenszyklus auf create_before_destroy, sodass die neuere Version eines VM-Pools zuerst erstellt wird, bevor die ältere Version gelöscht wird.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Einzelne Ressourcen löschen
Löschen Sie die Compute Engine-Ressourcen, die vom Apply-Trigger erstellt wurden:
Öffnen Sie die Cloud Build-Seite Trigger:
Suchen Sie in der Tabelle Trigger nach der Zeile für den Trigger destroy und klicken Sie auf Ausführen. Wenn der Trigger ausgeführt wurde, werden die Ressourcen gelöscht, die durch den apply-Trigger erstellt wurden.
Löschen Sie die Ressourcen, die während des Bootstrapping erstellt wurden, indem Sie den folgenden Befehl in Ihrem Terminalfenster ausführen:
bash <(curl https://raw.githubusercontent.com/GoogleCloudPlatform/cloud-build-samples/main/mig-blue-green/teardown.sh)
Projekt löschen
Google Cloud -Projekt löschen:
gcloud projects delete PROJECT_ID