Pemasangan volume NFS untuk layanan

Halaman ini menunjukkan cara memasang berbagi file NFS sebagai volume di Cloud Run. Anda dapat menggunakan server NFS apa pun, termasuk server NFS Anda sendiri yang dihosting di infrastruktur lokal atau di VM Compute Engine. Jika Anda belum memiliki server NFS, sebaiknya gunakan Filestore, yang merupakan penawaran NFS terkelola sepenuhnya dari Google Cloud.

Jika Anda ingin menggunakan sistem file jaringan NBD, 9P, CIFS/Samba, dan Ceph, lihat menggunakan sistem file jaringan NBD, 9P, CIFS/Samba, dan Ceph.

Batasan

  • Untuk menulis ke volume NFS, container Anda harus dijalankan sebagai root. Jika penampung Anda hanya membaca dari sistem file, penampung tersebut dapat dijalankan sebagai pengguna mana pun.

  • Cloud Run tidak mendukung penguncian NFS. Volume NFS secara otomatis terpasang dalam mode tanpa kunci.

Sebelum memulai

Untuk memasang server NFS sebagai volume di Cloud Run, pastikan Anda memiliki hal berikut:

  • Jaringan VPC tempat server NFS atau instance Filestore Anda dijalankan.
  • Server NFS yang berjalan di jaringan VPC, dengan layanan Cloud Run Anda yang terhubung ke jaringan VPC tersebut. Jika Anda belum memiliki server NFS, buat server dengan membuat instance Filestore.
  • Layanan Cloud Run Anda terhubung ke jaringan VPC tempat server NFS Anda berjalan. Untuk performa terbaik, gunakan VPC Langsung, bukan Konektor VPC.
  • Jika Anda menggunakan project yang sudah ada, pastikan konfigurasi Firewall VPC Anda mengizinkan Cloud Run untuk menjangkau server NFS Anda. (Jika Anda memulai dari project baru, ini benar secara default.) Jika Anda menggunakan Filestore sebagai server NFS, ikuti dokumentasi Filestore untuk membuat aturan traffic keluar Firewall, agar Cloud Run dapat menjangkau Filestore.

Memasang volume NFS

Anda dapat memasang beberapa server NFS, instance Filestore, atau jenis volume lainnya di jalur pemasangan yang berbeda.

Jika Anda menggunakan beberapa container, tentukan volume terlebih dahulu, lalu tentukan pemasangan volume untuk setiap container.

Command line

Catatan: Kami menampilkan perintah gcloud beta run services update, tetapi Anda juga dapat menggunakan perintah gcloud beta run services deploy dengan parameter yang sama seperti yang ditunjukkan.

  • Untuk menambahkan volume dan memasangnya:
gcloud beta run services update SERVICE \
--add-volume=name=VOLUME_NAME,type=nfs,location=IP_ADDRESS:NFS_PATH \
--add-volume-mount=volume=VOLUME_NAME,mount-path=MOUNT_PATH

Ganti:

  • SERVICE dengan nama layanan Anda.
  • VOLUME_NAME dengan nama yang ingin Anda berikan volume.
  • IP_ADDRESS dengan lokasi berbagi file NFS.
  • NFS_PATH dengan jalur ke berbagi file NFS.
  • MOUNT_PATH dengan jalur relatif tempat Anda memasang volume, misalnya, /cache.
  • VOLUME_NAME dengan nama apa pun yang Anda inginkan untuk volume. Nilai VOLUME_NAME digunakan untuk memetakan volume ke pemasangan volume.

  • Untuk memasang volume sebagai volume hanya baca:

    --add-volume=name=VOLUME_NAME,type=nfs,location=IP_ADDRESS:NFS_PATH,readonly=true
  • Jika Anda menggunakan beberapa container, tentukan volume terlebih dahulu, lalu tentukan pemasangan volume untuk setiap container:

    gcloud beta run services update SERVICE \
    --add-volume=name VOLUME_NAME,type=nfs,location=IP_ADDRESS:NFS_PATH \
    --container CONTAINER_1 \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH \
    --container CONTAINER_2 \
    --add-volume-mount volume= VOLUME_NAME,mount-path=MOUNT_PATH2

YAML

Anda dapat mendownload dan melihat konfigurasi layanan yang ada menggunakan perintah gcloud run services describe --format export, yang memberikan hasil yang telah diolah dalam format YAML. Kemudian, Anda dapat mengubah kolom yang dijelaskan di bawah ini dan mengunggah YAML yang telah dimodifikasi menggunakan perintah gcloud run services replace. Pastikan Anda hanya mengubah kolom seperti yang didokumentasikan.

  1. Untuk melihat dan mengunduh konfigurasi:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Update MOUNT_PATH, VOLUME_NAME, IP_ADDRESS, dan NFS_PATH sesuai kebutuhan. Jika memiliki beberapa pemasangan volume, Anda akan memiliki beberapa atribut ini.

    apiVersion: run.googleapis.com/v1
    kind: Service
    metadata:
      name: SERVICE
        annotations:
          run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/execution-environment: gen2
        spec:
          containers:
          - image: IMAGE_URL
            volumeMounts:
            - name: VOLUME_NAME
              mountPath: MOUNT_PATH
          volumes:
          - name: VOLUME_NAME
            nfs:
              server: IP_ADDRESS
              path: NFS_PATH
              readonly: IS_READ_ONLY

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda
    • MOUNT_PATH dengan jalur relatif tempat Anda memasang volume, misalnya, /cache.
    • VOLUME_NAME dengan nama apa pun yang Anda inginkan untuk volume. Nilai VOLUME_NAME digunakan untuk memetakan volume ke pemasangan volume.
    • IP_ADDRESS dengan alamat berbagi file NFS.
    • NFS_PATH dengan jalur ke berbagi file NFS.
    • IS_READ_ONLY dengan True untuk membuat volume menjadi hanya baca, atau False untuk mengizinkan penulisan.
  3. Ganti layanan dengan konfigurasinya yang baru menggunakan perintah berikut:

    gcloud beta run services replace service.yaml

Memecahkan masalah NFS

Jika Anda mengalami masalah, periksa hal berikut:

  • Layanan Cloud Run Anda terhubung ke jaringan VPC tempat server NFS berada.
  • Tidak ada aturan firewall yang mencegah Cloud Run menjangkau server NFS.
  • Jika container Anda menulis ke server NFS, pastikan container tersebut dijalankan sebagai root.