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:
- Configuração de volume do NFS para serviços ou jobs
- Configuração de volume do Cloud Storage para serviços ou jobs
É 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:
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"
Definir sua configuração de ambiente com o Dockerfile Você usará
RUN
para especificar qualquer pacote extra de sistema necessário, comonbd-client
para NBD. UseCMD
para especificar o comando a ser executado ao executar a imagem (o script de inicializaçãorun.sh
) e fornecer argumentos padrão paraENTRYPOINT
, 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.