Como usar sistemas de arquivos de rede NBD, 9P, CIFS/Samba e Ceph

Nesta página, descrevemos como usar os sistemas de arquivos de rede NBD, 9P, CIFS/Samba e Ceph com o Cloud Run.

Se você estiver usando NFS, Filestore ou Cloud Storage FUSE no Cloud Run, consulte as seguintes páginas:

É possível usar os sistemas de arquivos de rede NBD, 9P, CIFS/Samba e Ceph para compartilhar e manter dados entre vários contêineres e serviços no Cloud Run. Esse recurso só estará disponível se você estiver usando o ambiente de execução de segunda geração do Cloud Run.

Se você precisar ler e gravar arquivos no serviço do Cloud Run usando um sistema de arquivos, terá várias opções:

  • Se você não precisar manter os dados além do ciclo de vida da instância, use o sistema de arquivos de memória integrado.
  • Se você precisar manter os dados além dos ciclos de vida da instância e quiser usar a semântica de sistema de arquivos padrão, use sistemas de arquivos de rede NDB, 9P, CIFS/Samba e Ceph com o Cloud Run.
  • Se você precisar manter os dados além dos ciclos de vida da instância e não precisar da semântica padrão do sistema de arquivos, a opção mais simples será usar bibliotecas de cliente do Cloud Storage. Essa também é uma boa opção se você precisar acessar dados de muitas instâncias ao mesmo tempo.

Limitações

As seguintes considerações se aplicam ao uso de sistemas de arquivos de rede NDB, 9P, CIFS/Samba e Ceph no Cloud Run:

  • É preciso especificar o ambiente de execução da segunda geração ao implantar no Cloud Run.

  • O Cloud Run foi projetado para escalonar rapidamente para um grande número de instâncias. No entanto, a maioria dos sistemas de arquivos de rede não é projetada para uso simultâneo por um grande número de clientes. Use o recurso de instâncias máximas para limitar o número de instâncias do Cloud Run.

Configurar um sistema de arquivos de rede

Se você ainda não tiver um servidor de arquivos configurado, siga o guia de soluções Servidores de arquivos no Compute Engine para selecionar e configurar o sistema de arquivos certo para suas necessidades. Se você estiver usando um servidor de arquivos atual, verifique se ele pode ser acessado de uma rede VPC

Configurar um conector de acesso VPC sem servidor

É necessário usar o conector de acesso VPC sem servidor para conectar o serviço do Cloud Run à rede VPC em que o sistema de arquivos de rede está sendo executado.

Para criar um conector de acesso VPC sem servidor na mesma rede VPC para se conectar ao serviço do Cloud Run, siga as instruções na página Como se conectar a uma rede VPC.

Montar o sistema de arquivos do serviço do Cloud Run

Para montar um sistema de arquivos de rede:

  1. Defina um script de inicialização que inicie seu aplicativo e especifique o ponto de montagem do Dockerfile. Para isso, use os exemplos a seguir e substitua as variáveis conforme necessário:

    • 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 via 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 PMEs

       echo "mounting SMB public share"
       mount -t cifs -ousername=USERNAME,password=PASSWORD,ip=IP_ADDRESS //FILESHARE_NAME MOUNT_POINT_DIRECTORY
       echo "mounts completed"

  2. Definir sua configuração de ambiente com o Dockerfile Você usará RUN para especificar qualquer pacote extra de sistema necessário, como nbd-client para NBD. Use CMD para especificar o comando a ser executado ao executar a imagem (o script de inicialização run.sh) e fornecer argumentos padrão para ENTRYPOINT, que especifica o binário do processo init.

Acessar um sistema de arquivos de rede pelo código de serviço do Cloud Run

Para acessar os sistemas de arquivos de rede no código de serviço, use operações de leitura e gravação de arquivos, como faz normalmente.

Conteinerizar e implantar

Quando o código de serviço do Cloud Run estiver concluído, coloque em um contêiner e faça a implantação como costuma fazer em um serviço do Cloud Run. Lembre-se de especificar ambiente de execução da segunda geração.

A seguir