Un environnement d'exécution Cloud Deploy est l'environnement dans lequel Cloud Deploy exécute ses opérations de rendu, de pré-déploiement, de déploiement, de validation et de post-déploiement. L'environnement d'exécution comprend les éléments suivants :
Le pool de nœuds de calcul Cloud Build (par défaut ou privé) dans lequel Cloud Deploy exécute les opérations de rendu, de pré-déploiement, de déploiement, de validation et de post-déploiement
Le compte de service (par défaut ou autre) qui appelle Cloud Deploy pour effectuer ces actions
L'emplacement de stockage (par défaut ou autre) pour les fichiers manifestes rendus dans Cloud Storage
Le délai avant expiration de Cloud Build pour les opérations (par défaut ou personnalisé)
Ce document décrit l'environnement d'exécution par défaut, les comptes de service et le stockage pour Cloud Deploy, et indique pourquoi et comment vous pouvez changer ces valeurs par défaut.
Valeurs par défaut
Voici les valeurs par défaut que Cloud Deploy utilise pour s'exécuter, pour exécuter le rendu et le déploiement et pour stocker des éléments tels que les fichiers manifestes rendus :
Pool de nœuds de calcul par défaut
Par défaut, Cloud Deploy s'exécute dans le pool de nœuds de calcul Cloud Build par défaut. Toutefois, vous pouvez configurer Cloud Deploy pour qu'il utilise un pool de nœuds de calcul privé Cloud Build .
Pour en savoir plus sur les pools de nœuds de calcul, consultez la présentation des pools par défaut et des pools privés de Cloud Build .
Compte de service d'exécution par défaut
Par défaut, Cloud Deploy utilise le compte de service Compute Engine par défaut.
Emplacement de stockage de Cloud Deploy par défaut
Cette valeur correspond au bucket Cloud Storage dans lequel Cloud Deploy stocke vos fichiers manifestes rendus. Par défaut, Cloud Deploy crée un bucket Cloud Storage dans la même région que les ressources Cloud Deploy, au format suivant :
<location>.deploy-artifacts.<project ID>.appspot.comDélai avant expiration de Cloud Build par défaut
Par défaut, Cloud Build dispose d'un délai avant expiration d'une heure pour les opérations qu'il effectue pour Cloud Deploy. Vous pouvez modifier ce délai dans la spécification de l'environnement d'exécution dans la configuration cible.
Niveau de détail par défaut pour Skaffold, gcloud CLI et kubectl
Par défaut, les niveaux de journalisation de ces outils sont définis sur leurs valeurs par défaut respectives, généralement
warnou l'équivalent. Vous pouvez remplacer cette valeur pardebugou l'équivalent.
Les sections suivantes décrivent les circonstances dans lesquelles vous pouvez modifier l'une de ces valeurs et fournissent des liens vers les instructions correspondantes.
À propos des pools de nœuds de calcul Cloud Build
L'environnement d'exécution Cloud Deploy peut utiliser l'un des éléments suivants :
Le pool par défaut Cloud Build
Le pool de nœuds de calcul par défaut est un environnement sécurisé et hébergé avec accès à l'Internet public. Les opérations de rendu, de déploiement, de pré-déploiement, de post-déploiement et de validation sont exécutées dans ce pool, isolées des autres charges de travail.
Un pool privé
Les pools de nœuds de calcul privés sont des pools privés et dédiés qui peuvent être personnalisés davantage que le pool de nœuds de calcul par défaut. Cette personnalisation peut inclure la possibilité d'accéder aux ressources d'un réseau privé. Comme le pool de nœuds de calcul par défaut, les pools de nœuds de calcul privés sont hébergés et entièrement gérés par Cloud Build. Ces pools peuvent être mis à l'échelle ou réduits à zéro, sans infrastructure à configurer, à mettre à niveau ni à mettre à l'échelle.
La présentation des pools privés Cloud Build décrit plus en détail les pools de nœuds de calcul par défaut et les pools de nœuds de calcul privés, y compris un tableau comparant leurs fonctionnalités.
Modifier l'environnement d'exécution Cloud Deploy
Vous pouvez modifier l'environnement d'exécution Cloud Deploy dans les cas suivants :
Vous souhaitez effectuer un déploiement sur un cluster Google Kubernetes Engine privé.
Vous souhaitez que les opérations de rendu, de déploiement, de pré-déploiement, de post-déploiement ou de validation, ou une combinaison des cinq, soient effectuées dans un environnement isolé des autres organisations.
Vous souhaitez que ces opérations soient effectuées dans un environnement qui n'est pas connecté à l'Internet public.
Vous souhaitez des environnements distincts pour le rendu et le déploiement.
Vous souhaitez utiliser un compte de service dédié avec des autorisations plus spécifiques à votre utilisation que celles disponibles dans le compte de service par défaut.
Vous souhaitez stocker les fichiers manifestes rendus dans un emplacement autre que le bucket Cloud Storage par défaut.
La configuration des trois parties de l'environnement d'exécution (pool de nœuds de calcul, compte de service et stockage) est effectuée par cible, dans la configuration YAML de chaque cible.
Passer du pool par défaut à un pool privé
Vous configurez les pools de nœuds de calcul par cible,
de sorte que le pool soit utilisé pour RENDER, DEPLOY, PREDEPLOY, POSTDEPLOY, ou
VERIFY (ou une combinaison des cinq) uniquement pour cette cible.
Pour utiliser le pool de nœuds de calcul par défaut pour les opérations de rendu et de déploiement, vous n'avez rien à faire.
Voici un exemple de configuration cible qui spécifie un pool de nœuds de calcul privé pour DEPLOY et le pool de nœuds de calcul par défaut pour RENDER, PREDEPLOY,
POSTDEPLOY et VERIFY :
executionConfigs:
- usages:
- DEPLOY
privatePool:
workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
- usages:
- RENDER
- PREDEPLOY
- VERIFY
- POSTDEPLOY
Passer du compte de service d'exécution par défaut à un compte personnalisé
Comme pour le pool de nœuds de calcul, vous pouvez spécifier un autre compte de service à utiliser pour le rendu ou le déploiement (ou les deux) par cible. Pour ce faire, ajoutez la ligne suivante à la configuration cible, après l'élément workerPool :
serviceAccount: "[name]@[project_name].iam.gserviceaccount.com"
Le compte de service spécifié doit inclure le rôle clouddeploy.jobRunner, comme
décrit dans le document Comptes de service Cloud Deploy.
Pour en savoir plus sur cette configuration, consultez la section Définitions de cible.
Modifier l'emplacement de stockage
Pour modifier le bucket de stockage par défaut de Cloud Deploy, ajoutez la
ligne suivante à la définition de la cible
dans la section workerPool :
artifactStorage: "gs://[bucket_name]/[dir]"
Cette configuration modifie l'emplacement de stockage des fichiers manifestes rendus, mais n'affecte pas l'emplacement de stockage de la source de rendu.
Modifier le niveau de journalisation pour Skaffold, gcloud CLI et kubectl
Pour modifier le niveau de journalisation de Skaffold, de gcloud CLI et de kubectl, en passant de leurs valeurs par défaut respectives à debug (ou l'équivalent), définissez verbose sur true dans les configurations d'exécution. Exemple :
executionConfigs:
- usages:
- [RENDER | PREDEPLOY| DEPLOY | VERIFY | POSTDEPLOY]
workerPool:
serviceAccount:
artifactStorage:
executionTimeout:
verbose: true
Utiliser Cloud Deploy dans un périmètre VPC Service Controls
Cloud Deploy est compatible avec VPC Service Controls.
Vous pouvez suivre le guide de démarrage rapide de VPC Service Controls pour configurer un périmètre de service.
Limites
Vous devez utiliser un pool de nœuds de calcul privé Cloud Build pour l'environnement d'exécution de la cible, et non le pool de nœuds de calcul par défaut.
Le projet contenant le pool de nœuds de calcul et celui contenant vos ressources Cloud Deploy doivent rester dans le même périmètre de sécurité VPC Service Controls.
Un cluster GKE vers lequel vous déployez dans le périmètre VPC Service Controls doit être un cluster privé.
Pour configurer un pool privé pour un cluster privé, consultez ce tutoriel.
Étape suivante
Découvrez la configuration cible de Cloud Deploy.
Découvrez les pools privés Cloud Build.
Découvrez comment Cloud Deploy utilise les comptes de service.
Accédez aux clusters GKE privés avec les pools privés Cloud Build.