Utilizza il flusso di immagini per ridurre il tempo di avvio del container

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
  • Tempo di inizio dell'esecuzione del job più rapido

Prima di iniziare

  1. Se non hai mai utilizzato Batch, consulta la guida introduttiva all'utilizzo di Batch e attivalo completando i prerequisiti per progetti e utenti.
  2. Per ottenere le autorizzazioni necessarie per creare un job, chiedi all'amministratore di concederti i seguenti ruoli IAM:

    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.

  3. Se non lo hai già fatto, abilita l'API Container File System eseguendo il seguente comando:

    gcloud services enable containerfilesystem.googleapis.com
    
  4. Se le immagini dei contenitori sono protette da Controlli di servizio VPC, aggiorna il perimetro di servizio in modo da includere containerfilesystem.googleapis.com.

Limitazioni

Lo streaming di immagini batch presenta i seguenti limiti:

  • Batch supporta lo streaming di immagini solo per le immagini container archiviate 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 nella stessa località in cui memorizzi l'immagine container in Artifact Registry.
  • I container che utilizzano il manifest dell'immagine Docker versione 2, schema 1 non sono supportati.
  • Quando utilizzi il flusso di immagini, containers runnables supporta solo i seguenti campi:
    • imageUri
    • commands
    • entrypoint
    • volumes
    • enableImageStreaming
  • Le immagini contenitore con livelli vuoti o duplicati non sono supportate.

Creare un job che utilizza lo streaming 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 attivare lo streaming di immagini per un container eseguibile, imposta il campo enableImageStreaming su true e il campo imageUri su un'immagine archiviata in una posizione di Artifact Registry contenente la posizione 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: la località regionale o multiregionale del repository in cui è archiviata l'immagine, ad esempio us-east1 o us. La posizione del contenitore deve corrispondere a quella delle VM del job batch.
  • PROJECT-ID: il progetto che contiene l'immagine del contenitore. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.
  • REPOSITORY: il nome del repository in cui è memorizzata l'immagine.
  • IMAGE: il nome dell'immagine del contenitore.
  • TAG: il tag applicato all'immagine.

Passaggi successivi