Semua instance Cloud Run di-sandbox, teknologi sandbox dan fitur yang tersedia berbeda-beda bergantung pada lingkungan eksekusi yang dipilih.
Lingkungan eksekusi generasi pertama didasarkan pada gVisor dan memiliki waktu cold start yang cepat serta emulasi sebagian besar, tetapi tidak semua panggilan sistem operasi.
Lingkungan eksekusi generasi kedua adalah microVM dan menyediakan kompatibilitas Linux penuh, bukan emulasi panggilan sistem. Lingkungan eksekusi ini menyediakan:
- Performa CPU yang lebih cepat
- Performa jaringan yang lebih cepat, terutama dengan hadirnya paket yang hilang
- Kompatibilitas Linux penuh, termasuk dukungan untuk semua panggilan sistem, namespace, dan cgroup
- Dukungan sistem file jaringan
Meskipun lingkungan eksekusi generasi kedua umumnya memiliki performa lebih cepat dalam beban berkelanjutan, lingkungan ini memiliki waktu cold start yang lebih lama dibandingkan generasi pertama untuk beberapa layanan.
Kedua lingkungan eksekusi memiliki harga yang sama. Lihat halaman harga Cloud Run untuk mengetahui detailnya.
Memilih lingkungan eksekusi untuk layanan Cloud Run
Layanan Cloud Run secara default tidak menentukan lingkungan eksekusi, yang berarti Cloud Run memilih lingkungan eksekusi berdasarkan fitur yang digunakan. Jika Anda tidak menentukan lingkungan eksekusi untuk layanan Anda, Cloud Run dapat memilih lingkungan generasi pertama atau generasi kedua.
Tugas dan pool worker Cloud Run hanya menggunakan lingkungan eksekusi generasi kedua, dan hal ini tidak dapat diubah.
Cara memilih lingkungan eksekusi
Anda harus menggunakan generasi pertama jika salah satu hal berikut berlaku:
- Layanan Cloud Run Anda memiliki traffic yang tinggi, dan perlu diskalakan dengan cepat ke banyak instance, atau layanan Anda akan sensitif terhadap waktu cold start.
- Layanan Cloud Run Anda memiliki traffic yang jarang terjadi sehingga menyebabkan seringnya penskalaan dari nol.
- Anda ingin menggunakan memori kurang dari 512 MiB. Lingkungan eksekusi generasi kedua memerlukan memori setidaknya sebesar 512 MiB.
Anda harus menggunakan generasi kedua jika salah satu dari hal berikut berlaku untuk layanan Cloud Run Anda:
- Layanan Anda harus menggunakan NFS, yang hanya didukung oleh generasi kedua.
- Layanan Anda memiliki traffic yang cukup stabil dan toleran terhadap cold start yang agak lebih lambat.
- Layanan Anda memiliki workload CPU yang intensif.
- Layanan Anda dapat memanfaatkan performa jaringan yang lebih cepat.
- Layanan Anda menggunakan Direct VPC egress untuk mengirim traffic ke Jaringan VPC dan memerlukan performa jaringan terbaik.
- Layanan Anda perlu untuk menggunakan software yang memiliki masalah yang berjalan di generasi pertama dikarenakan oleh panggilan sistem yang tidak diimplementasikan.
- Layanan Anda memerlukan fungsionalitas Cgroup Linux.
- Layanan Anda menggunakan infrastruktur pihak ketiga untuk mengamankan container.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:
- Developer Cloud Run (
roles/run.developer) di layanan Cloud Run - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) pada identitas layanan
Jika Anda men-deploy layanan atau fungsi dari kode sumber, Anda juga harus memiliki peran tambahan yang diberikan kepada Anda di project dan akun layanan Cloud Build.
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika layanan 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.
Menetapkan dan memperbarui lingkungan eksekusi
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Nilai default untuk layanan Cloud Run adalah unspecified, yang berarti Cloud Run akan memilih lingkungan eksekusi yang sesuai. Atau, Anda dapat menentukan lingkungan eksekusi. Untuk menggunakan generasi kedua, Anda harus menentukan memori minimal 512 MiB.
Anda dapat menetapkan lingkungan eksekusi menggunakan Google Cloud konsol, command line gcloud, atau file YAML saat membuat layanan baru atau