Mengonfigurasi disk sementara untuk kumpulan pekerja Cloud Run

Cloud Run menyediakan volume disk efemeral yang hanya bertahan selama durasi instance Anda. Fitur ini memungkinkan Anda menentukan jumlah disk yang diperlukan dan lokasi untuk memasangnya. Cloud Run kemudian akan mengalokasikan jumlah disk tersebut ke resource Anda.

Disk disediakan secara otomatis, diformat sebelumnya ke ext4, dan dienkripsi dengan kunci khusus instance saat startup. Disk sementara membuat volume Anda sehingga setiap pengguna dapat membaca atau menulis ke dalamnya. Karena penyimpanan bersifat sementara, semua data akan dihapus secara permanen saat instance dimatikan. Hal ini mencakup penutupan yang disebabkan oleh:

  • Error instance
  • Migrasi traffic ke revisi baru

Disk dikhususkan untuk instance tertentu dan tidak dibagikan ke instance atau revisi lain. Anda memiliki kontrol atas struktur sistem file dengan titik pemasangan yang dapat dikonfigurasi untuk setiap volume.

Sebelum mematikan instance, Cloud Run mengirimkan sinyal SIGTERM ke semua container dalam instance, yang menunjukkan dimulainya periode 10 detik sebelum penonaktifan yang sebenarnya terjadi. Pada saat itu, Cloud Run mengirimkan sinyal SIGKILL. Anda dapat menggunakan periode 10 detik ini untuk melakukan operasi pembersihan seperti melakukan putaran terakhir penyalinan konten disk ke penyimpanan persisten.

Kasus penggunaan

Anda dapat menggunakan disk sementara untuk hal berikut:

  • Workload pemrosesan data: Saat memproses file data besar di Cloud Run, Anda biasanya menyimpan seluruh file dalam memori atau mengatur pemisahannya menjadi beberapa bagian yang lebih kecil. Dengan penyimpanan sementara, Anda tidak perlu membayar sejumlah besar memori untuk membuat salinan lokal sementara data Anda. Anda juga dapat memproses set data yang lebih besar.
  • Caching: Dalam kasus penggunaan penayangan web, menyimpan data di disk, bukan mengambil dari penyimpanan jarak jauh, dapat mengoptimalkan latensi aplikasi Anda.

Batas penyimpanan dan instance

Batasan berikut berlaku:

  • Batas penyimpanan instance: setiap instance dibatasi hingga 10 GB ruang total secara default. Jika perlu, minta penambahan kuota.
  • Batas volume instance: setiap instance dibatasi hingga maksimum 10 volume.
  • Batas project: setiap project dibatasi hingga 100 GB per region secara default. Jika perlu, minta penambahan kuota.

Meminta penambahan kuota

Project yang menggunakan disk efemeral Cloud Run di suatu region untuk pertama kalinya akan otomatis diberi batas 10 GB per instance, per region, dan batas 100 GB per project, per region.

Jika memerlukan kapasitas tambahan, Anda harus meminta penambahan kuota untuk kumpulan pekerja Cloud Run. Gunakan link yang disediakan di tombol berikut untuk meminta kuota yang Anda butuhkan.

Kuota saat ini Link kuota
10 GB per instance Meminta kuota yang lebih besar per instance
100 GB per project Meminta kuota yang lebih besar per project

Untuk mengetahui informasi selengkapnya tentang cara meminta penambahan kuota, lihat Cara menambah kuota.

Batasan

Disk ephemeral hanya tersedia di lingkungan eksekusi generasi kedua. Secara default, pool worker Cloud Run menggunakan lingkungan eksekusi generasi kedua.

Jalur yang tidak diizinkan

Cloud Run tidak mengizinkan Anda memasang volume di /dev, /proc, atau /sys, atau di subdirektorinya.

Region yang didukung

