Menggunakan sistem file jaringan NBD, 9P, CIFS/Samba, dan Ceph

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:

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:

  1. 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"

  2. Menentukan konfigurasi lingkungan Anda dengan Dockerfile. Anda akan menggunakan RUN untuk menentukan paket sistem tambahan yang diperlukan, seperti nbd-client untuk NBD. Gunakan CMD untuk menentukan perintah yang akan dieksekusi saat menjalankan image (skrip startup run.sh) dan untuk memberikan argumen default untuk ENTRYPOINT, 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.

Langkah selanjutnya