Utiliser des paramètres de déploiement
Cette page vous explique comment utiliser Cloud Deploy pour déployer un exemple d'application sur deux cibles en même temps (un déploiement parallèle), tout en transmettant une valeur de paramètre différente à chaque définition de service ou fichier manifeste rendu, à l'aide de trois méthodes différentes.
Dans ce guide de démarrage rapide, vous allez effectuer les opérations suivantes :
Créez deux clusters GKE ou deux services Cloud Run.
Vous pouvez également utiliser des clusters GKE associés, mais ce guide de démarrage rapide n'utilise que GKE et Cloud Run.
Créez une configuration Skaffold et un fichier manifeste Kubernetes ou une définition de service Cloud Run.
Le fichier manifeste ou la définition de service seront identiques pour les deux cibles enfants, mais au moment du déploiement, le fichier manifeste ou la définition de service rendus pour chaque cible enfant auront des valeurs différentes pour les paramètres spécifiques configurés dans ce guide de démarrage rapide.
Définissez votre pipeline de diffusion Cloud Deploy et vos cibles de déploiement.
Ce pipeline comportera une cible multicible faisant référence à deux cibles enfants pour diffuser votre application dans les deux clusters ou les deux services.
Vous pouvez définir les paramètres de déploiement à trois endroits différents :
- Progression dans le pipeline
- Sur les cibles enfants
- Sur la ligne de commande, lors de la création de la version
Instancier votre pipeline de diffusion en créant une version qui est automatiquement déployée sur les deux cibles en parallèle.
Affichez le déploiement du contrôleur et les déploiements enfants dans la console Google Cloud .
Avant de commencer
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
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.-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
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.-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init - Assurez-vous que le compte de service Compute Engine par défaut dispose des autorisations suffisantes.
Le compte de service dispose peut-être déjà des autorisations nécessaires. Ces étapes concernent les projets qui désactivent les attributions automatiques de rôles pour les comptes de service par défaut.
- Commencez par ajouter le rôle
clouddeploy.jobRunner: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" - Ajoutez le rôle de développeur pour votre environnement d'exécution spécifique.
- Pour GKE :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/container.developer" - Pour Cloud Run :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/run.developer" -
Ajoutez le rôle
iam.serviceAccountUser, qui inclut l'autorisationactAspour le déploiement dans l'environnement d'exécution :gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/iam.serviceAccountUser" \ --project=PROJECT_ID
- Commencez par ajouter le rôle
Si la CLI est déjà installée, assurez-vous d'exécuter la dernière version :
gcloud components update
Créer vos environnements d'exécution
Si vous déployez sur Cloud Run, vous pouvez ignorer cette commande.
Pour GKE, créez deux clusters : deploy-params-cluster-prod1 et deploy-params-cluster-prod2, avec les paramètres par défaut. Les points de terminaison de l'API Kubernetes des clusters doivent être accessibles sur le réseau Internet public.
Les clusters GKE sont accessibles en externe par défaut.
gcloud container clusters create-auto deploy-params-cluster-prod1 \
--project=PROJECT_ID \
--region=us-central1 \
&& gcloud container clusters create-auto deploy-params-cluster-prod2 \
--project=PROJECT_ID \
--region=us-west1