Dokumen ini menjelaskan cara menggunakan Image streaming untuk mengambil image container ke dalam tugas container Batch.
Image streaming memungkinkan tugas Batch melakukan inisialisasi tanpa menunggu image container selesai didownload, yang memberikan manfaat berikut:
- Mengurangi latensi saat mengambil image berukuran besar
- Mempercepat waktu untuk memulai eksekusi tugas
Sebelum memulai
- Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
-
Untuk mendapatkan izin yang Anda perlukan untuk membuat tugas, minta administrator untuk memberi Anda peran IAM berikut:
- Batch Job Editor (
roles/batch.jobsEditor) di project - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di akun layanan tugas, yang secara default adalah akun layanan Compute Engine default
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
- Batch Job Editor (
Jika belum melakukannya, aktifkan Container File System API dengan menjalankan perintah berikut:
gcloud services enable containerfilesystem.googleapis.com
- Jika image container Anda dilindungi oleh Kontrol Layanan VPC,
perbarui perimeter layanan Anda
untuk menyertakan
containerfilesystem.googleapis.com.
Batasan
Batch Image streaming memiliki batasan berikut:
- Batch hanya mendukung Image streaming untuk image container yang disimpan di Artifact Registry. Jika saat ini Anda menggunakan Container Registry untuk mengelola image container, Anda dapat beralih ke Artifact Registry.
- Anda harus menjalankan VM tugas Batch di lokasi yang sama dengan tempat Anda menyimpan image container di Artifact Registry.
- Container yang menggunakan manifes image Docker versi 2, skema 1 tidak didukung.
- Saat Anda menggunakan Image streaming,
container yang dapat dieksekusi
hanya mendukung kolom berikut:
imageUricommandsentrypointvolumesenableImageStreaming
- Image container dengan lapisan kosong atau lapisan duplikat tidak didukung.
Membuat tugas yang menggunakan Image streaming
Buat tugas container Batch yang menggunakan Image streaming dengan melakukan hal berikut:
Gunakan Google Cloud CLI atau REST API untuk
membuat tugas container.
Untuk mengaktifkan Image streaming untuk container yang dapat dieksekusi, tetapkan
enableImageStreaming kolom ke true dan tetapkan kolom imageUri ke image
yang disimpan di
lokasi Artifact Registry
yang berisi lokasi VM tugas.
"container": {
...
"enableImageStreaming": true
}
Misalnya, tugas yang menggunakan Image streaming akan memiliki file konfigurasi JSON yang mirip dengan berikut ini:
{
"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"
}
}
Ganti nilai berikut:
LOCATION: lokasi regional atau multi-regional dari repositori tempat image disimpan, misalnyaus-east1atauus. Lokasi container harus sama dengan lokasi VM tugas Batch.PROJECT-ID: project yang berisi image container. Jika ID project Anda berisi titik dua (:), lihat Project dengan cakupan domain.REPOSITORY: nama repositori tempat image disimpan.IMAGE: nama image container.TAG: tag yang diterapkan ke image.
Langkah berikutnya
- Jika Anda mengalami masalah saat membuat atau menjalankan tugas, lihat Pemecahan masalah.
- Melihat tugas.
- Pelajari opsi pembuatan tugas lainnya.