Divisions et rollbacks d'instances pour les pools de nœuds de calcul Cloud Run

Les pools de nœuds de calcul Cloud Run vous permettent de diviser les charges de travail sans requête sur plusieurs révisions à l'aide de la division d'instances. Vous pouvez attribuer des pourcentages d'instances spécifiques à chaque révision, effectuer un rollback vers une révision précédente ou transférer toutes les instances vers la dernière révision lors du déploiement de mises à jour.

Cycle de vie des divisions d'instances

Si vous divisez des instances entre plusieurs révisions ou si vous attribuez des instances à une révision précédente, tous les déploiements ultérieurs utiliseront ce modèle de division d'instances. Pour revenir à l'utilisation de la dernière révision sans division d'instances, envoyez toutes les instances vers la dernière révision.

Les ajustements de l'allocation d'instances ne sont pas instantanés. Lorsque vous modifiez l'allocation d'instances pour les révisions, les tâches en cours se poursuivent jusqu'à leur achèvement, et Cloud Run transfère les charges de travail entre les révisions précédentes et nouvelles en fonction de la division mise à jour.

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer les pools de nœuds de calcul Cloud Run et les révisions de pools de nœuds de calcul, demandez à votre administrateur de vous accorder lerôle IAM Développeur Cloud Run (roles/run.developer) sur votre pool de nœuds de calcul Cloud Run.

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre pool de nœuds de calcul Cloud Run communique avec Cloud de Confiance des API, telles que des bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.

Effectuer un rollback vers une révision antérieure

Pour effectuer un rollback vers une révision antérieure, utilisez la Cloud de Confiance console ou Google Cloud CLI :

