Guide de démarrage rapide : déployer une application

Cette page vous explique comment utiliser Google Cloud Deploy pour fournir un exemple d'image d'application nommée echoserver à une séquence de deux clusters Google Kubernetes Engine.

Dans ce guide de démarrage rapide, vous allez:

  1. Créer les deux clusters.

  2. Créer une configuration Skaffold et un fichier manifeste Kubernetes pour spécifier l'image de conteneur (prédéfinie) à déployer.

  3. Définir votre pipeline de diffusion Google Cloud Deploy et des cibles de déploiement, qui pointent vers les deux clusters.

    Vous pouvez définir vos cibles dans le même fichier que le pipeline de diffusion ou dans un ou plusieurs fichiers différents. Pour plus de simplicité, dans ce guide de démarrage rapide, vous allez les placer dans le même fichier.

  4. Instancier votre pipeline de diffusion en créant une version qui est automatiquement déployée sur la première cible.

  5. Effectuer la promotion de la version vers la deuxième cible.

  6. Afficher les deux déploiements dans Cloud Console.

Avant de commencer

  1. 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 gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  4. Activer les API Google Cloud Deploy, Cloud Build, GKE, and Cloud Storage.

    Activer les API

  5. Installez et initialisez Google Cloud CLI.
  6. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  7. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  8. Activer les API Google Cloud Deploy, Cloud Build, GKE, and Cloud Storage.

    Activer les API

  9. Installez et initialisez Google Cloud CLI.
  10. 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 sont incluses pour les projets qui désactivent l'attribution automatique de rôles pour les comptes de service par défaut.

    1. Ajoutez 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"
      

    2. Ajoutez les autorisations de développeur Kubernetes:

      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"
      

      Si vous rencontrez des difficultés pour ajouter l'un de ces rôles, contactez l'administrateur de votre projet.

  11. Assurez-vous que vous utilisez la dernière version de l'outil de ligne de commande gcloud, 369.0 ou une version ultérieure:

    gcloud components update

Créer vos clusters Google Kubernetes Engine

Créez deux clusters: qsdev et qsprod, avec les paramètres par défaut. Les points de terminaison de l'API Kubernetes des clusters doivent être accessibles depuis le réseau Internet public. Les clusters GKE sont accessibles en externe par défaut.

  1. Créez le cluster qsdev :

    gcloud container clusters create quickstart-cluster-qsdev --project=PROJECT_ID --region=us-central1
    
  2. Créez le cluster qsprod :

    gcloud container clusters create quickstart-cluster-qsprod --project=PROJECT_ID --region=us-central1
    

Préparer la configuration Skaffold et le fichier manifeste Kubernetes

Google Cloud Deploy utilise Skaffold pour fournir les détails de ce que vous devez déployer et de la manière de le déployer correctement pour vos cibles distinctes.

Dans ce guide de démarrage rapide, vous allez créer un fichier skaffold.yaml, qui identifie le fichier manifeste Kubernetes à utiliser pour déployer l'exemple d'application.

  1. Ouvrez une fenêtre de terminal.

  2. Créez un répertoire nommé deploy-quickstart et accédez-y.

    mkdir deploy-quickstart
    cd deploy-quickstart
    
  3. Créez un fichier nommé skaffold.yaml avec le contenu suivant :

    apiVersion: skaffold/v2beta16
    kind: Config
    deploy:
      kubectl:
        manifests:
          - k8s-*
    
  4. Créez un fichier nommé k8s-pod.yaml avec le contenu suivant :

    apiVersion: v1
    kind: Pod
    metadata:
      name: getting-started
    spec:
      containers:
      - name: echoserver
        image: my-app-image
    

Créer votre pipeline de diffusion et vos cibles

