Canary-Deployment einer Anwendung für ein Ziel
In dieser Kurzanleitung erfahren Sie, wie Sie mit Cloud Deploy ein Beispielanwendungs-Image in einer Canary-Bereitstellung in Google Kubernetes Engine oder Cloud Run bereitstellen. Sie können auch eine Canary-Bereitstellung für angehängte GKE-Cluster ausführen. In diesem Schnellstart werden jedoch nur GKE und Cloud Run gezeigt.
Bei einem Canary-Deployment wird der Traffic zwischen einer bereits bereitgestellten Version der Anwendung und der neuen Version aufgeteilt. In Cloud Run wird der Traffic entsprechend den Prozentsätzen aufgeteilt, die Sie in der Bereitstellungspipeline konfigurieren. GKE stellt die neue Version für einen Teil der Pods bereit. Bei diesem Schnellstart wird zuerst zu 50% und dann zu 100 % bereitgestellt.
In dieser Kurzanleitung gibt es nur ein Ziel (prod). Daher erstellen wir nur einen GKE-Cluster oder einen Cloud Run-Dienst zum Ausführen Ihrer Anwendung.
Dieser Schnellstart erläutert folgende Schritte:
Erstellen Sie einen GKE-Cluster oder definieren Sie einen Cloud Run-Dienst.
Sie können auch Canary-Bereitstellungen in angehängten GKE-Clustern durchführen. In dieser Kurzanleitung werden jedoch nur GKE und Cloud Run verwendet.
Erstellen Sie eine Skaffold-Konfiguration und ein Kubernetes-Manifest, um das (vordefinierte) Container-Image anzugeben.
Definieren Sie Ihre Cloud Deploy-Bereitstellungspipeline und das Bereitstellungsziel.
Rufen Sie Ihre Bereitstellungspipeline auf, indem Sie einen Release erstellen, der automatisch für ein Ziel bereitgestellt wird.
Bei dieser ersten Version wird die Canary-Phase übersprungen.
Sehen Sie sich die Bereitstellungspipeline und das Release in der Google Cloud -Konsole an.
Erstellen Sie einen zweiten Release und führen Sie diesmal die Canary-Phase aus, um die Anwendung für 50 % der Nutzer bereitzustellen.
Stufen Sie den Release auf 100 % hoch, um ihn bereitzustellen.
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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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 -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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 - Prüfen Sie, ob das Compute Engine-Standarddienstkonto die erforderlichen Berechtigungen hat.
Das Dienstkonto hat möglicherweise bereits die erforderlichen Berechtigungen. Diese Schritte gelten für Projekte, die automatische Rollenzuweisungen für Standarddienstkonten deaktivieren.
- Fügen Sie zuerst die Rolle
clouddeploy.jobRunnerhinzu:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/clouddeploy.jobRunner" - Fügen Sie die Entwicklerrolle für Ihre spezifische Laufzeit hinzu.
- Für GKE und GKE mit Gateway API:
- Fügen Sie zuerst die Rolle
Wenn Sie die CLI bereits installiert haben, prüfen Sie, ob Sie die aktuelle Version verwenden:
gcloud components update