Console

  1. Dans la Cloud de Confiance by S3NS console, accédez aux pools de nœuds de calcul Cloud Run :

    Accédez à Cloud Run

  2. Recherchez le pool de nœuds de calcul dans la liste, puis cliquez dessus.

  3. Cliquez sur l'onglet Revisions (Révisions) pour afficher la liste des révisions actuelles de ce pool de nœuds de calcul.

  4. Cliquez sur Manage instance splits (Gérer les divisions d'instances) pour afficher le formulaire de gestion des instances. Cloud Run liste la dernière révision de diffusion. Dans le formulaire, configurez les détails suivants :

    1. Add revision (Ajouter une révision) : utilisez la liste déroulante pour sélectionner une révision précédente.
    2. Définissez le pourcentage d'instances de cette révision précédente sur 100.
    3. Définissez le pourcentage de la dernière révision de diffusion sur 0.
    4. Cliquez sur Save (Enregistrer).

gcloud

Spécifiez les révisions vers lesquelles effectuer le rollback en exécutant la commande suivante

   gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=REVISION=100

Remplacez les éléments suivants :

  • WORKER_POOL : nom du pool de nœuds de calcul.
  • REVISION : nom de la révision vers laquelle vous effectuez le rollback.

YAML

  1. Si vous créez un pool de nœuds de calcul, ignorez cette étape. Si vous mettez à jour un pool de nœuds de calcul existant, téléchargez sa configuration YAML :

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. L'exemple suivant contient la configuration YAML :

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
      instanceSplits:
      - revisionName: REVISION
        percent: 100
    

    Remplacez les éléments suivants :

    • WORKER_POOL : nom du pool de nœuds de calcul.
    • REGION : Cloud de Confiance région, par exemple us-central1.
    • IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest
    • REVISION : nom de la révision vers laquelle vous effectuez le rollback.
  3. Créez ou mettez à jour le pool de nœuds de calcul à l'aide de la commande suivante :

    gcloud run worker-pools replace worker-pool.yaml

    Par défaut, la commande gcloud run worker-pools replace utilise le fichier worker-pool.yaml s'il est présent.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

import {
  id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
  to = google_cloud_run_v2_worker_pool.default
}

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }

  instance_splits {
    type     = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
    revision = "REVISION"
    percent  = 100
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre Cloud de Confiance projet.
  • REGION : Cloud de Confiance région, par exemple us-central1.
  • WORKER_POOL : nom du pool de nœuds de calcul.
  • IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • REVISION : nom de la révision vers laquelle vous effectuez le rollback.

Diviser des instances entre plusieurs révisions

Pour diviser des instances entre deux révisions ou plus, utilisez la Cloud de Confiance console ou Google Cloud CLI :

Lorsque vous divisez des instances entre plusieurs révisions, assurez-vous que le pourcentage total de toutes les révisions est égal à 100 % et que le nombre d' instances manuelles doit être supérieur au nombre de divisions d'instances diffusant la charge de travail.

Console

  1. Dans la Cloud de Confiance by S3NS console, accédez aux pools de nœuds de calcul Cloud Run :

    Accédez à Cloud Run

  2. Recherchez le pool de nœuds de calcul dans la liste, puis cliquez dessus.

  3. Cliquez sur l'onglet Revisions (Révisions) pour afficher la liste des révisions actuelles de ce pool de nœuds de calcul.

  4. Cliquez sur Manage instance splits (Gérer les divisions d'instances) pour afficher le formulaire de gestion des instances. Cloud Run liste la dernière révision de diffusion. Dans le formulaire, configurez les détails suivants :

    1. Définissez le pourcentage de la dernière révision de diffusion sur la division requise, par exemple, en le réduisant de 100%.

    2. Cliquez sur Add revision (Ajouter une révision), puis utilisez la liste déroulante pour sélectionner une révision précédente et définir la division en pourcentage correspondante.

    3. Pour diviser des instances avec des révisions supplémentaires, cliquez sur Add Revision (Ajouter une révision), et sélectionnez une autre révision, puis définissez son pourcentage.

    4. Cliquez sur Save (Enregistrer).

gcloud

Spécifiez les révisions et le pourcentage d'instances en exécutant la commande suivante commande. Allouez des instances pour chaque révision dans une liste délimitée par des virgules :

   gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LIST

Remplacez les éléments suivants :

  • WORKER_POOL : nom du pool de nœuds de calcul.

  • LIST : liste de révisions et de pourcentages délimitée par des virgules :

    REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEx.

    Par exemple, my-worker-pool-s5sxn=10,my-worker-pool-cp9kw=90.

YAML

  1. Si vous créez un pool de nœuds de calcul, ignorez cette étape. Si vous mettez à jour un pool de nœuds de calcul existant, téléchargez sa configuration YAML :

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. L'exemple suivant contient la configuration YAML :

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      labels:
        cloud.googleapis.com/location: REGION
      annotations:
        run.googleapis.com/scalingMode: manual
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
      instanceSplits:
      - revisionName: REVISION1
        percent: PERCENTAGE1
      - revisionName: REVISION2
        percent: PERCENTAGE2
    

    Remplacez les éléments suivants :

    • WORKER_POOL : nom du pool de nœuds de calcul.
    • REGION : Cloud de Confiance région, par exemple us-central1.
    • INSTANCE_COUNT : nombre d'instances.
    • IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest
    • REVISION1 et REVISION2 : nom des révisions.
    • PERCENTAGE1 et PERCENTAGE2 : pourcentage d'instances à allouer à chacune de ces révisions. Leur somme doit être égale à 100.
  3. Créez ou mettez à jour le pool de nœuds de calcul à l'aide de la commande suivante :

    gcloud run worker-pools replace worker-pool.yaml

    Par défaut, la commande gcloud run worker-pools replace utilise le fichier worker-pool.yaml s'il est présent.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

import {
  id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
  to = google_cloud_run_v2_worker_pool.default
}

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }

  instance_splits {
    type     = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
    revision = "REVISION1"
    percent  = PERCENTAGE1
  }
  instance_splits {
    type     = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
    revision = "REVISION2"
    percent  = PERCENTAGE2
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre Cloud de Confiance projet.
  • REGION : Cloud de Confiance région, par exemple us-central1.
  • WORKER_POOL : nom du pool de nœuds de calcul.
  • IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • REVISION1 et REVISION2 : nom des révisions.
  • PERCENTAGE1 et PERCENTAGE2 : pourcentage d'instances à allouer à chacune de ces révisions. Leur somme doit être égale à 100.

Allouer des instances à la dernière révision

Lorsque vous déployez une nouvelle révision, vous pouvez allouer 100% des instances à cette révision et à toutes les suivantes, en remplaçant toute division d'instances établie.

gcloud

Pour allouer 100% des instances à la dernière révision, exécutez les commandes suivantes :

  • Utilisez l'indicateur --to-latest pour diriger 100% des instances vers la dernière révision et allouer automatiquement toutes les instances à toute nouvelle révision que vous déployez :

    gcloud run worker-pools update-instance-split WORKER_POOL --to-latest
    
  • Vous pouvez également utiliser l'indicateur --to-revisions avec le mot clé LATEST pour toujours allouer un pourcentage flottant d'instances à la dernière révision lorsque vous en déployez une. Pour définir un pourcentage d'instances qui flottent toujours vers la dernière révision, exécutez la commande suivante :

    gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LATEST=PERCENTAGE
    

    Remplacez les éléments suivants :

    • WORKER_POOL : nom du pool de nœuds de calcul.
    • PERCENTAGE : pourcentage d'instances à allouer pour la dernière révision et les suivantes.

YAML

  1. Si vous créez un pool de nœuds de calcul, ignorez cette étape. Si vous mettez à jour un pool de nœuds de calcul existant, téléchargez sa configuration YAML :

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. L'exemple suivant contient la configuration YAML :

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
      instanceSplits:
      - latestRevision: true
        percent: 100
    

    Remplacez les éléments suivants :

    • WORKER_POOL : nom du pool de nœuds de calcul.
    • REGION : Cloud de Confiance région, par exemple us-central1.
    • IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  3. Créez ou mettez à jour le pool de nœuds de calcul à l'aide de la commande suivante :

    gcloud run worker-pools replace worker-pool.yaml

    Par défaut, la commande gcloud run worker-pools replace utilise le fichier worker-pool.yaml s'il est présent.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }

  instance_splits {
    type = "INSTANCE_SPLIT_ALLOCATION_TYPE_LATEST"
    percent  = 100
  }
}

Remplacez les éléments suivants :

  • WORKER_POOL : nom du pool de nœuds de calcul.
  • REGION : Cloud de Confiance région, par exemple us-central1.
  • IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest

Étape suivante