Découvrez comment configurer le port du conteneur, ainsi que la commande entrypoint du conteneur et ses arguments.
Lorsque Knative serving démarre un conteneur, il exécute la commande entrypoint par défaut et les arguments de commande par défaut de l'image. Si vous souhaitez ignorer la commande entrypoint et les arguments de commande par défaut de l'image, vous pouvez utiliser les champs command
et args
dans la configuration du conteneur. Le champ command
spécifie la commande réelle exécutée par le conteneur. Le champ args
spécifie les arguments transmis à cette commande.
Configurer le port du conteneur
Toute modification 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.
Le conteneur doit écouter sur le port défini par la variable d'environnement PORT
plutôt que sur un port spécifique codé en dur.
Toutefois, si cela n'est pas possible, vous pouvez configurer le port sur lequel les requêtes sont envoyées adressées au conteneur :
Console
Accédez à Knative serving dans la console Google Cloud :
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.
Sous Paramètres avancés, cliquez sur Conteneur.
Spécifiez le port auquel vous souhaitez envoyer les requêtes, s'il ne s'agit pas du port par défaut
8080
. Cela définit également la variable d'environnementPORT
.Cliquez sur Next (Suivant) pour passer à la section suivante.
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.
Cliquez sur Créer pour déployer l'image sur Knative serving et attendez la fin du déploiement.
Ligne de commande
Pour les services existants, mettez à jour un paramètre de port en exécutant la commande
gcloud run services update
avec les paramètres suivants :gcloud run services update SERVICE --port PORT
Remplacez :
- SERVICE par le nom du service ;
- PORT par le port auquel envoyer les requêtes. Notez que le port par défaut est
8080
.
Pour les nouveaux services, définissez le port en exécutant la commande
gcloud run deploy
avec le paramètre--port
:gcloud run deploy SERVICE --image=IMAGE_URL --port PORT
Remplacez :
- SERVICE par le nom du service ;
- IMAGE_URL par une référence à l'image de conteneur, par exemple
gcr.io/cloudrun/hello
. - PORT par le port auquel envoyer les requêtes. Le port par défaut est
8080
.
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.
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.
Dans votre fichier local, mettez à jour l'attribut
containerPort:
:apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL ports: - containerPort: PORT
Remplacer
- IMAGE_URL par une référence à l'image de conteneur, par exemple
gcr.io/cloudrun/hello
. - PORT par le port auquel envoyer les requêtes.
- IMAGE_URL par une référence à l'image de conteneur, par exemple
Remplacez la configuration du service en utilisant la commande suivante :
gcloud run services replace service.yaml
Configurer la commande entrypoint du conteneur et ses arguments
Toute modification 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.
Lorsque Knative serving démarre un conteneur, il exécute la commande entrypoint par défaut de l'image.
Pour spécifier ou remplacer la commande entrypoint et les arguments définis dans l'image du conteneur, vous pouvez configurer les paramètres command
et args
dans la configuration du conteneur Knative serving.
Vous pouvez choisir de configurer des commandes entrypoint, des arguments ou les deux. La commande que vous spécifiez dans Knative serving remplace les commandes entrypoint définies dans l'image du conteneur. Si vous choisissez de ne spécifier que des arguments, ceux-ci sont transmis à la commande entrypoint définie dans l'image du conteneur et exécutés par celle-ci.
Dans Knative serving, vous pouvez configurer des commandes entrypoint et des arguments à l'aide de la console Google Cloud, de Google Cloud CLI ou d'un fichier YAML lorsque vous déployez un nouveau service, mettez à jour un service existant ou déployez une révision :
Console
Accédez à Knative serving dans la console Google Cloud :
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.
Sous Paramètres avancés, cliquez sur Conteneur.
Spécifiez la commande "entrypoint" et ses arguments que le conteneur doit exécuter au démarrage.
Cliquez sur Suivant pour passer à la section suivante.
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.
Cliquez sur Créer pour déployer l'image sur Knative serving et attendez la fin du déploiement.
Ligne de commande
Options des paramètres de commande
-
Pour spécifier un argument contenant une virgule (
,
), vous devez échapper chaqueARG
avec un délimiteur différent. Par exemple, si vous utilisez@
:--args "^@^arg,with,commas@anotherarg@ARG3..."
-
Pour spécifier plusieurs ensembles de paires clé/valeur, vous pouvez spécifier plusieurs paramètres pour plus de lisibilité. Exemple :
[...] --args "
ARG
1" \ --args "ARG
2" \ --args "ARG
3" -
Pour utiliser des signes "égal" (
=
) dans vos arguments, vous devez spécifier chaque argument au format suivant :gcloud run services ... \ --args "--repo-allowlist=github.com/example/example_demo" \ --args "--gh-webhook-secret=XX"
Pour les services existants, mettez à jour la commande entrypoint en exécutant la commande
gcloud run services update
avec les paramètres suivants :gcloud run services update SERVICE --command COMMAND --args ARG1,ARG2,ARG-N
Remplacez :
- SERVICE par le nom du service ;
- COMMAND par la commande que vous souhaitez que le conteneur exécute au démarrage (facultatif) ;
- ARG1 par un ou plusieurs arguments pour la commande exécutée au démarrage (facultatif). Utilisez une liste en séparant chaque argument par une virgule. Mettre en forme vos arguments
Pour les nouveaux services, définissez la commande entrypoint en exécutant la commande
gcloud run deploy
avec le paramètre--command
:gcloud run deploy SERVICE --image=IMAGE_URL --command COMMAND --args ARG1,ARG2,ARG-N
Remplacez :
- SERVICE par le nom du service ;
- IMAGE_URL par une référence à l'image de conteneur, par exemple
gcr.io/cloudrun/hello
; - COMMAND par la commande que vous souhaitez que le conteneur exécute au démarrage (facultatif) ;
- ARG1 par un ou plusieurs arguments pour la commande exécutée au démarrage (facultatif). Utilisez une liste en séparant chaque argument par une virgule. Mettre en forme vos arguments
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.
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 de diffusion Knative.
Dans votre fichier local, mettez à jour les attributs
command
etargs
:apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL command: - COMMAND args: - "ARG1" - "ARG-N"
Remplacez :
- IMAGE_URL par une référence à l'image de conteneur, par exemple
gcr.io/cloudrun/hello
; - COMMAND par la commande que vous souhaitez que le conteneur exécute au démarrage (facultatif) ;
- ARG1 par un ou plusieurs arguments pour la commande exécutée au démarrage (facultatif). Utilisez une liste en séparant chaque argument par une virgule.
- IMAGE_URL par une référence à l'image de conteneur, par exemple
Remplacez la configuration du service en utilisant la commande suivante :
gcloud run services replace service.yaml