Vous pouvez définir votre pipeline et vos cibles dans un fichier unique ou dans des fichiers séparés. Dans ce guide de démarrage rapide, vous allez créer un seul fichier.

  1. Dans le répertoire deploy-quickstart, créez un fichier nommé clouddeploy.yaml contenant les éléments suivants :

    apiVersion: deploy.cloud.google.com/v1
    kind: DeliveryPipeline
    metadata:
     name: my-demo-app-1
    description: main application pipeline
    serialPipeline:
     stages:
     - targetId: qsdev
       profiles: []
     - targetId: qsprod
       profiles: []
    ---
    
    apiVersion: deploy.cloud.google.com/v1
    kind: Target
    metadata:
     name: qsdev
    description: development cluster
    gke:
     cluster: projects/PROJECT_ID/locations/us-central1/clusters/quickstart-cluster-qsdev
    ---
    
    apiVersion: deploy.cloud.google.com/v1
    kind: Target
    metadata:
     name: qsprod
    description: production cluster
    gke:
     cluster: projects/PROJECT_ID/locations/us-central1/clusters/quickstart-cluster-qsprod
    
  2. Enregistrez votre pipeline dans le service Google Cloud Deploy:

    gcloud deploy apply --file clouddeploy.yaml --region=us-central1 --project=PROJECT_ID
    

    Vous disposez maintenant d'un pipeline doté de cibles prêtes à déployer votre application sur votre première cible.

  3. Confirmez votre pipeline et vos cibles:

    Dans Cloud Console, accédez à la page Pipelines de diffusion de Google Cloud Deploy pour afficher la liste de vos pipelines de diffusion disponibles.

    Ouvrir la page Pipelines de diffusion

    Le pipeline de diffusion que vous venez de créer s'affiche, et les deux cibles sont répertoriées dans la colonne Cibles.

    Visualisation du pipeline de diffusion dans Google Cloud Console

Créer une version

Une version est la ressource centrale Google Cloud Deploy représentant les modifications en cours de déploiement. Le pipeline de diffusion définit le cycle de vie de cette version. Consultez la section Architecture de service Google Cloud Deploy pour plus de détails sur ce cycle de vie.

Exécutez la commande suivante à partir du répertoire deploy-quickstart pour créer une ressource release qui représente l'image de conteneur à déployer:

gcloud deploy releases create test-release-001 \
  --project=PROJECT_ID \
  --region=us-central1 \
  --delivery-pipeline=my-demo-app-1 \
  --images=my-app-image=k8s.gcr.io/echoserver:1.4

Comme cette version est la première (qui est déployée dans la première cible de la progression), Google Cloud Deploy crée automatiquement une ressource rollout. L'application est automatiquement déployée dans la première cible de la progression.

Promouvoir la version

  1. Sur la page Pipelines de diffusion, cliquez sur le pipeline my-demo-app-1.

    Ouvrir la page Pipelines de diffusion

    La page "Détails du pipeline de diffusion" affiche une représentation graphique de la progression de votre pipeline de diffusion. Dans le cas présent, elle indique que la version a été déployée sur la cible qsdev.

    Visualisation du pipeline de diffusion dans Google Cloud Console

  2. Sur la première cible de la visualisation du pipeline de diffusion, cliquez sur Promouvoir.

    La boîte de dialogue Promouvoir la version s'affiche. Elle affiche les détails de la cible vers laquelle vous faites la promotion.

  3. Cliquez sur Promouvoir.

    La version est maintenant mise en file d'attente pour le déploiement dans qsprod. Une fois le déploiement terminé, la visualisation du pipeline de diffusion l'affiche comme déployé:

    Visualisation du pipeline de diffusion dans Google Cloud Console

Afficher les résultats dans Cloud Console

  1. Dans Cloud Console, accédez à la page Pipelines de diffusion de Google Cloud Deploy pour afficher votre pipeline de diffusion my-demo-app-1.

    Ouvrir la page Pipelines de diffusion

  2. Cliquez sur le nom de votre pipeline de diffusion "my-demo-app-1".

    La visualisation du pipeline indique la progression de l'application dans le pipeline.

    Visualisation du pipeline de diffusion dans Google Cloud Console

    Votre version est répertoriée dans l'onglet Versions sous Détails du pipeline de diffusion.

  3. Cliquez sur le nom de la version, test-release-001.

    Vos déploiements s'affichent sous Déploiements. Vous pouvez cliquer sur un déploiement pour en afficher les détails, y compris le journal de déploiement.

    Déploiements dans Google Cloud Console

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud :

  1. Supprimez le cluster qsdev :

    gcloud container clusters delete quickstart-cluster-qsdev --region=us-central1 --project=PROJECT_ID
    
  2. Supprimez le cluster qsprod :

    gcloud container clusters delete quickstart-cluster-qsprod --region=us-central1 --project=PROJECT_ID
    
  3. Supprimez le pipeline de diffusion:

    gcloud deploy delivery-pipelines delete my-demo-app-1 --force --region=us-central1 --project=PROJECT_ID
    

    Cette commande supprime le pipeline de diffusion lui-même, ainsi que toutes les ressources release et rollout que Google Cloud a créées pour ce pipeline.

  4. Supprimez les buckets Cloud Storage créés par Google Cloud Deploy.

    L'un se termine par _clouddeploy et l'autre est [region].deploy-artifacts.[project].appspot.com.

    uvrez la page du navigateur Cloud Storage

Voilà ! Vous avez terminé le guide de démarrage rapide.

Étape suivante