Halaman ini menjelaskan penggunaan sistem file jaringan NBD, 9P, CIFS/Samba, dan Ceph dengan Cloud Run.
Jika Anda menggunakan NFS, Filestore, atau Cloud Storage FUSE di Cloud Run, lihat halaman berikut:
- Konfigurasi volume NFS untuk layanan atau tugas
- Konfigurasi volume Cloud Storage untuk layanan atau tugas
Anda dapat menggunakan sistem file jaringan NBD, 9P, CIFS/Samba, dan Ceph untuk berbagi dan mempertahankan data di antara beberapa container dan layanan di Cloud Run. Fitur ini hanya tersedia jika Anda menggunakan Cloud Run lingkungan eksekusi generasi kedua.
Jika Anda perlu membaca dan menulis file di layanan Cloud Run menggunakan sistem file ini, Anda memiliki beberapa opsi:
- Jika Anda tidak perlu mempertahankan data setelah masa aktif instance, Anda dapat menggunakan sistem file memori bawaan.
- Jika Anda perlu mempertahankan data di luar masa aktif instance, dan ingin menggunakan semantik sistem file standar, gunakan sistem file jaringan NDB, 9P, CIFS/Samba, dan Ceph dengan Cloud Run.
- Jika Anda perlu mempertahankan data di luar masa aktif instance, dan tidak memerlukan semantik sistem file standar, opsi yang paling sederhana adalah dengan menggunakan library klien Cloud Storage. Ini juga merupakan opsi yang baik jika Anda perlu mengakses data dari banyak instance secara bersamaan.
Batasan
Pertimbangan berikut berlaku untuk penggunaan sistem file jaringan NDB, 9P, CIFS/Samba, dan Ceph di Cloud Run:
Anda harus menentukan lingkungan eksekusi generasi kedua saat kamu men-deploy to Cloud Run
Cloud Run dirancang untuk diskalakan dengan cepat ke jumlah instance yang sangat banyak. Namun, sebagian besar sistem file jaringan tidak didesain untuk digunakan serentak oleh klien dalam jumlah besar. Pertimbangkan untuk menggunakan fitur instance maksimumuntuk membatasi jumlah instance Cloud Run.
Menyiapkan sistem file jaringan
Jika Anda belum menyiapkan server file, ikuti panduan solusi Server file di Compute Engine untuk memilih dan menyiapkan sistem file yang tepat sesuai kebutuhan Anda. Jika Anda menggunakan server file yang sudah ada, pastikan server file tersebut dapat diakses dari jaringan VPC
Mengkonfigurasi konektor Akses VPC Serverless
Anda harus menggunakan konektor Akses VPC Tanpa Server untuk menghubungkan layanan Cloud Run Anda ke jaringan VPC tempat sistem file jaringan Anda yang sedang berjalan.
Untuk membuat konektor Akses VPC Tanpa Server di jaringan VPC yang sama agar dapat terhubung ke layanan Cloud Run, ikuti petunjuk di halaman Menghubungkan ke jaringan VPC.
Memasang sistem file dari layanan Cloud Run
Untuk memasang sistem file jaringan:
Menentukan skrip startup yang memulai aplikasi dan menentukan titik pemasangan Dockerfile Anda, menggunakan contoh berikut, dengan mengganti variabel sesuai kebutuhan:
Untuk NBD
echo "mounting ext4 image via NBD" nbd-client -L -name image IP_ADDRESS DEVICE_NAME mount DEVICE_NAME MOUNT_POINT_DIRECTORY
Untuk PD-SSD via NBD
echo "mounting PD-SSD via NBD" nbd-client -L -name disk IP_ADDRESS DEVICE_NAME mount DEVICE_NAME MOUNT_POINT_DIRECTORY
Untuk 9P
echo "mounting 9p export" mount -t 9p -o trans=tcp,aname=/mnt/diod,version=9p2000.L,uname=root,access=user IP_ADDRESS MOUNT_POINT_DIRECTORY
Untuk SMB
echo "mounting SMB public share" mount -t cifs -ousername=USERNAME,password=PASSWORD,ip=IP_ADDRESS //FILESHARE_NAME MOUNT_POINT_DIRECTORY echo "mounts completed"
Menentukan konfigurasi lingkungan Anda dengan Dockerfile. Anda akan menggunakan
RUN
untuk menentukan paket sistem tambahan yang diperlukan, sepertinbd-client
untuk NBD. GunakanCMD
untuk menentukan perintah yang akan dieksekusi saat menjalankan image (skrip startuprun.sh
) dan untuk memberikan argumen default untukENTRYPOINT
, yang menentukan biner proses init.
Mengakses sistem file jaringan dari kode layanan Cloud Run
Untuk mengakses sistem file jaringan dalam kode layanan Anda, gunakan operasi baca dan tulis file seperti yang biasa Anda lakukan.
Menyimpan data ke dalam container dan men-deploy
Setelah kode layanan Cloud Run selesai, lakukan containerize, dan deploy seperti yang biasa Anda lakukan untuk layanan Cloud Run, pastikan Anda menentukannya lingkungan eksekusi generasi kedua.