Ce document explique comment utiliser le streaming d'images pour extraire des images de conteneur dans des tâches de conteneur par lot.
Le streaming d'images permet aux tâches de traitement par lot de s'initialiser sans attendre la fin du téléchargement d'une image de conteneur, ce qui présente les avantages suivants :
- Latence réduite lors de l'extraction d'images volumineuses
- Démarrage plus rapide de l'exécution des jobs
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Pour obtenir les autorisations nécessaires à la création d'un job, demandez à votre administrateur de vous accorder le rôles IAM suivants:
-
Éditeur de jobs par lot (
roles/batch.jobsEditor
) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service de la tâche, qui est par défaut le compte de service Compute Engine par défaut
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
-
Éditeur de jobs par lot (
Si vous ne l'avez pas déjà fait, activez l'API Container File System en procédant comme suit : en exécutant la commande suivante:
gcloud services enable containerfilesystem.googleapis.com
- Si vos images de conteneurs sont protégées par VPC Service Controls,
Mettre à jour votre périmètre de service
afin d'inclure
containerfilesystem.googleapis.com
.
Limites
Le streaming d'images par lot présente les limites suivantes :
- Le traitement par lot n'est compatible qu'avec le streaming d'images pour les images de conteneur stockées dans Artifact Registry. Si vous utilisez actuellement Container Registry pour gérer vos images de conteneurs, vous pouvez passer à Artifact Registry.
- Vous devez exécuter les VM de votre tâche Batch dans le même emplacement que celui où vous stockez votre image de conteneur dans Artifact Registry.
- Les conteneurs qui utilisent le schéma 1 de la version 2 du fichier manifeste d'image Docker ne sont pas acceptés.
- Lorsque vous utilisez le traitement par flux d'images,
conteneurs exécutables
n'acceptent que les champs suivants:
imageUri
commands
entrypoint
volumes
enableImageStreaming
- Les images de conteneurs comportant des couches vides ou des calques en double ne sont pas acceptées.
Créer une tâche qui utilise le streaming d'images
Créez un job de conteneur Batch qui utilise le flux d'images en effectuant les éléments suivants:
Utilisez la Google Cloud CLI ou l'API REST pour créer une tâche de conteneur.
Pour activer le streaming d'images pour un exécutable de conteneur, définissez le champ enableImageStreaming
sur true
et le champ imageUri
sur une image stockée dans un emplacement Artifact Registry contenant l'emplacement de la VM de la tâche.
"container": {
...
"enableImageStreaming": true
}
Par exemple, une tâche qui utilise le streaming d'images aura un fichier de configuration JSON semblable à celui-ci :
{
"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"
}
}
Remplacez les valeurs suivantes :
LOCATION
: l'emplacement régional ou multirégional emplacement dans lequel l'image est stockée, par exempleus-east1
ouus
. L'emplacement du conteneur doit être identique à celui des VM de la tâche de traitement par lot.PROJECT-ID
: projet contenant le conteneur l'image. Si l'ID de votre projet contient le signe deux-points (:
), consultez Projets à l'échelle du domaineREPOSITORY
: nom du dépôt dans lequel l'image sont stockées.IMAGE
: nom de l'image du conteneur.TAG
: tag appliqué à l'image.
Étape suivante
- Si vous rencontrez des problèmes lors de la création ou de l'exécution d'un job, consultez la section Dépannage.
- Afficher les missions et les tâches
- En savoir plus sur les options de création de tâches