Fitur disk sementara tersedia di region berikut:

  • Untuk beban kerja non-GPU, disk ephemeral tersedia di:
    • asia-northeast1 (Tokyo)
    • europe-west1 (Belgia) ikon daun CO2 Rendah
    • northamerica-northeast1 (Montreal) ikon daun CO2 Rendah
    • northamerica-northeast2 (Toronto) ikon daun CO2 Rendah
    • us-central1 (Iowa) ikon daun CO2 Rendah
    • us-east1 (South Carolina)
    • us-east4 (North Virginia)
    • us-west1 (Oregon) ikon daun CO2 Rendah
  • Jika Anda menggunakan GPU, disk sementara tersedia di semua region yang mendukung GPU.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Instal dan lakukan inisialisasi gcloud CLI.
  7. Perbarui komponen:
    gcloud components update
  8. Tinjau halaman harga Cloud Run untuk CPU, memori, dan traffic keluar jaringan. Ukuran keseluruhan disk yang disediakan dan masa aktif instance yang menggunakannya berkontribusi pada biaya Anda.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi disk sementara, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika kumpulan worker Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.

Membuat dan memasang disk sementara

Anda dapat membuat dan memasang disk sementara menggunakan konsol Google Cloud atau Google Cloud CLI:

Konsol

  1. Di konsol Google Cloud , buka Cloud Run:

    Buka Cloud Run

  2. Pilih Worker pools dari menu, lalu klik Deploy container untuk mengonfigurasi worker pool baru. Jika Anda mengonfigurasi pool worker yang ada, klik pool worker, lalu klik Edit dan deploy revisi baru.

  3. Jika Anda mengonfigurasi kumpulan pekerja baru, isi halaman kumpulan pekerja awal, lalu klik Containers, Networking, Security untuk meluaskan halaman konfigurasi kumpulan pekerja.

  4. Klik tab Container.

    gambar

    • Di bagian Referensi:
      • Klik Mount volume.
      • Pilih Disk ephemeral.
      • Masukkan jalur pemasangan.
      • Tentukan ukuran Disk Sementara dari menu.
  5. Klik Buat atau Deploy.

gcloud

Untuk menambahkan volume dan memasangnya:

gcloud beta run worker-pools update WORKERPOOL \
    --add-volume=name=VOLUME_NAME,type=ephemeral-disk,size=SIZE \
    --add-volume-mount=volume=VOLUME_NAME,mount-path=MOUNT_PATH

Ganti kode berikut:

  • WORKERPOOL: nama kumpulan pekerja Anda.
  • VOLUME_NAME: nama yang ingin Anda berikan pada volume.
  • SIZE: ukuran disk—misalnya, 100Gi. Ukuran harus minimal 10Gi untuk volume ephemeral-disk.
  • MOUNT_PATH: jalur relatif tempat Anda memasang volume, misalnya, /mnt/my-volume.

Membaca dan menulis ke volume

Jika Anda menggunakan fitur pemasangan volume Cloud Run, Anda dapat mengakses volume yang dipasang menggunakan library yang sama dalam bahasa pemrograman yang Anda gunakan untuk membaca dan menulis file di sistem file lokal.

Cara ini sangat berguna jika Anda menggunakan penampung yang sudah ada yang mengharapkan data disimpan di sistem file lokal dan menggunakan operasi sistem file reguler untuk mengaksesnya.

Cuplikan berikut mengasumsikan pemasangan volume dengan mountPath yang ditetapkan ke /mnt/my-volume.

Nodejs

Gunakan modul Sistem File untuk membuat file baru atau menambahkan ke file yang ada di volume, /mnt/my-volume:

var fs = require('fs');
fs.appendFileSync('/mnt/my-volume/sample-logfile.txt', 'Hello logs!', { flag: 'a+' });

Python

Menulis ke file yang disimpan di volume, /mnt/my-volume:

f = open("/mnt/my-volume/sample-logfile.txt", "a")

Go

Gunakan paket os untuk membuat file baru yang disimpan di volume, /mnt/my-volume:

f, err := os.Create("/mnt/my-volume/sample-logfile.txt")

