Utiliser les systèmes de fichiers réseau NBD, 9P, CIFS/Samba et Ceph

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 :

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 :

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

  2. Définissez la configuration de votre environnement avec le Dockerfile. Vous utiliserez RUN pour spécifier tout package système supplémentaire requis, tel que nbd-client pour NBD. Utilisez CMD pour spécifier la commande à exécuter lors de l'exécution de l'image (le script de démarrage run.sh) et pour fournir des arguments par défaut pour ENTRYPOINT, 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