Définir le nombre maximal d'instances pour les services

Cette page explique comment définir le nombre maximal d'instances pouvant être utilisées pour votre service Cloud Run à l'aide du comportement d'autoscaling Cloud Run par défaut. 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.

Utilisez 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 pour limiter le nombre d'instances d'un service, sauf si vous avez un besoin spécifique de limiter les instances au niveau de la révision. Par défaut, Cloud Run définit 100 instances pour chaque révision. Pour permettre à votre service d'effectuer un scaling vers davantage d'instances, modifiez cette valeur.

Lorsque vous appliquez un nombre maximal d'instances, les paramètres prennent effet comme suit :

  • Niveau de service : immédiat
  • 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 :

Si vous déployez un service ou une fonction à partir du code source, vous devez également disposer de rôles supplémentaires sur votre projet et votre compte de service Cloud Build.

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.

Considérations liées au coût

Le paramètre d'instances maximales vous permet d'établir une limite de sécurité des coûts pour gérer les coûts. Définir un nombre maximal plus élevé donne la priorité à la disponibilité, mais introduit des risques de facturation potentiels liés à des pics de trafic inattendus ou à des erreurs de configuration. Pour limiter les coûts, configurez ce paramètre au niveau du service lorsque vous déployez initialement votre service. Nous vous suggérons de commencer par un nombre maximal d'instances de 3 pour protéger votre budget contre les pics inattendus.

Pour en savoir plus, consultez les tarifs de Cloud Run ou estimez les coûts à l'aide du simulateur de coût. Pour découvrir d'autres outils de contrôle des coûts, consultez les pages Quotas d'allocation des ressources ou Budgets et alertes de facturation.

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 la Google Cloud CLI, de YAML ou de Terraform lorsque vous créez un service ou déployez une nouvelle révision.

Console

  1. Dans la console Google Cloud , accédez à Cloud Run :

    Accédez à Cloud Run

  2. Sélectionnez Services dans le menu de navigation Cloud Run :

    1. Si vous configurez un nouveau service, cliquez sur Déployer un conteneur et remplissez la page initiale des paramètres du service.

    2. Si vous configurez un service existant, cliquez sur celui-ci, puis sur l'onglet Scaling.

  3. Sous Scaling du service, recherchez le champ intitulé Nombre maximal d'instances et 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. Pour supprimer la limite au niveau du service, supprimez la valeur que vous avez définie. Le paramètre est alors rétabli sur sa valeur par défaut.

  4. Cliquez sur Créer pour un nouveau service. Cliquez sur Afficher les différences et redéployer, puis sur Déployer les modifications 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 run services update SERVICE --max MAX-VALUE

Remplacez les éléments suivants :

  • 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. Pour supprimer la limite au niveau du service, supprimez la valeur que vous avez définie. Le paramètre est alors rétabli à sa valeur par défaut.

Vous pouvez également définir le nombre maximal d'instances lors du déploiement à l'aide de la commande suivante :

gcloud run deploy --image IMAGE_URL --max MAX-VALUE

Remplacez les éléments suivants :

  • IMAGE_URL : 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 respecte le format 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.

  1. 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
  2. Mettez à jour l'attribut run.googleapis.com/maxScale: :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/maxScale: 'MAX-INSTANCE'

    Remplacez les éléments suivants :

    • 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. Pour supprimer la limite au niveau du service, supprimez la valeur que vous avez définie. Le paramètre est alors rétabli sur sa valeur par défaut.
  3. Créez ou mettez à jour le service à l'aide de la commande suivante :

    gcloud run services replace service.yaml

    Par défaut, la commande gcloud run services replace utilise le fichier service.yaml s'il est présent.

Terraform

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

Ajoutez les éléments suivants à une ressource google_cloud_run_v2_service dans votre configuration Terraform :
resource "google_cloud_run_v2_service" "default" {
name     = "SERVICE"
location = "REGION"

scaling {
  max_instance_count = MAX_INSTANCE
}

template {
  containers {
    image = "IMAGE_URL"
  }
}
}

Remplacez les éléments suivants :

  • SERVICE : nom de votre service Cloud Run.
  • REGION : région Google Cloud , par exemple europe-west1.
  • MAX_INSTANCE : nombre maximal d'instances de conteneur requis, en utilisant une valeur entière comprise entre 1 et la limite maximale.
  • IMAGE_URL : 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 respecte le format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

Afficher le nombre maximal d'instances au niveau du service

Pour afficher les paramètres actuels du nombre maximal d'instances au niveau du service pour votre service Cloud Run, procédez comme suit :

Console

  1. Dans la console Google Cloud , accédez à la page Services de Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur ce service pour ouvrir le panneau Informations sur le service.

  3. Cliquez sur l'onglet Scaling (Mise à l'échelle) pour afficher le paramètre actuel.

gcloud

  1. Exécutez la commande suivante :

    gcloud run services describe SERVICE
  2. Recherchez la valeur de Scaling : automatique (minimum : MIN_VALUE, maximum : 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 révisions Cloud Run sont configurées pour effectuer un scaling maximal à 100 instances.

Le scaling au niveau de la révision n'est disponible que pour les services pour lesquels la fonctionnalité a déjà été configurée.

Console

  1. Dans la console Google Cloud , accédez à Cloud Run :

    Accédez à Cloud Run

  2. Sélectionnez Services dans le menu de navigation Cloud Run :

    1. Si vous configurez un nouveau service, cliquez sur Déployer un conteneur et remplissez la page initiale des paramètres du service. Cliquez ensuite sur Conteneurs, mise en réseau, sécurité pour développer la page de configuration de service.

    2. Si vous configurez un service existant, cliquez sur celui-ci, puis sur l'onglet Scaling.

  3. Dans la section Scaling de révision, spécifiez le nombre maximal d'instances de conteneur dans le champ Nombre maximal d'instances.

  4. Cliquez sur Créer pour un nouveau service. Cliquez sur Afficher les différences et redéployer, puis sur Déployer les modifications 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 run services update SERVICE --max-instances MAX-VALUE

Remplacez les éléments suivants :

  • 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

  1. 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
  2. Mettez à jour l'attribut autoscaling.knative.dev/maxScale: :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: 'MAX-INSTANCE'
          name: REVISION

    Remplacez les éléments suivants :

    • 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 : 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
  3. Créez ou mettez à jour le service à l'aide de la commande suivante :

    gcloud run services replace service.yaml

    Par défaut, la commande gcloud run services replace utilise le fichier service.yaml s'il est présent.

Afficher les paramètres du nombre maximal d'instances au niveau de la révision

Le scaling au niveau de la révision n'est disponible que pour les services pour lesquels la fonctionnalité a déjà été configurée.

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

  1. Dans la console Google Cloud , accédez à la page Services de Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur ce service pour ouvrir le panneau Informations sur le service.

  3. Cliquez sur l'onglet Scaling.

  4. Sous Scaling de révision, affichez le nombre maximal d'instances.

gcloud

  1. Exécutez la commande suivante :

    gcloud run services describe SERVICE
  2. 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 est 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 au niveau de la révision défini 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 configuré au niveau de la révision.

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 (scénario sans paramètres au niveau de la révision) : 100
  • Répartition du trafic pour la révision A : 10 %
  • Répartition du trafic pour la révision B : 10 %
  • Répartition du trafic pour la révision C : 80 %
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 fixé en fonction de 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.