Cette page décrit l'utilisation des systèmes de fichiers réseau NBD, 9P, CIFS/Samba et Ceph avec Cloud Run.
Si vous utilisez NFS, Filestore ou Cloud Storage FUSE sur Cloud Run, consultez les pages suivantes :
- Configuration de volume NFS pour les services ou les jobs
- Configuration de volume Cloud Storage pour les services ou les tâches
Vous pouvez utiliser les systèmes de fichiers réseau NBD, 9P, CIFS/Samba et Ceph pour partager et conserver des données entre plusieurs conteneurs et services dans Cloud Run. Cette fonctionnalité n'est disponible que si vous utilisez l'environnement d'exécution de deuxième génération Cloud Run.
Si vous devez lire et écrire des fichiers dans votre service Cloud Run à l'aide de ce système de fichiers, plusieurs options s'offrent à vous :
- Si vous n'avez pas besoin de conserver les données au-delà de la durée de vie de l'instance, vous pouvez utiliser le système de fichiers en mémoire intégré.
- Si vous souhaitez conserver des données au-delà de la durée de vie des instances et que vous souhaitez utiliser la sémantique standard du système de fichiers, utilisez les systèmes de fichiers réseau NDB, 9P, CIFS/Samba et Ceph avec Cloud Run.
- Si vous devez conserver des données au-delà de la durée de vie des instances et que vous n'avez pas besoin de sémantique du système de fichiers standard, l'option la plus simple consiste à utiliser les bibliothèques clientes Cloud Storage. Il s'agit également d'une bonne option si vous devez accéder aux données à partir de plusieurs instances en même temps.
Limites
Les considérations suivantes s'appliquent à l'utilisation des systèmes de fichiers réseau NDB, 9P, CIFS/Samba et Ceph sur Cloud Run :
Vous devez spécifier l'environnement d'exécution de deuxième génération lorsque vous effectuez un déploiement sur Cloud Run.
Cloud Run est conçu pour évoluer rapidement vers un grand nombre d'instances. Cependant, la plupart des systèmes de fichiers réseau ne sont pas conçus pour être utilisés simultanément par un grand nombre de clients. Envisagez d'utiliser la fonctionnalité de nombre maximal d'instances pour limiter le nombre d'instances Cloud Run.
Configurer un système de fichiers réseau
Si vous n'avez pas encore configuré de serveur de fichiers, suivez le guide de solution Serveurs de fichiers sur Compute Engine pour sélectionner et configurer le système de fichiers adapté à vos besoins. Si vous utilisez un serveur de fichiers existant, assurez-vous qu'il est accessible depuis un réseau VPC.
Configurer un connecteur d'accès au VPC sans serveur
Vous devez utiliser le connecteur d'accès au VPC sans serveur pour connecter votre service Cloud Run au réseau VPC où votre système de fichiers réseau est exécuté.
Pour créer un connecteur d'accès au VPC sans serveur sur le même réseau VPC afin de vous connecter au service Cloud Run, suivez les instructions de la page Se connecter à un réseau VPC.
Installer le système de fichiers à partir de votre service Cloud Run
Pour installer un système de fichiers réseau, procédez comme suit :
Définissez un script de démarrage qui lance votre application et spécifie le point d'installation du Dockerfile, à l'aide des exemples suivants, en remplaçant les variables si nécessaire :
Pour NBD :
echo "mounting ext4 image via NBD" nbd-client -L -name image IP_ADDRESS DEVICE_NAME mount DEVICE_NAME MOUNT_POINT_DIRECTORY
Pour les disques persistants SSD via NBD :
echo "mounting PD-SSD via NBD" nbd-client -L -name disk IP_ADDRESS DEVICE_NAME mount DEVICE_NAME MOUNT_POINT_DIRECTORY
Pour 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
Pour SMB :
echo "mounting SMB public share" mount -t cifs -ousername=USERNAME,password=PASSWORD,ip=IP_ADDRESS //FILESHARE_NAME MOUNT_POINT_DIRECTORY echo "mounts completed"
Définissez la configuration de votre environnement avec le Dockerfile. Vous utiliserez
RUN
pour spécifier tout package système supplémentaire requis, tel quenbd-client
pour NBD. UtilisezCMD
pour spécifier la commande à exécuter lors de l'exécution de l'image (le script de démarragerun.sh
) et pour fournir des arguments par défaut pourENTRYPOINT
, qui spécifie le binaire du processus d'initialisation.
Accéder à un système de fichiers réseau à partir du code de service Cloud Run
Pour accéder aux systèmes de fichiers réseau dans votre code de service, utilisez les opérations de lecture et d'écriture de fichier comme vous le faites habituellement.
Conteneuriser et déployer
Une fois le code de service Cloud Run terminé, containerize et déployez comme vous le faites généralement pour un service Cloud Run, en veillant à spécifier l'environnement d'exécution de deuxième génération.
Étapes suivantes
- Utilisez NFS pour les services ou les jobs.
- Utilisez Cloud Storage FUSE pour les services ou les jobs.