En esta página se muestra cómo desplegar imágenes de contenedor en un nuevo grupo de trabajadores de Cloud Run o en una nueva revisión de un grupo de trabajadores de Cloud Run.
Los grupos de trabajadores son un recurso de Cloud Run diseñado específicamente para realizar tareas en segundo plano continuas. A diferencia de los servicios de Cloud Run, los grupos de trabajadores no tienen un punto de conexión o una URL con balanceo de carga y no admiten el autoescalado.
Para ver un ejemplo de cómo desplegar un nuevo grupo de trabajadores, consulta la guía de inicio rápido para desplegar un grupo de trabajadores de ejemplo.
Roles obligatorios
Para obtener los permisos que necesitas para desplegar grupos de trabajadores de Cloud Run, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Desarrollador de Cloud Run (
roles/run.developer
) en el grupo de trabajadores de Cloud Run -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad que usan tus grupos de trabajadores para interactuar con otros servicios de Google Cloud -
Lector de Artifact Registry (
roles/artifactregistry.reader
) en el repositorio de Artifact Registry de la imagen de contenedor implementada
Para ver una lista de los roles y permisos de gestión de identidades y accesos asociados a Cloud Run, consulta los artículos sobre roles de gestión de identidades y accesos de Cloud Run y permisos de gestión de identidades y accesos de Cloud Run. Si tu grupo de trabajadores de Cloud Run interactúa con APIs deGoogle Cloud , como las bibliotecas de cliente de Cloud, consulta la guía de configuración de identidades de servicio. Para obtener más información sobre cómo conceder roles, consulta los artículos sobre permisos de implementación y gestión del acceso.
Registros e imágenes de contenedores admitidos
Puedes usar directamente imágenes de contenedor almacenadas en Artifact Registry o Docker Hub. Google recomienda usar Artifact Registry. Las imágenes de Docker Hub se almacenan en caché durante un máximo de una hora.
Puedes usar imágenes de contenedor de otros registros públicos o privados (como JFrog Artifactory, Nexus o GitHub Container Registry) configurando un repositorio remoto de Artifact Registry.
Solo deberías usar Docker Hub para desplegar imágenes de contenedor populares, como las imágenes oficiales de Docker o las imágenes de OSS patrocinadas por Docker. Para aumentar la disponibilidad, Google recomienda implementar estas imágenes de Docker Hub mediante un repositorio remoto de Artifact Registry.
Cloud Run no admite capas de imágenes de contenedor de más de 9,9 GB al implementar desde Docker Hub o un repositorio remoto de Artifact Registry con un registro externo.
Desplegar grupos de trabajadores
Puedes desplegar grupos de trabajadores de las siguientes formas:
- Desplegar un nuevo grupo de trabajadores
- Actualizar un grupo de trabajadores
- Implementar imágenes de otros Google Cloud proyectos
- Implementar varios contenedores (sidecars) en un grupo de trabajadores
Desplegar un nuevo grupo de trabajadores
Puedes especificar una imagen de contenedor con una etiqueta (por ejemplo, us-docker.pkg.dev/my-project/container/my-image:latest
) o con un digest exacto (por ejemplo, us-docker.pkg.dev/my-project/container/my-image@sha256:41f34ab970ee...
).
Al implementar un grupo de trabajadores por primera vez, se crea su primera revisión. Ten en cuenta que las revisiones son inmutables. Si despliega desde una etiqueta de imagen de contenedor, se resolverá en un digest y la revisión siempre usará ese digest concreto.
Sigue las instrucciones con la Google Cloud consola, la CLI de Google Cloud o Terraform.
Consola
En la Google Cloud consola, ve a Cloud Run:
Selecciona Grupos de trabajadores en el menú y haz clic en Implementar contenedor para que se muestre el formulario Crear grupo de trabajadores.
En el formulario, especifica la imagen de contenedor.
Introduce el nombre del grupo de trabajadores. Los nombres de los grupos de trabajadores deben tener 49 caracteres como máximo y ser únicos por región y proyecto. No puedes usar el mismo nombre que un nombre de servicio de tu proyecto. El nombre del grupo de trabajadores no se puede cambiar más adelante y es público.
Selecciona la región en la que quieres que se encuentre el trabajador. El selector de regiones indica el nivel de precios y destaca las regiones con el menor impacto de carbono.
En Escalado, especifica el número de instancias del grupo de trabajadores.
Haga clic en Contenedores, Volúmenes, Redes y Seguridad para definir otros ajustes opcionales en las pestañas correspondientes:
Cuando hayas terminado de configurar tu grupo de trabajadores, haz clic en Crear para desplegar la imagen en Cloud Run y espera a que se complete el despliegue.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para desplegar una imagen de contenedor de un grupo de trabajadores, sigue estos pasos:
Ejecuta el siguiente comando:
gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL
Haz los cambios siguientes:
- WORKER_POOL: el nombre del grupo de trabajadores en el que quieras hacer la implementación. Si el grupo de trabajadores aún no existe, este comando lo crea durante la implementación. Puedes omitir este parámetro por completo, pero se te pedirá el nombre del grupo de trabajadores si lo haces. Los nombres de los grupos de trabajadores deben tener 49 caracteres como máximo, ser únicos por región y proyecto, y no coincidir con el nombre de ningún servicio de tu proyecto.
- IMAGE_URL: referencia a la imagen del contenedor que contiene el grupo de trabajadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. Ten en cuenta que, si no proporcionas la marca--image
, el comando de implementación intentará implementar desde el código fuente.
Espera a que finalice la implementación. Una vez completado el proceso, Cloud Run muestra un mensaje de confirmación junto con la información de la revisión del grupo de trabajadores desplegado.
Para desplegar en una ubicación distinta de la que has definido con las propiedades
run/region
gcloud
, usa lo siguiente:gcloud beta run worker-pools deploy WORKER_POOL --region REGION
- WORKER_POOL: el nombre del grupo de trabajadores.
- REGION: la región Google Cloud , por ejemplo,
europe-west1
. - IMAGE_URL: referencia a la imagen del contenedor que contiene el grupo de trabajadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
.
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
launch_stage = "BETA"
template {
containers {
image = "IMAGE_URL"
}
}
}
Haz los cambios siguientes:
Ubicaciones de Cloud Run
Cloud Run es regional, lo que significa que la infraestructura que ejecuta tus servicios de Cloud Run se encuentra en una región específica y Google la gestiona para que esté disponible de forma redundante en todas las zonas de esa región.
Cumplir tus requisitos de latencia, disponibilidad o durabilidad son factores primordiales para seleccionar la región en la que se ejecutan tus servicios de Cloud Run.
Por lo general, puedes seleccionar la región más cercana a tus usuarios, pero debes tener en cuenta la ubicación de los otros Google Cloudproductos que utiliza tu servicio de Cloud Run.
Usar Google Cloud productos juntos en varias ubicaciones puede afectar a la latencia y al coste de tu servicio.
Cloud Run está disponible en las siguientes regiones:
Con sujeción a los precios del nivel 1
asia-east1
(Taiwán)asia-northeast1
(Tokio)asia-northeast2
(Osaka)asia-south1
(Bombay, la India)europe-north1
(Finlandia)CO2 bajo
europe-north2
(Estocolmo)CO2 bajo
europe-southwest1
(Madrid)CO2 bajo
europe-west1
(Bélgica)CO2 bajo
europe-west4
(Países Bajos)CO2 bajo
europe-west8
(Milán)europe-west9
(París)CO2 bajo
me-west1
(Tel Aviv)northamerica-south1
(México)us-central1
(Iowa)CO2 bajo
us-east1
(Carolina del Sur)us-east4
(Norte de Virginia)us-east5
(Columbus)us-south1
(Dallas)CO2 bajo
us-west1
(Oregón)CO2 bajo
Con sujeción a los precios del nivel 2
africa-south1
(Johannesburgo)asia-east2
(Hong Kong)asia-northeast3
(Seúl, Corea del Sur)asia-southeast1
(Singapur)asia-southeast2
(Yakarta)asia-south2
(Delhi, la India)australia-southeast1
(Sídney)australia-southeast2
(Melbourne)europe-central2
Varsovia (Polonia)europe-west10
(Berlín)CO2 bajo
europe-west12
(Turín)europe-west2
(Londres, Reino Unido)CO2 bajo
europe-west3
(Fráncfort, Alemania)europe-west6
(Zúrich, Suiza)CO2 bajo
me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal)CO2 bajo
northamerica-northeast2
(Toronto)CO2 bajo
southamerica-east1
(São Paulo, Brasil)CO2 bajo
southamerica-west1
(Santiago, Chile)CO2 bajo
us-west2
(Los Ángeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Si ya has creado un servicio de Cloud Run, puedes ver la región en el panel de control de Cloud Run de la Google Cloud consola.
Desplegar una nueva revisión de un grupo de trabajadores
Ten en cuenta que, si cambias los ajustes de configuración de un grupo de trabajadores, se creará una nueva revisión, aunque no se haya modificado la imagen del contenedor. Cada revisión creada es inmutable.
Cloud Run importa la imagen de contenedor cuando se despliega. Cloud Run conserva esta copia de la imagen de contenedor mientras la utilice una revisión.
Sigue estas instrucciones con la Google Cloud consola, la CLI de Google Cloud o Terraform:
Consola
En la Google Cloud consola, ve a Cloud Run:
Selecciona Grupos de trabajadores en el menú, elige el grupo de trabajadores que quieras actualizar y haz clic en Editar e implementar nueva revisión para que se muestre el formulario Implementar revisión de grupo de trabajadores.
Si es necesario, especifique la URL de la nueva imagen del contenedor que se va a implementar.
Configure el contenedor según sea necesario.
Si es necesario, actualiza el número de instancias del grupo de trabajadores.
Si es necesario, haz clic en Contenedores, Volúmenes, Redes y Seguridad para definir otros ajustes opcionales en las pestañas correspondientes:
Cuando hayas terminado de actualizar el grupo de trabajadores, haz clic en Implementar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para desplegar una imagen de contenedor, sigue estos pasos:
Ejecuta el comando:
gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL
Haz los cambios siguientes:
- WORKER_POOL: el nombre del grupo de trabajadores en el que quieras hacer la implementación. Si el grupo de trabajadores aún no existe, este comando lo crea durante la implementación. Puedes omitir este parámetro por completo, pero se te pedirá el nombre del grupo de trabajadores si lo haces. Los nombres de los grupos de trabajadores deben tener 49 caracteres como máximo, ser únicos por región y proyecto, y no coincidir con el nombre de ningún servicio de tu proyecto.
- IMAGE_URL: referencia a la imagen del contenedor que contiene el grupo de trabajadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. Ten en cuenta que, si no proporcionas la marca--image
, el comando de implementación intentará implementar desde el código fuente.
El sufijo de revisión se asigna automáticamente a las revisiones nuevas. Si quieres proporcionar tu propio sufijo de revisión, usa el parámetro
--revision-suffix
de la CLI de gcloud.Espera a que finalice la implementación. Una vez completado el proceso, Cloud Run muestra un mensaje de confirmación junto con la información de la revisión del grupo de trabajadores desplegado.
Cambia el archivo de configuración.
Aplica la configuración de Terraform:
terraform apply
Para confirmar que quieres aplicar las acciones descritas, escribe
yes
.
Terraform
Asegúrate de haber configurado Terraform tal como se describe en el ejemplo Desplegar un nuevo grupo de trabajadores.
Implementar imágenes de otros proyectos Google Cloud
Para desplegar imágenes de otros proyectos, tú o tu administrador debéis conceder los roles de gestión de identidades y accesos necesarios a la cuenta de implementación y al agente de servicio de Cloud Run. Google Cloud
Para consultar los roles necesarios de la cuenta de implementador, consulta Roles necesarios.
Para conceder los roles necesarios al agente de servicio de Cloud Run, consulta las siguientes instrucciones:
En la Google Cloud consola, abre el proyecto de tu grupo de trabajadores de Cloud Run.
Selecciona Incluir concesiones de roles proporcionadas por Google.
Copia el correo del agente de servicio de Cloud Run. Tiene el sufijo @serverless-robot-prod.iam.gserviceaccount.com
Abre el proyecto propietario del registro de contenedores que quieras usar.
Haga clic en Añadir para añadir un nuevo principal.
En el campo Nuevos principales, pega el correo de la cuenta de servicio que has copiado anteriormente.
En el menú desplegable Seleccionar un rol, si usas Container Registry, selecciona el rol Storage -> Visor de objetos de Storage. Si usas Artifact Registry, selecciona el rol Artifact Registry -> Lector de Artifact Registry.
Despliega la imagen de contenedor en el proyecto que contiene tu grupo de trabajadores de Cloud Run.
Desplegar imágenes de otros registros
Para desplegar imágenes de contenedor públicas o privadas que no estén almacenadas en Artifact Registry o Docker Hub, configura un repositorio remoto de Artifact Registry.
Los repositorios remotos de Artifact Registry te permiten hacer lo siguiente:
- Despliega cualquier imagen de contenedor pública, como GitHub Container Registry (
ghcr.io
). - Despliega imágenes de contenedor de repositorios privados que requieran autenticación, como JFrog Artifactory o Nexus.
Si no puedes usar un repositorio remoto de Artifact Registry, puedes extraer e insertar imágenes de contenedor en Artifact Registry temporalmente desplegándolas en Cloud Run con docker push
. Cloud Run importa la imagen de contenedor durante el despliegue y, después, puedes eliminar la imagen de Artifact Registry.
Desplegar varios contenedores (sidecars) en un grupo de trabajadores
En una implementación de Cloud Run con sidecars, hay un contenedor de grupo de trabajo principal y uno o varios contenedores sidecar. Los sidecars pueden comunicarse entre sí y con el contenedor del grupo de trabajadores mediante un puerto localhost. El puerto localhost varía en función de los contenedores que utilices.
Puedes implementar hasta 10 contenedores por instancia, incluido el contenedor del grupo de trabajadores. Todos los contenedores de una instancia comparten el mismo espacio de nombres de red y también pueden compartir archivos mediante un volumen compartido en memoria.
Puedes requerir que todas las implementaciones usen un sidecar específico creando políticas de organización personalizadas.
Desplegar un servicio con contenedores sidecar
Sigue estas instrucciones para desplegar varios contenedores en un grupo de trabajadores de Cloud Run con la CLI de Google Cloud o Terraform:
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para desplegar varios contenedores en un grupo de trabajadores, ejecuta el siguiente comando:
gcloud beta run worker-pools deploy WORKER_POOL \ --container WORKER_POOL_CONTAINER_NAME \ --image='WORKER_POOL_IMAGE' \ --container SIDECAR_CONTAINER_NAME \ --image='SIDECAR_IMAGE'
Haz los cambios siguientes:
- WORKER_POOL: el nombre del grupo de trabajadores en el que vas a implementar el servicio. Si omite este parámetro, se le pedirá el nombre del grupo de trabajadores.
- WORKER_POOL_CONTAINER_NAME: nombre del grupo de trabajadores del contenedor.
- IMAGE_URL: referencia a la imagen del contenedor que contiene el grupo de trabajadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - SIDECAR_CONTAINER_NAME: el nombre del contenedor sidecar, por ejemplo,
sidecar
. - SIDECAR_IMAGE: una referencia a la imagen del contenedor secundario.
Para configurar cada contenedor en el comando de implementación, proporciona la configuración de cada contenedor después de los parámetros
container
. Por ejemplo:gcloud beta run worker-pools deploy WORKER_POOL \ --container CONTAINER_1_NAME \ --image='WORKER_POOL_IMAGE' \ --set-env-vars=KEY=VALUE \ --container SIDECAR_CONTAINER_NAME \ --image='SIDECAR_IMAGE' \ --set-env-vars=KEY_N=VALUE_N
Espera a que finalice la implementación. Si se completa correctamente, Cloud Run mostrará un mensaje de confirmación.
- WORKER_POOL: el nombre del grupo de trabajadores.
- REGION: la región Google Cloud , por ejemplo,
europe-west1
. - CONTAINER_NAME: el nombre del contenedor.
- IMAGE_URL: referencia a la imagen del contenedor que contiene el grupo de trabajadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - SIDECAR_CONTAINER_NAME: el nombre del contenedor secundario.
- SIDECAR_IMAGE_URL: una referencia a la imagen del contenedor secundario.
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
launch_stage = "BETA"
template {
containers {
name = "CONTAINER_NAME"
image = "IMAGE_URL"
}
containers {
name = "SIDECAR_CONTAINER_NAME"
image = "SIDECAR_IMAGE_URL"
}
}
}
Haz los cambios siguientes:
Funciones destacadas disponibles para las implementaciones con sidecars
Puedes especificar el orden de inicio de los contenedores en una implementación con varios contenedores si tienes dependencias que requieren que algunos contenedores se inicien antes que otros en la implementación.
Si tienes contenedores que dependen de otros contenedores, debes usar comprobaciones de estado en tu implementación. Cuando usas comprobaciones de estado, Cloud Run sigue el orden de inicio de los contenedores y verifica el estado de cada contenedor antes de iniciar el siguiente. Sin comprobaciones de estado, Cloud Run intenta iniciar todos los contenedores, aunque los contenedores de los que dependen aún no se hayan iniciado o no se hayan podido iniciar.
Varios contenedores de una misma instancia pueden acceder a un volumen en memoria compartido, al que puede acceder cada contenedor mediante los puntos de montaje que crees.
Siguientes pasos
Después de implementar un nuevo grupo de trabajadores, puedes hacer lo siguiente:
- Ver los registros de un grupo de trabajadores
- Monitorizar el rendimiento del grupo de trabajadores
- Definir límites de memoria
- Definir variables de entorno
- Gestionar el grupo de trabajadores
- Gestionar revisiones de grupos de trabajadores