Utiliser les environnements d'exécution Google Cloud Deploy

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Un environnement d'exécution Google Cloud Deploy est l'environnement dans lequel Google Cloud Deploy exécute ses opérations de rendu, de déploiement et de vérification. L'environnement d'exécution comprend les composants suivants:

  • Pool de nœuds de calcul Cloud Build (par défaut ou privé) dans lequel Google Cloud Deploy exécute le rendu, le déploiement et la vérification des opérations

  • Compte de service (par défaut ou alternatif) qui appelle Google Cloud Deploy pour effectuer ces actions

  • Emplacement de stockage (par défaut ou alternatif) des fichiers manifestes rendus dans Cloud Storage

  • Délai avant expiration de Cloud Build pour les opérations (par défaut ou personnalisé)

Cet article décrit l'environnement d'exécution par défaut, les comptes de service et le stockage pour Google 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 Google 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, Google Cloud Deploy s'exécute dans le pool de nœuds de calcul Cloud Build par défaut. Toutefois, vous pouvez configurer Google Cloud Deploy pour utiliser 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 dans Cloud Build.

  • Compte de service d'exécution par défaut

    Par défaut, Google Cloud Deploy utilise le compte de service Compute Engine par défaut.

  • Emplacement de stockage de Google Cloud Deploy par défaut

    Cette valeur correspond au bucket Cloud Storage dans lequel Google Cloud Deploy stocke vos fichiers manifestes. Par défaut, Google Cloud Deploy crée un bucket Cloud Storage, dans la même région que les ressources Google Cloud Deploy, au format suivant:

    <location>.deploy-artifacts.<project ID>.appspot.com

  • Délai par défaut pour Cloud Build

    Par défaut, le délai avant expiration de Cloud Build est d'une heure pour les opérations qu'il effectue pour Google Cloud Deploy. Vous pouvez modifier ce délai dans la spécification de l'environnement d'exécution dans la configuration cible.

Les sections suivantes décrivent les circonstances dans lesquelles vous pouvez modifier l'une de ces valeurs, ainsi que des liens vers des instructions pour le faire.

À propos des pools de nœuds de calcul Cloud Build

L'environnement d'exécution Google Cloud Deploy peut utiliser l'une des options suivantes:

  • Pool Cloud Build par défaut

    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 d'affichage, de déploiement et de vérification sont exécutées dans ce pool et sont isolées des autres charges de travail.

  • Piscine privée

    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 évoluer à la hausse ou à la baisse, sans aucune infrastructure à configurer, mettre à niveau ou faire évoluer.

    La page Présentation des pools privés de 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.

Changer l'environnement d'exécution de Google Cloud Deploy

Vous pouvez changer l'environnement d'exécution de Google Cloud Deploy dans les cas suivants:

  • Vous souhaitez déployer votre application sur un cluster Google Kubernetes Engine privé.

  • Vous souhaitez que les opérations de rendu, de déploiement ou de vérification, ou une combinaison des trois, 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 avez besoin d'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 les autorisations disponibles dans le compte de service par défaut.

  • Vous souhaitez stocker les fichiers manifestes affichés à un autre emplacement 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 qu'ils ne soient utilisés pour RENDER, DEPLOY ou VERIFY (ou une combinaison des trois) que 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, aucune action n'est requise de votre part.

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 et VERIFY:

executionConfigs:
- usages:
  - DEPLOY
  workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
- usages:
  - RENDER
  - VERIFY

Pour en savoir plus sur la configuration de pools privés pour des cibles, consultez la documentation sur la configuration du pipeline de livraison.

Passer du compte de service d'exécution personnalisé par défaut

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 Google Cloud Deploy.

Consultez la section Définitions des cibles pour en savoir plus sur cette configuration.

Modifier l'emplacement de stockage

Pour remplacer le bucket de stockage par défaut de Google Cloud Deploy, ajoutez la ligne suivante à la définition de cible dans le bloc 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.

Déployer sur un cluster privé sur un réseau cloud privé virtuel

Vous pouvez configurer une cible à déployer sur un cluster GKE privé connecté à un réseau cloud privé virtuel:

  1. Créer un cluster privé

    Un cluster privé est un cluster de VPC natif dont les nœuds et les pods sont isolés par défaut de l'Internet public.

    Si vous prévoyez d'utiliser l'adresse IP interne de la cible du cluster privé, définissez internalIp sur true sous gke dans la configuration cible.

  2. Dans Cloud Build, créez un pool de nœuds de calcul privé que vous pouvez déployer sur ce cluster privé.

  3. Configurez l'environnement d'exécution pour utiliser ce pool privé.

    Vous devez utiliser ce pool pour RENDER. Vous pouvez également l'utiliser pour DEPLOY et pour VERIFY. Voici un exemple qui utilise RENDER et DEPLOY :

    executionConfigs:
    - usages:
      - RENDER
      - DEPLOY
      workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
    

Pour en savoir plus, consultez la page Accéder aux clusters GKE privés avec des pools privés Cloud Build.

Remarques concernant le projet et les autorisations

Il est facile de configurer une cible pour utiliser un pool de nœuds de calcul privé pouvant être déployé sur un cluster privé. Toutefois, il existe des points à noter si les ressources se trouvent dans des projets différents.

Lorsque Google Cloud Deploy et le pool de nœuds de calcul se trouvent dans des projets distincts

Pour communiquer avec un pool privé qui a accès à un VPC et qui se trouve dans un projet différent de votre cible, l'agent de service Google Cloud Deploy doit disposer d'autorisations suffisantes pour communiquer avec ce projet.

Le compte de service d'exécution a également besoin d'autorisations pour accéder au bucket Cloud Storage.

Lorsque le pool de nœuds de calcul et le cluster se trouvent dans des projets distincts

Si le cluster GKE privé se trouve dans un projet différent du pool de nœuds de calcul privé, le compte de service d'exécution nécessite des autorisations suffisantes pour communiquer avec le projet dans lequel se trouve le cluster.

Utiliser Google Cloud Deploy dans un périmètre VPC Service Controls

Google 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 Google 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.

Étapes suivantes