Halaman ini menjelaskan cara mengonfigurasi volume dalam memori khusus yang dapat Anda gunakan untuk membaca dan menulis file.
Fitur ini berbeda dengan sistem file dalam memori bawaan yang disediakan oleh Cloud Run, yang tidak membatasi memori yang terpakai oleh penulisan file dalam memori. Dengan menggunakan volume dalam memori, Anda dapat membatasi jumlah memori yang dapat dipakai.
Perilaku
Setelah Anda mengonfigurasi volume dalam memori untuk layanan Cloud Run, volume kosong akan dibuat untuk setiap instance Cloud Run yang dimulai, dan tersedia selama instance tersebut berjalan. Saat instance berhenti berjalan, data dalam volume akan dihapus secara permanen.
Jika Anda menentukan batas untuk volume dalam memori, lalu melebihi batas tersebut saat menulis ke volume, Anda akan mengalami error memori tidak cukup, yang dapat ditangani, dan instance akan tetap berjalan. Jika Anda tidak menentukan batas ukuran volume, lalu melebihi batas memori instance saat menulis ke volume, instance akan error.
Kepemilikan volume berbeda-beda berdasarkan lingkungan eksekusi dan jenis deployment
Saat Anda memasang volume, identitas yang memiliki file dan direktori akan berbeda bergantung pada lingkungan eksekusi workload dan apakah deployment terdiri dari satu atau banyak container.
Di lingkungan eksekusi generasi pertama tempat Anda men-deploy satu container, volumenya dimiliki oleh identitas yang digunakan untuk container. Dalam kasus lainnya, volume dimiliki oleh root. Hal ini mencakup:
- Lingkungan eksekusi generasi pertama tempat Anda men-deploy banyak container
- Lingkungan generasi kedua
Kasus penggunaan
Kasus penggunaan untuk volume dalam memori mencakup alokasi ruang awal atau waktu pemeriksaan komputasi yang panjang untuk mencegah error.
Mengonfigurasi volume dalam memori
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Tiap revisi berikutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda mengubahnya secara eksplisit.
Jika Anda menentukan batas ukuran memori untuk volume, memori tersebut akan dialokasikan dari memori yang digunakan oleh semua container individual dalam instance yang mengakses volume ini. Jika Anda menentukan ukuran volume dalam memorinya lebih besar dari jumlah total semua memori yang digunakan oleh container dalam instance, volume akan ditetapkan secara default ke total jumlah yang digunakan oleh container.
Jika batas ukuran memori untuk volume tidak ditentukan, Anda berpotensi melampaui batas memori instance dan akan menyebabkan instance mengalami error.
Jika Anda menggunakan volume dalam memori sebagai volume bersama di
deployment multicontainer tanpa
menentukan batas ukuran dalam memori, maka setengah dari total memori instance yang tersedia akan dialokasikan untuk volume bersama. Misalnya, ukuran volume emptyDir
= [Memori (Container A) + Memori (Container B) + Memori (Container N)]/2.
Konsol
Klik layanan yang ingin Anda konfigurasi.
Klik tab YAML.
Konfigurasikan atribut
volumeMounts
danvolumes
seperti yang ditunjukkan:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL volumeMounts: - mountPath: PATH name: VOLUME_NAME volumes: - name: VOLUME_NAME emptyDir: sizeLimit: SIZE_LIMIT medium: Memory
ganti
- SERVICE dengan nama layanan Cloud Run Anda.
- IMAGE_URL dengan referensi ke image container,
misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, maka repository REPO_NAME harus sudah dibuat. URL memiliki bentukREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH dengan jalur relatif ke volume, misalnya,
/cache
. - VOLUME_NAME dengan nama yang ingin Anda gunakan untuk volume dalam memori.
- SIZE_LIMIT dengan batas memori yang ingin Anda tetapkan ke volume, dalam
MiB atau GiB (ditetapkan sebagai Mi atau Gi), misalnya,
500Mi
. Batas ini harus kurang dari total memori yang ditentukan untuk container Anda.
Klik Save and Deploy new Revision.
YAML
Anda dapat mendownload dan melihat konfigurasi keamanan yang ada menggunakan
perintah gcloud run services describe --format export
, yang memberikan hasil
bersih dalam format YAML.
Kemudian Anda dapat mengubah kolom yang dijelaskan di bawah ini dan
mengupload YAML yang telah diubah menggunakan perintah gcloud run services replace
.
Pastikan Anda hanya mengubah kolom seperti yang dicantumkan.
Untuk melihat dan mendownload konfigurasi:
gcloud run services describe SERVICE --format export > service.yaml
Konfigurasikan atribut
volumeMounts
danvolumes
seperti yang ditunjukkan:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL volumeMounts: - mountPath: PATH name: VOLUME_NAME volumes: - name: VOLUME_NAME emptyDir: sizeLimit: SIZE_LIMIT medium: Memory
Ganti:
- SERVICE dengan nama layanan Cloud Run Anda.
- IMAGE_URL dengan referensi ke image container,
misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, maka repository REPO_NAME harus sudah dibuat. URL memiliki bentukREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH dengan jalur relatif ke volume, misalnya,
/cache
. - VOLUME_NAME dengan nama yang ingin Anda gunakan untuk volume dalam memori.
- SIZE_LIMIT dengan batas memori yang ingin Anda tetapkan ke volume, dalam
MiB atau GiB (ditetapkan sebagai Mi atau Gi), misalnya,
500Mi
. Batas ini harus kurang dari total memori yang ditentukan untuk container Anda.
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml