En este documento, se describe cómo usar la transmisión de imágenes para extraer imágenes de contenedor en trabajos de contenedores por lotes.
La transmisión de imágenes permite que los trabajos por lotes se inicialicen sin esperar. para que se termine de descargar una imagen de contenedor, lo que proporciona beneficios:
- Menor latencia cuando se extraen imágenes grandes
- Menor tiempo para comenzar la ejecución del trabajo
Antes de comenzar
- Si nunca usaste Batch, revisa Comienza a usar Batch y habilitar Batch completando el requisitos previos para los proyectos y usuarios.
-
Para obtener los permisos que necesitas para crear un trabajo, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Editor de trabajos por lotes (
roles/batch.jobsEditor
) en el proyecto -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la cuenta de servicio del trabajo, que, de forma predeterminada, es la cuenta de servicio predeterminada de Compute Engine
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
-
Editor de trabajos por lotes (
Si aún no lo hiciste, habilita la API de Container File System mediante la ejecución del siguiente comando:
gcloud services enable containerfilesystem.googleapis.com
- Si tus imágenes de contenedor están protegidas por Controles del servicio de VPC,
actualizar el perímetro de servicio
para incluir
containerfilesystem.googleapis.com
.
Limitaciones
La transmisión de imágenes por lotes tiene las siguientes limitaciones:
- Batch solo admite la transmisión de imágenes para imágenes de contenedor que se almacenan en Artifact Registry. Si actualmente usas Container Registry para administrar tus imágenes de contenedor, puedes de transición a Artifact Registry.
- Debes ejecutar las VMs de tu trabajo por lotes en la misma location como el lugar desde donde almacenar tu imagen de contenedor en Artifact Registry.
- Los contenedores que usan la versión 2 del manifiesto de imagen de Docker, el esquema 1, no son compatibles.
- Cuando usas la transmisión de imágenes,
contenedores ejecutables
solo admiten los siguientes campos:
imageUri
commands
entrypoint
volumes
enableImageStreaming
- Las imágenes de contenedor con capas vacías o duplicadas no son compatibles.
Crea un trabajo que use la transmisión de imágenes
Para crear un trabajo de contenedor de Batch que use la transmisión de imágenes, haz lo siguiente:
Usa Google Cloud CLI o la API de REST para
crear un trabajo de contenedor
Para habilitar la transmisión de imágenes en un contenedor ejecutable, configura
enableImageStreaming
en true
y establece el campo imageUri
en una imagen
que se almacena en un
Ubicación de Artifact Registry
que contiene la ubicación de la VM del trabajo.
"container": {
...
"enableImageStreaming": true
}
Por ejemplo, un trabajo que usa transmisión de imágenes tendría un archivo JSON de configuración de Terraform similar al siguiente:
{
"taskGroups": [
{
"taskCount": "1",
"taskCountPerNode": "1",
"taskSpec": {
"runnables": [
{
"container": {
"imageUri": "LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE:TAG",
"enableImageStreaming": true
}
}
]
}
}
],
"allocationPolicy": {
"instances": [
{
"policy": {
"machineType": "e2-standard-4"
}
}
]
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Reemplaza los siguientes valores:
LOCATION
: Es la región o multirregional. la ubicación de la repositorio en el que se almacena la imagen, por ejemplous-east1
ous
. El la ubicación del contenedor debe ser la misma que la de la VMs de un trabajo por lotes.PROJECT-ID
: Es el proyecto que contiene el contenedor. imagen. Si el ID de tu proyecto contiene dos puntos (:
), consulta Proyectos con alcance de dominio.REPOSITORY
: Es el nombre del repositorio en el que se encuentra la imagen. cuando se almacena.IMAGE
por el nombre de la imagen de contenedorTAG
: Es la etiqueta que se aplica a la imagen.
¿Qué sigue?
- Si tienes problemas para crear o ejecutar un trabajo, consulta Solución de problemas.
- Visualiza trabajos y tareas.
- Obtén más información sobre las opciones de creación de trabajos.