Utiliser un nombre minimal d'instances

Découvrez comment activer les instances inactives pour vos services en configurant le paramètre de nombre minimal d'instances.

Par défaut, Knative serving effectue un scaling à la hausse jusqu'au nombre d'instances en fonction du nombre de requêtes entrantes. Toutefois, si votre service nécessite une latence réduite et que vous souhaitez limiter le nombre de démarrages à froid, vous pouvez modifier ce comportement par défaut en spécifiant un nombre minimal d'instances de conteneur qui doivent rester en cours d'exécution et prêtes à diffuser des requêtes.

Les instances qui sont maintenues en cours d'exécution de cette manière entraînent la facturation de frais.

Révisions et nombre minimal d'instances

Le nombre minimal d'instances n'est démarré que si la révision est adressable. Une révision est adressable si l'une des conditions suivantes est remplie :

  • Elle reçoit un pourcentage du trafic.
  • Un tag de révision lui a été attribué.

Définir et mettre à jour le nombre minimal d'instances

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, le paramètre min-instances est désactivé pour les instances de conteneur, et sa valeur est 0. Vous pouvez modifier cette valeur par défaut à l'aide de la console Google Cloud ou de la gcloud CLI lorsque vous déployez un nouveau service ou mettez à jour un service existant et déployez une révision :

Console

  1. Accédez à Knative serving dans la console Google Cloud:

    Accéder à Knative serving

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci, puis sur Modifier et déployer la nouvelle révision.

  3. Sous Paramètres avancés, cliquez sur Conteneur.

  4. Dans le champ Nombre minimal d'instances, spécifiez le nombre d'instances de conteneur à garder en attente et prêtes à recevoir des requêtes.

  5. Cliquez sur Suivant pour passer à la section suivante.

  6. Dans la section Configurer la manière dont ce service est déclenché, sélectionnez la connectivité que vous souhaitez utiliser pour appeler le service.

  7. Cliquez sur Créer pour déployer l'image sur Knative serving, puis attendez la fin du déploiement.

Ligne de commande

  • Pour les services existants, définissez le nombre minimal d'instances de conteneur en exécutant la commande gcloud run services update avec le paramètre --min-instances :

    gcloud run services update SERVICE --min-instances MIN-VALUE
    

    Remplacez :

    • SERVICE par le nom de votre service ;
    • MIN-VALUE par le nombre d'instances de conteneur à garder en attente et prêtes à recevoir des requêtes. Spécifiez default pour effacer tout paramétrage du nombre minimal d'instances.
  • Pour les nouveaux services, définissez le nombre minimal d'instances de conteneur en exécutant la commande gcloud run deploy avec le paramètre --min-instances :

    gcloud run deploy SERVICE --image=IMAGE_URL --min-instances MIN-VALUE
    

    Remplacez :

    • SERVICE par le nom de votre service ;
    • IMAGE_URL par une référence à l'image de conteneur, par exemple gcr.io/cloudrun/hello.
    • MIN-VALUE par le nombre d'instances de conteneur à garder en attente et prêtes à recevoir des requêtes. Spécifiez default pour effacer tout paramétrage du nombre minimal d'instances.

YAML

Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe à l'aide de l'option --format=export. Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les attributs spécifiés.

  1. Téléchargez la configuration de votre service dans un fichier nommé service.yaml sur l'espace de travail local :

    gcloud run services describe SERVICE --format export > service.yaml

    Remplacez SERVICE par le nom de votre service Knative serving.

  2. Dans votre fichier local, mettez à jour l'attribut autoscaling.knative.dev/minScale: :

    spec:
     template:
       metadata:
         annotations:
           autoscaling.knative.dev/minScale: 'MIN-INSTANCE' 

    Remplacez :

    • MIN-VALUEcode> par le nombre d'instances de conteneur à garder en attente et prêtes à recevoir des requêtes. Spécifiez default pour effacer tout paramétrage du nombre minimal d'instances.
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud run services replace service.yaml