Questo documento descrive come utilizzare il flusso di immagini per eseguire il pull delle immagini container nei job container batch.
Il flusso di immagini consente l'inizializzazione dei job batch senza attendere il completamento del download di un'immagine contenitore, offrendo i seguenti vantaggi:
- Latenza ridotta durante il recupero di immagini di grandi dimensioni
- Tempi di avvio del job più rapidi
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la guida introduttiva all'utilizzo di Batch e attivalo completando i prerequisiti per progetti e utenti.
-
Per ottenere le autorizzazioni necessarie per creare un job, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Batch Job Editor (
roles/batch.jobsEditor
) nel progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) sull'account di servizio del job, che per impostazione predefinita è l'account di servizio Compute Engine predefinito
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Batch Job Editor (
Se non lo hai già fatto, abilita l'API Container File System tramite esegui questo comando:
gcloud services enable containerfilesystem.googleapis.com
- Se le immagini container sono protette dai Controlli di servizio VPC,
aggiornare il perimetro di servizio
per includere
containerfilesystem.googleapis.com
.
Limitazioni
I flussi di immagini batch presentano le seguenti limitazioni:
- Batch supporta flussi di immagini solo per le immagini container in Artifact Registry. Se al momento utilizzi Container Registry per gestire le tue immagini container, puoi eseguire la transizione ad Artifact Registry.
- Devi eseguire le VM del job batch nello stesso location come la località in cui l'immagine container in Artifact Registry.
- I container che utilizzano la versione 2 dello schema 1 del manifest dell'immagine Docker non sono supportati.
- Quando utilizzi il flusso di immagini,
containers runnables
supporta solo i seguenti campi:
imageUri
commands
entrypoint
volumes
enableImageStreaming
- Le immagini container con livelli vuoti o duplicati non sono supportate.
Creare un job che utilizza flussi di immagini
Crea un job di container Batch che utilizza il flusso di immagini svolgendo quanto segue:
Utilizza Google Cloud CLI o l'API REST per
creare un job contenitore.
Per abilitare il flusso di immagini per un container eseguibile, imposta
Il campo enableImageStreaming
su true
e il campo imageUri
su un'immagine
che viene archiviato
Posizione Artifact Registry
che contiene la località della VM del job.
"container": {
...
"enableImageStreaming": true
}
Ad esempio, un job che utilizza lo streaming di immagini avrà un file di configurazione JSON simile al seguente:
{
"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"
}
}
Sostituisci i seguenti valori:
LOCATION
: a livello di una o più regioni località del repository in cui è archiviata l'immagine, ad esempious-east1
ous
. La della posizione del container deve corrispondere a quella del container VM del job batch.PROJECT-ID
: il progetto che contiene il container dell'immagine. Se l'ID progetto contiene i due punti (:
), consulta Progetti con ambito dominio.REPOSITORY
: il nome del repository in cui è stata creata l'immagine viene archiviato.IMAGE
: il nome dell'immagine container.TAG
: il tag applicato all'immagine.
Passaggi successivi
- Se hai problemi durante la creazione o l'esecuzione di un job, consulta la sezione Risoluzione dei problemi.
- Visualizza lavori e attività.
- Scopri di più sulle opzioni di creazione dei job.