Ce document explique comment déployer vos applications sur des services Cloud Run.
Google Cloud Deploy vous permet de déployer vos charges de travail basées sur des conteneurs vers n'importe quel service Cloud Run. Toutes les fonctionnalités de Google Cloud Deploy sont compatibles avec les déploiements sur des cibles Cloud Run.
Ce document décrit les trois principales configurations à effectuer pour déployer sur Cloud Run:
- Créer votre configuration cible
- Créer votre configuration Skaffold
- Créer une ou plusieurs définitions de service Cloud Run
Avant de commencer
Assurez-vous que vous utilisez gcloud CLI version
401.0.0
ou ultérieure.
Créez votre configuration cible.
La cible peut être configurée dans le fichier YAML de votre pipeline de livraison ou dans un fichier distinct. Vous pouvez également configurer plusieurs cibles dans le même fichier.
Dans la définition de la cible, créez un bloc run
pour identifier l'emplacement où le service Cloud Run sera créé.
La syntaxe permettant de spécifier le service Cloud Run dans votre définition de cible est la suivante:
run:
location: projects/[project_name]/locations/[region_name]
Cet identifiant de ressource utilise les éléments suivants:
[
project_name
] est le nom du projet Google Cloud dans lequel votre service Cloud Run sera créé.Vous procéderez ainsi pour chaque cible. Nous recommandons un projet différent pour chaque service Cloud Run. Si vous souhaitez utiliser plusieurs services dans le même projet, vous devez utiliser des profils Skaffold dans votre fichier de configuration
skaffold.yaml
.[
region_name
] est la région dans laquelle le service sera créé. Vos services peuvent se trouver dans n'importe quelle région compatible avec Cloud Run.
Voici un exemple de configuration cible définissant le service Cloud Run à créer:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: dev
description: development service
run:
location: projects/my-app/locations/us-central1
Vous pouvez définir cette cible dans une définition du pipeline de livraison Google Cloud Deploy, ou séparément. Quel que soit votre choix, vous devez enregistrer la cible avant de créer la version pour déployer votre service Cloud Run.
Créer votre configuration Skaffold
Voici un exemple de fichier skaffold.yaml
pour un déploiement du service Cloud Run :
apiVersion: skaffold/v3alpha1
kind: Config
metadata:
name: cloud-run-application
manifests:
rawYaml:
- service.yaml
deploy:
cloudrun: {}
Dans ce fichier skaffold.yaml
...
manifests.rawYaml
fournit le nom des définitions de service Cloud Run.Dans cet exemple,
service.yaml
est le fichier qui définit le service Cloud Run que Skaffold déploiera.Le bloc
deploy
spécifie la manière dont vous souhaitez déployer le fichier manifeste, en particulier le projet et l'emplacement.deploy
est obligatoire.Nous vous recommandons de laisser le champ
{}
vide. Google Cloud Deploy renseigne cela lors du rendu, en fonction du projet et de l'emplacement à partir de la définition cible.Toutefois, pour le développement local, vous pouvez fournir des valeurs ici. Cependant, Google Cloud Deploy utilise toujours le projet et l'emplacement à partir de la définition cible, que les valeurs soient fournies ici ou non.
Créer vos définitions de services Cloud Run
Pour créer une définition de service Cloud Run, vous pouvez en créer une manuellement ou en copier une à partir d'un service existant. Les deux sont décrits dans cette section.
Option 1: Créer un service.yaml
Cloud Run
Le fichier service.yaml définit votre service Cloud Run. Lorsque vous créez une version, Skaffold déploie votre service à l'aide de cette définition.
Voici un exemple simplifié:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: [SERVICE_NAME]
spec:
template:
spec:
containers:
- image: [IMAGE_PATH]
Où :
[SERVICE-NAME]
est le nom du service Cloud Run.[IMAGE_PATH]
pointe vers l'image ou les images de conteneur que vous déployez avec ce service.
Option 2: Copier un service.yaml
à partir d'un service existant à l'aide de la console Google Cloud
Vous pouvez créer un service à l'aide de la console Google Cloud ou en utiliser un existant, puis y copier votre fichier service.yaml
.
Pour obtenir service.yaml
à l'aide de Google Cloud CLI:
gcloud run services describe [service_name] --format=export
Pour obtenir le service.yaml
à partir de la console Google Cloud:
Dans la console Google Cloud, accédez à la page "Services Cloud Run".
Sélectionnez le service dont vous souhaitez utiliser la définition.
Vous pouvez aussi en créer un, puis le sélectionner. Lorsque vous sélectionnez le service, la page "Détails du service" s'affiche:
Sélectionnez l'onglet YAML.
Cliquez sur Modifier, puis copiez le contenu du fichier YAML dans un nouveau fichier nommé
service.yaml
de votre système de fichiers, afin que Skaffold puisse l'utiliser lorsque vous créez une version.
Synthèse
Maintenant que vous disposez de la définition de votre service Cloud Run, de votre configuration skaffold.yaml
et de votre définition de cible Google Cloud Deploy, et que vous avez enregistré votre cible en tant que ressource Google Cloud Deploy, vous pouvez appeler votre pipeline de livraison pour créer une version et la faire progresser tout au long de la progression des cibles définies dans le pipeline.
Le guide de démarrage rapide Déployer une application sur Cloud Run à l'aide de Google Cloud Deploy montre tout cela en action.
Comportement des services lors des révisions
Lorsque vous redéployez un service, la nouvelle révision est basée sur la nouvelle ressource service.yaml
déployée. Rien n'est conservé dans la révision précédente, sauf dans le nouveau fichier YAML déployé. Par exemple, si des paramètres de configuration ou des étiquettes de la révision précédente ne figurent pas dans le nouveau fichier YAML, ces paramètres ou libellés sont absents de la nouvelle révision du service.
Déployer des services Cloud Run dans plusieurs projets
Si vous devez déployer des services se trouvant dans des projets différents, votre compte de service d'exécution doit être autorisé à accéder aux projets dans lesquels ces services sont définis.
Pour en savoir plus, consultez les pages Compte de service d'exécution Google Cloud Deploy et Rôles et autorisations Identity and Access Management.
Étapes suivantes
Consultez le guide de démarrage rapide: déployer une application sur Cloud Run.
Découvrez comment configurer des cibles Google Cloud Deploy.
Découvrez les environnements d'exécution Google Cloud Deploy.
En savoir plus sur la compatibilité de Skaffold avec Cloud Run
En savoir plus sur Cloud Run