Usa sistemas de archivos de red NBD, 9P, CIFS/Samba y Ceph

En esta página, se describe el uso de sistemas de archivos de red NBD, 9P, CIFS/Samba y Ceph con Cloud Run.

Si usas NFS, Filestore o Cloud Storage FUSE en Cloud Run, consulta las siguientes páginas:

Puedes usar sistemas de archivos de red NBD, 9P, CIFS/Samba y Ceph para compartir y conservar datos entre varios contenedores y servicios en Cloud Run. Esta función solo está disponible si usas el entorno de ejecución de segunda generación de Cloud Run.

Si necesitas leer y escribir archivos en el servicio de Cloud Run con un sistema de archivos, tienes varias opciones:

  • Si no necesitas conservar los datos más allá de la vida útil de la instancia, puedes usar el sistema de archivos de memoria integrado.
  • Si necesitas conservar datos más allá de la vida útil de la instancia y deseas usar la semántica del sistema de archivos estándar, usa los sistemas de archivos de red NDB, 9P, CIFS/Samba y Ceph con Cloud Run.
  • Si necesitas conservar datos aparte de la vida útil de la instancia y no necesitas la semántica del sistema de archivos estándar, la opción más simple es usar las bibliotecas cliente de Cloud Storage. Esta también es una buena opción si necesitas acceder a los datos de muchas instancias al mismo tiempo.

Limitaciones

Las siguientes consideraciones se aplican al uso de los sistemas de archivos de red NDB, 9P, CIFS/Samba y Ceph en Cloud Run:

  • Debes especificar el entorno de ejecución de segunda generación cuando realices la implementación en Cloud Run.

  • Cloud Run está diseñado para escalar con rapidez a una gran cantidad de instancias. Sin embargo, la mayoría de los sistemas de archivos de red no están diseñados para su uso simultáneo por una gran cantidad de clientes. Considera usar la función de cantidad máxima de instancias para limitar la cantidad de instancias de Cloud Run.

Configura un sistema de archivos de red

Si aún no tienes configurado un servidor de archivos, sigue la guía de soluciones de Servidores de archivos en Compute Engine a fin de seleccionar y configurar el sistema de archivos adecuado para tus necesidades. Si usas un servidor de archivos existente, asegúrate de que se pueda acceder a él desde una red de VPC.

Configura un conector de Acceso a VPC sin servidores

Debes usar el conector de acceso a VPC sin servidores para conectar el servicio de Cloud Run a la red de VPC en la que se ejecuta el sistema de archivos de red.

A fin de crear un conector de Acceso a VPC sin servidores en la misma red de VPC para conectarte al servicio de Cloud Run, sigue las instrucciones de la página Conéctate a una red de VPC.

Activa el sistema de archivos desde tu servicio de Cloud Run

Para activar un sistema de archivos de red:

  1. Define una secuencia de comandos de inicio que inicie la aplicación y especifique el punto de activación del Dockerfile mediante los siguientes ejemplos, y reemplaza las variables según sea necesario:

    • Para NBD

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

    • Para PD-SSD a través de NBD

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

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

    • Para 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. Define la configuración del entorno con el Dockerfile Usarás RUN a fin de especificar cualquier paquete del sistema adicional necesario, como nbd-client para NBD. Usa CMD a fin de especificar el comando que se ejecutará cuando se ejecute la imagen (la secuencia de comandos de inicio run.sh) y proporciona argumentos predeterminados para ENTRYPOINT, que especifica el objeto binario del proceso init.

Accede a un sistema de archivos de red desde el código de servicio de Cloud Run

Para acceder a los sistemas de archivos de red en el código de servicio, usa las operaciones de lectura y escritura de archivos como lo haces normalmente.

Implementa y organiza en contenedores

Cuando se complete el código de servicio de Cloud Run, aloja en contenedores e implementa como sueles hacer en un servicio de Cloud Run, asegúrate de especificar el entorno de ejecución de segunda generación.

¿Qué sigue?