Cette page explique comment définir le nombre maximal d'instances pouvant être utilisées pour votre service Cloud Run à l'aide du comportement par défaut de l'autoscaling Cloud Run. Pour effectuer le scaling manuel de votre service, consultez Scaling manuel.
La spécification du nombre maximal d'instances dans Cloud Run vous permet de limiter le scaling de votre service en réponse aux requêtes entrantes, bien que ce paramètre maximal puisse être dépassé pendant une courte période en raison de circonstances telles que des pics de trafic.
Vous pouvez utiliser ce paramètre pour contrôler vos coûts ou limiter le nombre de connexions à un service externe, tel qu'une base de données.
Pour en savoir plus sur le nombre maximal d'instances pouvant s'appliquer à votre service, consultez la section Limites maximales d'instances.
Si vous voulez savoir comment Cloud Run effectue l'autoscaling des instances de conteneur, consultez la page À propos de l'autoscaling des instances de conteneur.
Appliquer un nombre maximal d'instances au niveau du service ou au niveau de la révision
Vous pouvez configurer le nombre maximal d'instances au niveau du service ou de la révision. Google vous recommande d'utiliser le nombre maximal d'instances au niveau du service, sauf si vous avez un besoin spécifique de limiter les instances au niveau de la révision.
Lorsque vous appliquez un nombre maximal d'instances, les paramètres prennent effet comme suit :
- Au niveau du service : immédiatement
- Au niveau de la révision : lors du déploiement de la révision
Révisions avec tag et instances maximales au niveau du service
Les révisions avec tag sont démarrées, mais ne sont comptabilisées dans le nombre maximal d'instances au niveau du service que si elles font partie d'une répartition du trafic.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer et déployer des services Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Développeur Cloud Run (
roles/run.developer
) sur le service Cloud Run -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur l'identité du service
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 service Cloud Run communique avec les APIGoogle Cloud , telles que les 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.
Configurer le nombre maximal d'instances au niveau du service
Vous pouvez modifier le paramètre du nombre maximal d'instances à l'aide de la console Google Cloud , de Google Cloud CLI ou d'un fichier YAML lorsque vous créez un service ou déployez une nouvelle révision.
Console
Dans la console Google Cloud , accédez à Cloud Run :
Si vous configurez un nouveau service, sélectionnez Services et cliquez sur Déployer un conteneur pour afficher le formulaire Créer un service. Recherchez le formulaire Scaling de service.
Si vous configurez un service existant, cliquez sur celui-ci pour afficher son panneau de détails, puis sur
Modifier les paramètres de scaling au niveau du service en haut à droite du panneau de détails.Dans le champ intitulé Nombre maximal d'instances, spécifiez le nombre maximal d'instances de conteneur requis, en utilisant une valeur entière comprise entre
1
et la limite maximale possible pour votre service.Cliquez sur Créer pour un nouveau service ou sur Déployer pour un service existant.
gcloud
Vous pouvez mettre à jour le nombre maximal d'instances d'un service donné à l'aide de la commande suivante :
gcloud beta run services update SERVICE --max MAX-VALUE
Remplacer
- SERVICE : nom de votre service.
- MAX-VALUE : nombre maximal d'instances de conteneur requis, en utilisant une valeur entière comprise entre
1
et la limite maximale possible pour votre service.
Vous pouvez également définir le nombre maximal d'instances lors du déploiement à l'aide de la commande suivante :
gcloud beta run deploy --image IMAGE_URL --max MAX-VALUE
Remplacer
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante :LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - MAX-VALUE : nombre maximal d'instances de conteneur requis, en utilisant une valeur entière comprise entre
1
et la limite maximale.
YAML
Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour l'attribut
run.googleapis.com/maxScale:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA run.googleapis.com/maxScale: 'MAX-INSTANCE'
Remplacer
- SERVICE : nom de votre service Cloud Run.
- MAX-INSTANCE : nombre maximal d'instances de conteneur requis, en utilisant une valeur entière comprise entre
1
et la limite maximale possible pour votre service.
Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.yaml
Afficher le nombre maximal d'instances au niveau du service
Pour afficher les paramètres actuels du nombre maximal d'instances pour votre service Cloud Run, procédez comme suit :
Console
Dans la console Google Cloud , accédez à Cloud Run :
Cliquez sur ce service pour ouvrir son panneau Informations sur le service.
Affichez le paramètre actuel en haut à droite du panneau d'informations sur le service, à côté de Scaling (Mise à l'échelle).
gcloud
Exécutez la commande suivante :
gcloud run services describe SERVICE
Recherchez la valeur Scaling : automatique (min. : MIN_VALUE, max. : MAX_VALUE) dans la configuration renvoyée.
Configurer le nombre maximal d'instances au niveau de la révision
Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Par défaut, les services Cloud Run sont configurés pour effectuer un scaling maximal à 100 instances.
Vous pouvez modifier le paramètre du nombre maximal d'instances à l'aide de la console Google Cloud , de Google Cloud CLI ou d'un fichier YAML lorsque vous créez un service ou déployez une nouvelle révision.
Console
Dans la console Google Cloud , accédez à Cloud Run :
Recherchez le service que vous souhaitez mettre à jour dans la liste des services, puis cliquez dessus pour en afficher les détails.
Cliquez sur Modifier et déployer la nouvelle révision pour afficher le formulaire de déploiement de version.
Cliquez sur l'onglet Conteneur.
Recherchez la section Mise à l'échelle des révisions. Dans le champ Nombre maximal d'instances, spécifiez le nombre maximal d'instances de conteneur.
Cliquez sur Déployer.
gcloud
Vous pouvez mettre à jour le nombre maximal d'instances d'un service donné à l'aide de la commande suivante :
gcloud beta run services update SERVICE --max-instances MAX-VALUE
Remplacer
- SERVICE : nom de votre service.
- MAX-VALUE : nombre maximal d'instances de conteneur requis, en utilisant une valeur entière comprise entre
1
et la limite maximale.
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour l'attribut
autoscaling.knative.dev/maxScale:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX-INSTANCE' name: REVISION
Remplacer
- SERVICE : nom de votre service Cloud Run.
- MAX-INSTANCE : nombre maximal d'instances de conteneur requis, en utilisant une valeur entière comprise entre
1
et la limite maximale. - REVISION par un nouveau nom de révision ou supprimez-le (le cas échéant). Si vous indiquez un nouveau nom de révision, il doit répondre aux critères suivants :
- Commencer par
SERVICE-
- Ne contenir que des lettres minuscules, des chiffres et
-
- Ne pas se terminer par
-
- Ne pas dépasser 63 caractères
- Commencer par
Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.yaml
Afficher les paramètres du nombre maximal d'instances au niveau de la révision
Pour afficher les paramètres actuels du nombre maximal d'instances au niveau de la révision pour votre service Cloud Run, procédez comme suit :
Console
Dans la console Google Cloud , accédez à Cloud Run :
Cliquez sur ce service pour ouvrir son panneau Informations sur le service.
Cliquez sur l'onglet Révisions.
Dans le panneau de détails sur la droite, consultez le paramètre Nombre maximal d'instances de révision sous l'onglet Conteneur.
gcloud
Exécutez la commande suivante :
gcloud run services describe SERVICE
Recherchez la valeur de Nombre maximal d'instances dans la configuration renvoyée.
Utiliser des instances minimales ou maximales au niveau du service et de la révision
Le tableau suivant indique le comportement si vous combinez le nombre maximal d'instances au niveau du service et le nombre minimal ou maximal d'instances au niveau de la révision :
Paramètre au niveau du service | Paramètre au niveau de la révision | Comportement |
---|---|---|
Nombre maximal d'instances défini au niveau du service | Nombre maximal d'instances défini au niveau de la révision | La limite maximale effective d'instances correspond à la valeur la plus faible entre le nombre maximal d'instances au niveau de la révision et le nombre maximal d'instances au niveau du service. |
Nombre maximal d'instances défini au niveau du service | Nombre minimal d'instances défini au niveau de la révision | Si le nombre maximal d'instances au niveau du service est défini sur une valeur inférieure au nombre minimal d'instances au niveau de la révision, la révision démarre les instances jusqu'au nombre maximal d'instances au niveau du service et n'atteint pas le nombre minimal d'instances au niveau de la révision configuré. |
Utiliser un nombre maximal d'instances au niveau du service avec la répartition du trafic
Si vous utilisez la répartition du trafic, le nombre maximal d'instances au niveau du service est réparti entre les révisions en fonction de la proportion de la répartition du trafic. Par exemple, si le nombre maximal d'instances au niveau du service est égal à 100, une répartition du trafic à 50/50 alloue 50 instances maximales au niveau du service à chaque révision. Le tableau suivant présente un exemple de scénario de configuration :
Exemple de configuration | Comportement observé |
---|---|
Nombre maximal d'instances au niveau du service défini (scénario sans paramètres au niveau de la révision) : 100
|
Une partie du nombre maximal d'instances au niveau du service est allouée à chaque révision. Le nombre maximal d'instances effectif pour chaque révision est fixe et basé sur la répartition du trafic. Le nombre maximal d'instances pour la révision A est de 10, pour la révision B de 10 et pour la révision C de 80. |