Java

Gunakan class Java.io.File untuk membuat file log di volume, /mnt/my-volume:

import java.io.File;
File f = new File("/mnt/my-volume/sample-logfile.txt");

Menghapus volume dan pemasangan volume

Anda dapat menghapus semua volume dan pemasangan atau menghapus volume dan pemasangan volume satu per satu.

Menghapus semua volume dan pemasangan volume

Untuk menghapus semua volume dan pemasangan volume dari kumpulan pekerja satu-penampung, jalankan perintah berikut:

gcloud run worker-pools update WORKER_POOL \
    --clear-volumes
    --clear-volume-mounts

Jika Anda memiliki beberapa container, ikuti konvensi CLI sidecar untuk menghapus volume dan pemasangan volume:

gcloud run worker-pools update WORKER_POOL \
    --container=container1 \
    --clear-volumes
    -–clear-volume-mounts \
    --container=container2 \
    --clear-volumes \
    -–clear-volume-mounts

Menghapus volume dan pemasangan volume satu per satu

Untuk menghapus volume, Anda juga harus menghapus semua pemasangan volume yang menggunakan volume tersebut.

Untuk menghapus volume atau pemasangan volume satu per satu, gunakan flag remove-volume dan remove-volume-mount:

gcloud run worker-pools update WORKER_POOL \
    --remove-volume VOLUME_NAME \
    --container=container1 \
    --remove-volume-mount MOUNT_PATH \
    --container=container2 \
    --remove-volume-mount MOUNT_PATH

Praktik terbaik

Patuhi praktik terbaik berikut untuk mengelola data efemeral secara efektif dan mengoptimalkan performa penyimpanan.

Menyalin ke penyimpanan persisten

Jika Anda ingin menyalin konten disk efemeral ke penyimpanan persisten, seperti bucket Cloud Storage, sebaiknya salin secara inkremental, daripada mengandalkan masa tenggang 10 detik SIGTERM ke SIGKILL. Lihat Kontrak runtime container untuk mengetahui informasi selengkapnya tentang penonaktifan instance.

Cloud Run dapat membaca dan menulis dari Cloud Storage tanpa penyiapan jaringan tambahan. Untuk mendapatkan performa yang optimal, sebaiknya arahkan traffic ke dan dari Cloud Storage melalui jaringan VPC menggunakan VPC Langsung.

Metode ini berfungsi jika Anda tidak memerlukan resource Cloud Run untuk mengakses internet. Jika Anda memerlukan akses internet, siapkan Cloud NAT, atau lihat Traffic internal ke Google API.

Untuk mengonfigurasi Traffic keluar VPC langsung dengan tugas, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Cloud Run:

    Buka Cloud Run

  2. Pilih Worker pools dari menu, lalu klik Deploy container untuk mengonfigurasi worker pool baru. Jika Anda mengonfigurasi pool worker yang sudah ada, klik pool worker, lalu klik Edit dan deploy revisi baru.

  3. Jika Anda mengonfigurasi kumpulan pekerja baru, isi halaman kumpulan pekerja awal, lalu klik Containers, Networking, Security untuk memperluas halaman konfigurasi kumpulan pekerja.

  4. Klik tab Networking.

  5. Pilih Hubungkan ke VPC.

  6. Untuk Perutean traffic, pilih salah satu Rutekan semua traffic ke VPC untuk mengirim semua traffic keluar melalui jaringan VPC.

  7. Klik Buat atau Deploy.

    Kini Anda dapat mengirim permintaan dari kumpulan pekerja Cloud Run ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.

  8. Aktifkan Akses Google Pribadi di subnet yang Anda hubungkan.

Memecahkan masalah

Jika Anda melihat kecepatan jaringan yang lambat saat mendownload sejumlah besar data ke disk sementara, ikuti langkah-langkah untuk mengaktifkan VPC Langsung. Jika VPC Langsung tidak diaktifkan, Anda akan melihat kecepatan transfer jaringan yang lebih lambat.