Les pools de nœuds de calcul gèrent les charges de travail qui ne sont pas des requêtes. Pour les cas d'utilisation qui nécessitent de répartir le travail entre plusieurs révisions, comme le déploiement d'une nouvelle révision, les pools de nœuds de calcul utilisent la répartition des instances.
Cloud Run vous permet de spécifier les révisions qui reçoivent des instances et de définir des pourcentages d'allocation d'instances pour chaque révision. Cette fonctionnalité vous permet d'effectuer un rollback vers une révision précédente, de répartir les instances entre plusieurs révisions et d'allouer des instances à la dernière révision. Cette page explique comment utiliser cette fonctionnalité pour gérer l'allocation d'instances à vos révisions Cloud Run.
Les ajustements d'allocation d'instances ne sont pas instantanés. Lorsque vous modifiez l'allocation d'instances pour les révisions, toutes les requêtes en cours de traitement sont menées à terme. Les requêtes en cours de transfert ne sont pas supprimées, et Cloud Run peut les diriger vers une nouvelle révision ou vers une révision précédente pendant la période de transition.
Cycle de vie des répartitions d'instances
Si vous répartissez des instances entre plusieurs révisions ou si vous en attribuez à une révision précédente, tous les déploiements ultérieurs utiliseront ce modèle de répartition d'instances. Pour revenir à l'utilisation de la dernière révision sans répartition d'instances, envoyez toutes les instances à la dernière révision.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les pools de nœuds de calcul et les révisions de pools de nœuds de calcul Cloud Run, demandez à votre administrateur de vous accorder le rô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 Google Cloud 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 précédente, utilisez la Google Cloud console ou Google Cloud CLI :
Console
Dans la Google Cloud console, accédez aux pools de nœuds de calcul Cloud Run :
Recherchez le pool de nœuds de calcul dans la liste, puis cliquez dessus.
Cliquez sur l'onglet Revisions (Révisions) pour afficher la liste des révisions actuelles de ce pool de nœuds de calcul.
Cliquez sur Manage instance splits (Gérer les répartitions d'instances) pour afficher le formulaire de gestion des instances. Cloud Run affiche la dernière révision diffusée. Dans le formulaire, configurez les détails suivants :
- Cliquez sur Add revision (Ajouter une révision), puis utilisez la liste déroulante pour sélectionner une révision précédente.
- Définissez le pourcentage d'instances de cette révision précédente sur 100.
- Définissez le pourcentage de la dernière révision diffusée sur 0.
- 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
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
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: 100Remplacez les éléments suivants :
- WORKER_POOL : nom du pool de nœuds de calcul.
- REGION : Google Cloud région, par exemple
us-central1. IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exempleus-docker.pkg.dev/cloudrun/container/worker-pool:latest.- REVISION : nom de la révision vers laquelle vous effectuez le rollback.
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 replaceutilise le fichierworker-pool.yamls'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 Google Cloud projet.
- REGION : Google Cloud 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 exempleus-docker.pkg.dev/cloudrun/container/worker-pool:latest.- REVISION : nom de la révision vers laquelle vous effectuez le rollback.
Répartir les instances entre plusieurs révisions
Pour répartir les instances entre deux révisions ou plus, utilisez la Google Cloud console ou Google Cloud CLI :
Lorsque vous répartissez 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 est supérieur au nombre de répartitions d'instances diffusant la charge de travail.
Console
Dans la Google Cloud console, accédez aux pools de nœuds de calcul Cloud Run :
Recherchez le pool de nœuds de calcul dans la liste, puis cliquez dessus.
Cliquez sur l'onglet Revisions (Révisions) pour afficher la liste des révisions actuelles de ce pool de nœuds de calcul.
Cliquez sur Manage instance splits (Gérer les répartitions d'instances) pour afficher le formulaire de gestion des instances. Cloud Run affiche la dernière révision diffusée. Dans le formulaire, configurez les détails suivants :
Définissez le pourcentage de la dernière révision diffusée sur la répartition requise (par exemple, réduisez-le de 100 %).
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 le pourcentage de répartition correspondant.
Pour répartir les 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.
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
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
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: PERCENTAGE2Remplacez les éléments suivants :
- WORKER_POOL : nom du pool de nœuds de calcul.
- REGION : Google Cloud 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 exempleus-docker.pkg.dev/cloudrun/container/worker-pool:latest.- REVISION1 et REVISION2 : noms des révisions.
- PERCENTAGE1 et PERCENTAGE2 : pourcentage d'instances à allouer à chacune de ces révisions. La somme doit être égale à 100.
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 replaceutilise le fichierworker-pool.yamls'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 Google Cloud projet.
- REGION : Google Cloud 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 exempleus-docker.pkg.dev/cloudrun/container/worker-pool:latest.- REVISION1 et REVISION2 : noms des révisions.
- PERCENTAGE1 et PERCENTAGE2 : pourcentage d'instances à allouer à chacune de ces révisions. La somme doit être égale à 100.
Allouer des instances à la dernière révision
Lorsque vous déployez une nouvelle révision, vous pouvez lui allouer 100% des instances, ainsi qu'à toutes les révisions futures, en remplaçant toute répartition d'instances établie.
gcloud
Pour allouer 100% des instances à la dernière révision, exécutez les commandes suivantes :
Utilisez l'indicateur
--to-latestpour 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-latestVous pouvez également utiliser l'indicateur
--to-revisionsavec le mot cléLATESTpour 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=PERCENTAGERemplacez 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 futures dernières révisions.
YAML
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
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: 100Remplacez les éléments suivants :
- WORKER_POOL : nom du pool de nœuds de calcul.
- REGION : Google Cloud région, par exemple
us-central1. IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exempleus-docker.pkg.dev/cloudrun/container/worker-pool:latest.
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 replaceutilise le fichierworker-pool.yamls'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 : Google Cloud région, par exemple
us-central1. IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exempleus-docker.pkg.dev/cloudrun/container/worker-pool:latest.
Étape suivante
- Découvrez comment utiliser Cloud Deploy pour configurer un pipeline de livraison continue afin de déployer dans Cloud Run.