In diesem Dokument wird beschrieben, wie Sie mit Image-Streaming Container-Images in Batch-Container-Jobs abrufen.
Mit Image-Streaming können Batchjobs initialisiert werden, ohne auf den Abschluss des Downloads eines Container-Images warten zu müssen. Das bietet folgende Vorteile:
- Geringere Latenzzeit beim Abrufen großer Images
- Schnellerer Beginn der Jobausführung
Hinweise
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Hilfeartikel Batch-Dateien erstellen und ausführen und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfüllen.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Jobs benötigen:
-
Batch-Job-Bearbeiter (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) im Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
Batch-Job-Bearbeiter (
Aktivieren Sie die Container File System API, falls noch nicht geschehen, indem Sie den folgenden Befehl ausführen:
gcloud services enable containerfilesystem.googleapis.com
- Wenn Ihre Container-Images durch VPC Service Controls geschützt sind, aktualisieren Sie Ihren Dienstperimeter, um
containerfilesystem.googleapis.com
aufzunehmen.
Beschränkungen
Für das Batch-Image-Streaming gelten die folgenden Einschränkungen:
- Batch unterstützt nur das Image-Streaming für Container-Images, die in Artifact Registry gespeichert sind. Wenn Sie derzeit Container Registry zum Verwalten Ihrer Container-Images verwenden, können Sie zu Artifact Registry wechseln.
- Die VMs Ihres Batchjobs müssen am selben Speicherort ausgeführt werden, an dem Sie Ihr Container-Image in Artifact Registry speichern.
- Container, die das Docker-Image-Manifest Version 2, Schema 1 verwenden, werden nicht unterstützt.
- Wenn Sie Image-Streaming verwenden, werden in containers runnables nur die folgenden Felder unterstützt:
imageUri
commands
entrypoint
volumes
enableImageStreaming
- Container-Images mit leeren Ebenen oder doppelten Ebenen werden nicht unterstützt.
Job mit Image-Streaming erstellen
So erstellen Sie einen Batch-Containerjob, der Image-Streaming verwendet:
Verwenden Sie die Google Cloud CLI oder die REST API, um einen Containerjob zu erstellen.
Wenn Sie das Bildstreaming für einen ausführbaren Container aktivieren möchten, legen Sie im Feld enableImageStreaming
den Wert true
und im Feld imageUri
ein Image fest, das an einem Speicherort in der Artifact Registry gespeichert ist, der den Speicherort der VM des Jobs enthält.
"container": {
...
"enableImageStreaming": true
}
Für einen Job, bei dem das Bildstreaming verwendet wird, sieht die JSON-Konfigurationsdatei beispielsweise so aus:
{
"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"
}
}
Ersetzen Sie die folgenden Werte:
LOCATION
: der regionale oder multiregionale Speicherort des Repositorys, in dem das Bild gespeichert ist, z. B.us-east1
oderus
. Der Speicherort des Containers muss mit dem Speicherort der VMs des Batchjobs übereinstimmen.PROJECT-ID
: das Projekt, das das Container-Image enthält. Wenn die Projekt-ID einen Doppelpunkt (:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.REPOSITORY
ist der Name des Repositorys, in dem das Image gespeichert ist.IMAGE
ist der Name des Container-Images.TAG
: das auf das Bild angewendete Tag.
Nächste Schritte
- Wenn beim Erstellen oder Ausführen eines Jobs Probleme auftreten, lesen Sie den Hilfeartikel Fehlerbehebung.
- Aufgaben und Jobs ansehen
- Weitere Informationen zu Optionen zum Erstellen von Jobs