Configura contenedores

Obtén información sobre cómo configurar el puerto de contenedor y el comando y los argumentos del punto de entrada del contenedor.

Cuando Cloud Run for Anthos en Google Cloud inicia un contenedor, ejecuta el comando entrypoint predeterminado de la imagen y los argumentos de comando predeterminados. 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

  1. Implementar en Cloud Run for Anthos en Google Cloud

  2. 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.

  3. En Configuración avanzada, haz clic en Contenedor.

    image

  4. 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 entorno PORT.

  5. Haz clic en Crear o Implementar.

Línea de comandos

  • Para servicios existentes, actualiza una configuración de puerto mediante la ejecución del comando gcloud kuberun core services update con los siguientes parámetros:

    gcloud kuberun core 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 servicios nuevos, configura el puerto mediante la ejecución del comando gcloud kuberun core services create con el parámetro --port:

    gcloud kuberun core services create 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/myproject/my-image:latest
    • PORT por el puerto al que se envían las solicitudes Ten en cuenta que el puerto predeterminado es 8080

YAML

Si deseas usar un archivo YAML para modificar la configuración de tu servicio existente, obtén una copia de la configuración actual, modifica y guarda los cambios en un archivo local y, luego, implementa esos cambios en tu servicio.

  1. Muestra como YAML y, luego, copia la configuración de tu servicio en un archivo local, por ejemplo service.yaml:

    gcloud kuberun core services describe SERVICE --format yaml

    Reemplaza SERVICE por el nombre de tu servicio de Cloud Run for Anthos.

  2. 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/myproject/my-image:latest
    • PORT por el puerto al que se envían las solicitudes
  3. Reemplaza el servicio por la configuración nueva mediante el siguiente comando:

    gcloud beta 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 Cloud Run para Anthos en Google Cloud inicia un contenedor, ejecuta el comando de punto de entrada predeterminado de la imagen. Para especificar o anular el comando y los argumentos del punto de entrada existentes que se definen en la imagen del contenedor, puedes establecer la configuración command y args en la configuración del contenedor de Cloud Run for Anthos.

Puedes configurar comandos, argumentos o ambos. El comando que especifiques en Cloud Run for Anthos anula cualquier comando de punto de entrada que se define en la imagen de contenedor. Si eliges especificar solo argumentos, se pasan y ejecutan el comando de punto de entrada definido en la imagen del contenedor.

En Cloud Run for Anthos, puedes configurar argumentos y argumentos del punto de entrada con Cloud Console, la herramientagcloud herramienta de línea de comandos, o un archivo YAML cuando implementas una nuevaservicio , actualizar un servicio existente o implementar unrevisión:

Console

  1. Implementar en Cloud Run for Anthos en Google Cloud

  2. 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.

  3. En Configuración avanzada, haz clic en Contenedor.

    image

  4. Especifica el comando y los argumentos del punto de entrada que deseas que el contenedor se ejecute durante el inicio.

  5. Haz clic en Crear o Implementar.

Línea de comandos

Opciones de parámetro del comando

  • Para especificar un argumento que contiene una coma (,), debes escapar cada ARG 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 "ARG1" \
    --args "ARG2" \
    --args "ARG3"
    
  • Si deseas usar signos igual (=) en tus argumentos, debes especificar cada argumento con el siguiente formato:
    gcloud kuberun core services ...  \
      --args "--repo-allowlist=github.com/example/example_demo" \
      --args "--gh-webhook-secret=XX"
    

  • Para servicios existentes, actualiza el comando entrypoint mediante la ejecución del comando gcloud kuberun core services update con los siguientes parámetros:

    gcloud kuberun core services update SERVICE --command COMMAND --args ARG1,ARG2,ARG-N
    

    Reemplaza lo siguiente:

    • SERVICE por el nombre del servicio
    • De manera opcional, COMMAND con el comando que deseas que el contenedor se ejecute durante el inicio.
    • Opcional: ARG1 con 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 servicios nuevos, configura el comando entrypoint mediante la ejecución del comando gcloud kuberun core services create con el parámetro --command:

    gcloud kuberun core services create 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/myproject/my-image:latest
    • De manera opcional, COMMAND con el comando que deseas que el contenedor se ejecute durante el inicio.
    • Opcional: ARG1 con 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

Si deseas usar un archivo YAML para modificar la configuración de tu servicio existente, obtén una copia de la configuración actual, modifica y guarda los cambios en un archivo local y, luego, implementa esos cambios en tu servicio.

  1. Muestra como YAML y, luego, copia la configuración de tu servicio en un archivo local, por ejemplo service.yaml:

    gcloud kuberun core services describe SERVICE --format yaml

    Reemplaza SERVICE por el nombre de tu servicio de Cloud Run for Anthos.

  2. En tu archivo local, actualiza los atributos command y args:

    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/myproject/my-image:latest
    • De manera opcional, COMMAND con el comando que deseas que el contenedor se ejecute durante el inicio.
    • Opcional: ARG1 con 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.
  3. Reemplaza el servicio por la configuración nueva mediante el comando siguiente:

    gcloud beta run services replace service.yaml