Consulta cómo configurar el puerto del contenedor y el comando y los argumentos del punto de entrada del contenedor.
Cuando Knative Serving inicia un contenedor, ejecuta el comando de punto de entrada predeterminado de la imagen y los argumentos de comando predeterminados. Si quieres anular el punto de entrada y los argumentos de comando predeterminados de la imagen, puedes usar los campos command
y args
en la configuración del contenedor. El campo command
especifica el comando real que ejecuta el contenedor. El campo args
especifica los argumentos transferidos a ese comando.
Configurar el puerto del contenedor
Cualquier cambio en la configuración conlleva la creación de una nueva revisión. Las revisiones posteriores también recibirán automáticamente este ajuste de configuración, a menos que hagas cambios explícitos para modificarlo.
El contenedor debe usar el puerto definido por la variable de entorno PORT
en lugar de un puerto específico codificado.
Sin embargo, si no es posible, puedes configurar el puerto al que se envían las solicitudes al contenedor:
Consola
Ve a Knative Serving en la Google Cloud consola:
Haga clic en Crear servicio si va a configurar un servicio nuevo que va a implementar. Si va a configurar un servicio que ya tiene, haga clic en él y, a continuación, en Editar y desplegar nueva revisión.
En Configuración avanzada, haga clic en Contenedor.
Especifique el puerto al que quiere que se envíen las solicitudes, si no es el valor predeterminado
8080
. También se define la variable de entornoPORT
.Haz clic en Siguiente para ir a la siguiente sección.
En la sección Configurar la activación del servicio, selecciona la conectividad que quieras usar para invocar el servicio.
Haz clic en Crear para desplegar la imagen en Knative Serving y espera a que se complete el despliegue.
Línea de comandos
En el caso de los servicios que ya tengas, actualiza la configuración de un puerto ejecutando el comando
gcloud run services update
con los siguientes parámetros:gcloud run services update SERVICE --port PORT
Sustituye:
- SERVICE con el nombre del servicio.
- PORT con el puerto al que enviar las solicitudes. Ten en cuenta que el puerto predeterminado es
8080
.
En el caso de los servicios nuevos, define el puerto ejecutando el comando
gcloud run deploy
con el parámetro--port
:gcloud run deploy SERVICE --image=IMAGE_URL --port PORT
Sustituye:
- SERVICE con el nombre del servicio.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
gcr.io/cloudrun/hello
. - PORT con el puerto al que quieras enviar solicitudes. El puerto predeterminado es
8080
.
YAML
Puedes descargar la configuración de un servicio en un archivo YAML con el comando gcloud run services describe
mediante la marca --format=export
.
A continuación, puedes modificar ese archivo YAML e implementar
los cambios con el comando gcloud run services replace
.
Debe asegurarse de modificar solo los atributos especificados.
Descarga la configuración de tu servicio en un archivo llamado
service.yaml
en el espacio de trabajo local:gcloud run services describe SERVICE --format export > service.yaml
Sustituye SERVICE por el nombre de tu servicio de Knative.
En su archivo local, actualice el atributo
containerPort:
:apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL ports: - containerPort: PORT
Sustituir
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
gcr.io/cloudrun/hello
. - PORT con el puerto al que quieras enviar solicitudes.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
Sustituye el servicio por su nueva configuración con el siguiente comando:
gcloud run services replace service.yaml
Configurar el comando y los argumentos del punto de entrada del contenedor
Cualquier cambio en la configuración conlleva la creación de una nueva revisión. Las revisiones posteriores también recibirán automáticamente este ajuste de configuración, a menos que hagas cambios explícitos para modificarlo.
Cuando Knative Serving inicia un contenedor, ejecuta el comando de punto de entrada predeterminado de la imagen.
Para especificar o anular el comando y los argumentos de punto de entrada que se definen en la imagen del contenedor, puedes configurar los ajustes command
y args
en la configuración del contenedor de servicio de Knative.
Puedes configurar comandos de punto de entrada, argumentos o ambos. El comando que especifiques en Knative Serving anula cualquier comando de punto de entrada que se haya definido en la imagen de contenedor. Si solo especificas argumentos, estos se transfieren y se ejecutan mediante el comando de punto de entrada definido en la imagen del contenedor.
En Knative Serving, puedes configurar comandos y argumentos de punto de entrada mediante la Google Cloud consola, la CLI de Google Cloud o un archivo YAML cuando implementes un servicio nuevo, actualices un servicio ya implementado o implementes una revisión:
Consola
Ve a Knative Serving en la Google Cloud consola:
Haga clic en Crear servicio si va a configurar un servicio nuevo que va a implementar. Si va a configurar un servicio que ya tiene, haga clic en él y, a continuación, en Editar y desplegar nueva revisión.
En Configuración avanzada, haga clic en Contenedor.
Especifica el comando y los argumentos del punto de entrada que quieres que ejecute el contenedor durante el inicio.
Haz clic en Siguiente para ir a la siguiente sección.
En la sección Configurar la activación del servicio, selecciona la conectividad que quieras usar para invocar el servicio.
Haz clic en Crear para desplegar la imagen en Knative Serving y espera a que se complete el despliegue.
Línea de comandos
Opciones de parámetros de comandos
-
Para especificar un argumento que contenga una coma (
,
), debes aplicar un formato de escape a cadaARG
con un delimitador diferente. Por ejemplo, si usas@
:--args "^@^arg,with,commas@anotherarg@ARG3..."
-
Para especificar varios conjuntos de pares clave-valor, puedes especificar varios parámetros para mejorar la legibilidad. Ejemplo:
[...] --args "
ARG
1" \ --args "ARG
2" \ --args "ARG
3" -
Para usar signos igual (
=
) en los argumentos, debes especificar cada argumento con el siguiente formato:gcloud run services ... \ --args "--repo-allowlist=github.com/example/example_demo" \ --args "--gh-webhook-secret=XX"
En el caso de los servicios que ya tengas, actualiza el comando de punto de entrada ejecutando el comando
gcloud run services update
con los siguientes parámetros:gcloud run services update SERVICE --command COMMAND --args ARG1,ARG2,ARG-N
Sustituye:
- SERVICE con el nombre del servicio.
- Opcional: COMMAND con el comando que quieras que ejecute el contenedor durante el inicio.
- Opcional: ARG1 con uno o varios argumentos para el comando que se ejecuta durante el inicio. Usa una lista delimitada por comas para incluir varios argumentos. Cómo dar formato a los argumentos.
En el caso de los servicios nuevos, define el comando de punto de entrada ejecutando el comando
gcloud run deploy
con el parámetro--command
:gcloud run deploy SERVICE --image=IMAGE_URL --command COMMAND --args ARG1,ARG2,ARG-N
Sustituye:
- SERVICE con el nombre del servicio.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
gcr.io/cloudrun/hello
. - Opcional: COMMAND con el comando que quieras que ejecute el contenedor durante el inicio.
- Opcional: ARG1 con uno o varios argumentos para el comando que se ejecuta durante el inicio. Usa una lista delimitada por comas para incluir varios argumentos. Cómo dar formato a los argumentos.
YAML
Puedes descargar la configuración de un servicio en un archivo YAML con el comando gcloud run services describe
mediante la marca --format=export
.
A continuación, puedes modificar ese archivo YAML e implementar
los cambios con el comando gcloud run services replace
.
Debe asegurarse de modificar solo los atributos especificados.
Descarga la configuración de tu servicio en un archivo llamado
service.yaml
en el espacio de trabajo local:gcloud run services describe SERVICE --format export > service.yaml
Sustituye SERVICE por el nombre de tu servicio de Knative.
En el archivo local, actualice los atributos
command
yargs
:apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL command: - COMMAND args: - "ARG1" - "ARG-N"
Sustituye:
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
gcr.io/cloudrun/hello
. - Opcional: COMMAND con el comando que quieras que ejecute el contenedor durante el inicio.
- Opcional: ARG1 con uno o varios argumentos para el comando que se ejecuta durante el inicio. Si hay más de un argumento, usa una lista delimitada por comas.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
Sustituye el servicio por su nueva configuración con el siguiente comando:
gcloud run services replace service.yaml