Questa pagina descrive l'utilizzo dei 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, job o pool di worker.
- Configurazione del volume Cloud Storage per servizi, job o pool di worker.
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, job o pool di worker in Cloud Run. Questa funzionalità è disponibile solo se utilizzi l'ambiente di esecuzione di seconda generazione di Cloud Run.
Se devi leggere e scrivere file nel tuo servizio, job o pool di worker Cloud Run utilizzando questo file system, hai diverse opzioni:
- Se non devi conservare i dati oltre la durata dell'istanza, puoi utilizzare il file system di memoria integrato.
- Se devi conservare i dati 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 devi rendere persistenti i dati oltre la durata delle istanze e non hai bisogno della semantica standard del file system, l'opzione più semplice è utilizzare le librerie client di Cloud Storage. Questa è anche una buona opzione se devi accedere ai dati di molte istanze contemporaneamente.
Limitazioni
Le seguenti considerazioni si applicano all'utilizzo dei 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 su Cloud Run.
Cloud Run è progettato per scalare rapidamente a un numero elevato di istanze. Tuttavia, la maggior parte dei file system di rete non è progettata per l'utilizzo simultaneo da parte di un numero elevato di client. Per i servizi Cloud Run, valuta la possibilità di utilizzare la funzionalità istanze massime 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 giusto per le tue esigenze. Se utilizzi 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 in 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 riportate nella pagina Connessione a una rete VPC.
Monta il file system dal servizio Cloud Run
Per montare un file system di rete:
Definisci uno script di avvio che avvii l'applicazione e specifichi il punto di montaggio del Dockerfile, utilizzando gli esempi seguenti e 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 SMB
echo "mounting SMB public share" mount -t cifs -ousername=USERNAME,password=PASSWORD,ip=IP_ADDRESS //FILESHARE_NAME MOUNT_POINT_DIRECTORY echo "mounts completed"
Definisci la configurazione dell'ambiente con Dockerfile. Utilizzerai
RUN
per specificare eventuali pacchetti di sistema aggiuntivi necessari, ad esempionbd-client
per NBD. UtilizzaCMD
per specificare il comando da eseguire quando viene eseguita l'immagine (lo script di avviorun.sh
) e per fornire argomenti predefiniti perENTRYPOINT
, che specifica il binario del processo init.
Accedere a un file system di rete dal codice del servizio Cloud Run
Per accedere ai file system di rete nel codice del servizio, del job o del pool di worker, utilizza le operazioni di lettura e scrittura dei file come di consueto.
Containerizza ed esegui il deployment
Quando il codice del servizio Cloud Run è completo, containerizzalo ed esegui il deployment come di solito per un servizio Cloud Run, assicurandoti di specificare l'ambiente di esecuzione di seconda generazione.
Passaggi successivi
- Utilizzo di NFS per servizi, job o pool di worker
- Utilizzo di Cloud Storage FUSE per servizi, job o pool di worker