Menggunakan streaming Image untuk mengurangi waktu startup container

Dokumen ini menjelaskan cara menggunakan streaming Image untuk mengambil image container ke dalam tugas penampung Batch.

Streaming image memungkinkan tugas Batch melakukan inisialisasi tanpa menunggu image container selesai didownload, yang memberikan manfaat berikut:

  • Mengurangi latensi saat mengambil image berukuran besar
  • Waktu yang lebih cepat untuk memulai eksekusi tugas

Sebelum memulai

  1. Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
  2. Untuk mendapatkan izin yang diperlukan untuk membuat tugas, minta administrator untuk memberi Anda peran IAM berikut:

    Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

  3. Jika Anda belum melakukannya, aktifkan Container File System API dengan menjalankan perintah berikut:

    gcloud services enable containerfilesystem.googleapis.com
    
  4. Jika image container Anda dilindungi oleh Kontrol Layanan VPC, perbarui perimeter layanan untuk menyertakan containerfilesystem.googleapis.com.

Batasan

Streaming Image Batch memiliki batasan berikut:

  • Batch hanya mendukung streaming Image untuk image container yang disimpan di Artifact Registry. Jika saat ini Anda menggunakan Container Registry untuk mengelola image container, Anda dapat bertransisi 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 streaming Image, container runnable hanya mendukung kolom berikut:
    • imageUri
    • commands
    • entrypoint
    • volumes
    • enableImageStreaming
  • Image container dengan lapisan kosong atau lapisan duplikat tidak didukung.

Membuat tugas yang menggunakan streaming Image

Buat tugas penampung Batch yang menggunakan streaming Image dengan melakukan hal berikut:

Gunakan Google Cloud CLI atau REST API untuk membuat tugas penampung. Untuk mengaktifkan Streaming image bagi container yang dapat dijalankan, tetapkan kolom enableImageStreaming 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 streaming Image akan memiliki file konfigurasi JSON yang mirip dengan berikut:

{
    "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 repositori tempat image disimpan, misalnya us-east1 atau us. Lokasi penampung harus sama dengan lokasi VM tugas Batch.
  • PROJECT-ID: project yang berisi image penampung. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.
  • REPOSITORY: nama repositori tempat image disimpan.
  • IMAGE: nama image container.
  • TAG: tag yang diterapkan ke gambar.

Langkah selanjutnya