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:
- Configuración de volúmenes NFS para servicios o trabajos
- Configuración del volumen de Cloud Storage para servicios o trabajos
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 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 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:
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"
Define la configuración del entorno con el Dockerfile Usarás
RUN
a fin de especificar cualquier paquete del sistema adicional necesario, comonbd-client
para NBD. UsaCMD
a fin de especificar el comando que se ejecutará cuando se ejecute la imagen (la secuencia de comandos de iniciorun.sh
) y proporciona argumentos predeterminados paraENTRYPOINT
, 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.