Utilizzo di file system di rete NBD, 9P, CIFS/Samba e Ceph

In questa pagina viene descritto l'utilizzo di file system di rete NBD, 9P, CIFS/Samba e Ceph con Cloud Run.

Se utilizzi NFS, Filestore o Cloud Storage FUSE su Cloud Run, consulta le seguenti pagine:

  • Configurazione del volume NFS per servizi o job
  • Configurazione dei volumi di Cloud Storage per servizi o job

Puoi utilizzare i file system di rete NBD, 9P, CIFS/Samba e Ceph per condividere e rendere persistenti i dati tra più container e servizi in Cloud Run. Questa funzionalità è disponibile solo se utilizzi l'ambiente di esecuzione di seconda generazione di Cloud Run.

Se hai bisogno di leggere e scrivere file nel servizio Cloud Run utilizzando questo file system, hai diverse opzioni:

  • Se non hai bisogno di salvare i dati oltre la durata dell'istanza, puoi utilizzare il file system di memoria integrato.
  • Se hai bisogno di rendere i dati persistenti oltre la durata delle istanze e vuoi utilizzare la semantica standard del file system, utilizza i file system di rete NDB, 9P, CIFS/Samba e Ceph con Cloud Run.
  • Se hai bisogno di rendere i dati persistenti oltre la durata delle istanze e non hai bisogno di una semantica standard del file system, l'opzione più semplice è utilizzare le librerie client di Cloud Storage. Si tratta di una buona soluzione anche per accedere ai dati di più istanze contemporaneamente.

Limitazioni

Le seguenti considerazioni si applicano all'utilizzo di file system di rete NDB, 9P, CIFS/Samba e Ceph su Cloud Run:

  • Devi specificare l'ambiente di esecuzione di seconda generazione quando esegui il deployment in Cloud Run.

  • Cloud Run è progettato per scalare rapidamente su un numero elevato di istanze. Tuttavia, la maggior parte dei file system di rete non è progettata per l'uso simultaneo da parte di un numero elevato di client. Valuta l'utilizzo della funzionalità Numero massimo di istanze per limitare il numero di istanze Cloud Run.

Configurare un file system di rete

Se non hai ancora configurato un file server, segui la guida alla soluzione File server su Compute Engine per selezionare e configurare il file system più adatto alle tue esigenze. Se usi un file server esistente, assicurati che sia accessibile da una rete VPC

Configura un connettore di accesso VPC serverless

Devi utilizzare il connettore di accesso VPC serverless per connettere il servizio Cloud Run alla rete VPC su cui è in esecuzione il file system di rete.

Per creare un connettore di accesso VPC serverless sulla stessa rete VPC per connetterti al servizio Cloud Run, segui le istruzioni nella pagina Connessione a una rete VPC.

Monta il file system dal servizio Cloud Run

Per montare un file system di rete:

  1. Definisci uno script di avvio che avvii l'applicazione e specifichi il punto di montaggio del Dockerfile utilizzando i seguenti esempi, sostituendo le variabili in base alle esigenze:

    • Per NBD

       echo "mounting ext4 image via NBD"
       nbd-client -L -name image IP_ADDRESS DEVICE_NAME
       mount DEVICE_NAME MOUNT_POINT_DIRECTORY

    • Per PD-SSD tramite NBD

       echo "mounting PD-SSD via NBD"
       nbd-client -L -name disk IP_ADDRESS DEVICE_NAME
       mount DEVICE_NAME MOUNT_POINT_DIRECTORY

    • Per 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

    • Per PMI

       echo "mounting SMB public share"
       mount -t cifs -ousername=USERNAME,password=PASSWORD,ip=IP_ADDRESS //FILESHARE_NAME MOUNT_POINT_DIRECTORY
       echo "mounts completed"

  2. Definisci la configurazione dell'ambiente con il Dockerfile. Utilizzerai RUN per specificare eventuali pacchetti di sistema aggiuntivi necessari, ad esempio nbd-client per NBD. Utilizza CMD per specificare il comando da eseguire durante l'esecuzione dell'immagine (lo script di avvio run.sh) e per fornire argomenti predefiniti per ENTRYPOINT, che specifica il programma binario del processo di inizializzazione.

Accedi a un file system di rete dal codice di servizio Cloud Run

Per accedere ai file system di rete nel codice di servizio, utilizza le operazioni di lettura e scrittura di file come fai di solito.

Containerizza ed esegui il deployment

Quando il codice del servizio Cloud Run è completo, containerize ed deploy come fai di solito per un servizio Cloud Run, assicurati di specificare l'ambiente di esecuzione di seconda generazione.

Passaggi successivi