Aprende a configurar el puerto del contenedor, el comando y los argumentos del punto de entrada del contenedor.
Cuando Knative serving inicia un contenedor, ejecuta el comando entrypoint predeterminado y los argumentos del comando predeterminados de la imagen. Si deseas anular el entrypoint predeterminado y los argumentos del comando 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 que se pasan a ese comando.
Configura el puerto del contenedor
Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.
El contenedor debe escuchar en el puerto que define la variable de entorno PORT
en lugar de un puerto codificado específico.
Sin embargo, si esto no es posible, puedes configurar desde qué puerto se envían las solicitudes al contenedor:
Console
Ve a Knative serving en la consola de Google Cloud:
Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, haz clic en IMPLEMENTAR Y EDITAR UNA NUEVA REVISIÓN.
En Configuración avanzada, haz clic en Contenedor.
Especifica el puerto al que deseas que se envíen las solicitudes, si no es el valor predeterminado de
8080
. Con esto también se establece la variable de entornoPORT
.Haz clic en Siguiente para pasar a la siguiente sección.
En la sección Configura la forma en que se activa el servicio, selecciona la conectividad que deseas usar para invocar el servicio.
Haz clic en Crear para implementar la imagen en Knative serving y espera a que termine la implementación.
Línea de comandos
En servicios existentes, actualiza una configuración de puerto mediante la ejecución del comando
gcloud run services update
con los siguientes parámetros:gcloud run services update SERVICE --port PORT
Reemplaza lo siguiente:
- SERVICE por el nombre del servicio
- PORT por el puerto al que se envían las solicitudes. Ten en cuenta que el puerto predeterminado es
8080
Para los servicios nuevos, ejecuta el comando
gcloud run deploy
con el parámetro--port
a fin de configurar el puerto:gcloud run deploy SERVICE --image=IMAGE_URL --port PORT
Reemplaza lo siguiente:
- SERVICE por el nombre del servicio
- IMAGE_URL por una referencia a la imagen del contenedor, como
gcr.io/cloudrun/hello
- PORT por el puerto al que deseas enviar solicitudes. El puerto predeterminado es
8080
.
YAML
Puedes descargar la configuración de un servicio existente en un archivo YAML con el comando gcloud run services describe
mediante la marca --format=export
.
Luego, puedes modificar ese archivo YAML e implementar esos cambios con el comando gcloud run services replace
.
Debes asegurarte de modificar solo los atributos especificados.
Descarga la configuración del servicio en un archivo llamado
service.yaml
en el lugar de trabajo local:gcloud run services describe SERVICE --format export > service.yaml
Reemplaza SERVICE por el nombre de tu servicio de Knative serving.
En tu archivo local, actualiza el atributo
containerPort:
:apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL ports: - containerPort: PORT
Reemplazar
- IMAGE_URL por una referencia a la imagen del contenedor, como
gcr.io/cloudrun/hello
- PORT por el puerto al que deseas enviar solicitudes.
- IMAGE_URL por una referencia a la imagen del contenedor, como
Reemplaza el servicio por la configuración nueva mediante el comando siguiente:
gcloud run services replace service.yaml
Configura el comando y los argumentos del entrypoint del contenedor
Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.
Cuando Knative serving inicia un contenedor, ejecuta el comando entrypoint predeterminado de la imagen.
Para especificar o anular el comando y los argumentos de entrypoint existentes que se definen en la imagen del contenedor, puedes establecer la configuración command
y args
en la configuración del contenedor de Knative serving.
Puedes elegir configurar comandos de entrypoint, argumentos o ambos. El comando que especificas en Knative serving anula cualquier comando de entrypoint que se define en la imagen de contenedor. Si eliges especificar solo los argumentos, se pasan y ejecutan el comando de entrypoint definido en la imagen del contenedor.
En Knative serving, puedes configurar comandos y argumentos de punto de entrada mediante la consola de Google Cloud, Google Cloud CLI o un archivo YAML cuando implementas un nuevo elemento.servicio, actualizas un servicio existente o implementas una revisión:
Console
Ve a Knative serving en la consola de Google Cloud:
Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, haz clic en IMPLEMENTAR Y EDITAR UNA NUEVA REVISIÓN.
En Configuración avanzada, haz clic en Contenedor.
Especifica el comando y los argumentos de entrypoint que deseas que el contenedor ejecute durante el inicio.
Haz clic en Siguiente para pasar a la siguiente sección.
En la sección Configura la forma en que se activa el servicio, selecciona la conectividad que deseas usar para invocar el servicio.
Haz clic en Crear para implementar la imagen en Knative serving y espera a que termine la implementación.
Línea de comandos
Opciones de parámetros de comando
-
Para especificar un argumento que contenga una coma (
,
), debes escapar cadaARG
con un delimitador diferente. Por ejemplo, si usas@
:--args "^@^arg,with,commas@anotherarg@ARG3..."
-
A fin de especificar varios conjuntos de pares clave-valor, puedes especificar varios parámetros para facilitar la lectura. Ejemplo:
[...] --args "
ARG
1" \ --args "ARG
2" \ --args "ARG
3" -
Para usar el signo igual (
=
) en tus argumentos, debes especificar cada uno con el siguiente formato:gcloud run services ... \ --args "--repo-allowlist=github.com/example/example_demo" \ --args "--gh-webhook-secret=XX"
Para los servicios existentes, actualiza el comando entrypoint mediante la ejecución del comando
gcloud run services update
con los siguientes parámetros:gcloud run services update SERVICE --command COMMAND --args ARG1,ARG2,ARG-N
Reemplaza lo siguiente:
- SERVICE por el nombre del servicio
- Opcional: COMMAND por el comando que deseas que ejecute el contenedor durante el inicio.
- Opcional: ARG1 por uno o más argumentos para el comando que se ejecuta durante el inicio. Usa una lista delimitada por comas para varios argumentos. Cómo dar formato a tus argumentos.
Para los servicios nuevos, ejecuta el comando
gcloud run deploy
con el parámetro--command
a fin de configurar el comando entrypoint:gcloud run deploy SERVICE --image=IMAGE_URL --command COMMAND --args ARG1,ARG2,ARG-N
Reemplaza lo siguiente:
- SERVICE por el nombre del servicio
- IMAGE_URL por una referencia a la imagen del contenedor, como
gcr.io/cloudrun/hello
- Opcional: COMMAND por el comando que deseas que ejecute el contenedor durante el inicio.
- Opcional: ARG1 por uno o más argumentos para el comando que se ejecuta durante el inicio. Usa una lista delimitada por comas para varios argumentos. Cómo dar formato a tus argumentos.
YAML
Puedes descargar la configuración de un servicio existente en un archivo YAML con el comando gcloud run services describe
mediante la marca --format=export
.
Luego, puedes modificar ese archivo YAML e implementar esos cambios con el comando gcloud run services replace
.
Debes asegurarte de modificar solo los atributos especificados.
Descarga la configuración del servicio en un archivo llamado
service.yaml
en el lugar de trabajo local:gcloud run services describe SERVICE --format export > service.yaml
Reemplaza SERVICE por el nombre de tu servicio de Knative serving.
En el archivo local, actualiza los atributos
command
yargs
:apiVersion: serving.knative.dev/v1 kind: Service spec: template: spec: containers: - image: IMAGE_URL command: - COMMAND args: - "ARG1" - "ARG-N"
Reemplaza lo siguiente:
- IMAGE_URL por una referencia a la imagen del contenedor, como
gcr.io/cloudrun/hello
- Opcional: COMMAND por el comando que deseas que ejecute el contenedor durante el inicio.
- Opcional: ARG1 por uno o más argumentos para el comando que se ejecuta durante el inicio. Usa una lista delimitada por comas para más de un argumento.
- IMAGE_URL por una referencia a la imagen del contenedor, como
Reemplaza el servicio por la configuración nueva mediante el comando siguiente:
gcloud run services replace service.yaml