Montagens de volumes do Cloud Storage para serviços

Nesta página, você aprende a montar um bucket do Cloud Storage como um volume de armazenamento usando as montagens de volumes do Cloud Run.

Ao montar o bucket como um volume no Cloud Run, o conteúdo dele é apresentado como arquivos no sistema de arquivos do contêiner, o que permite o uso de operações e bibliotecas padrão do sistema de arquivos para acessar esse sistema.

.

Limitações

O Cloud Run usa o Cloud Storage FUSE para essa montagem de volume. Devido a isso, há alguns pontos a serem considerados ao montar um bucket do Cloud Storage como um volume:

  • O Cloud Storage FUSE não oferece controle de simultaneidade para várias gravações (bloqueio de arquivo) no mesmo arquivo. Quando várias gravações tentam substituir um arquivo, a última é bem-sucedida e todas as anteriores são perdidas.
  • O Cloud Storage FUSE não é um sistema de arquivos totalmente compatível com POSIX. Para mais detalhes, consulte a documentação do Cloud Storage FUSE.

Antes de começar

Você precisa de um bucket do Cloud Storage para montar como o volume.

Montar um volume do Cloud Storage

É possível montar vários buckets em diferentes caminhos de montagem. Também é possível montar um volume em mais de um contêiner usando caminhos de montagem iguais ou diferentes nos contêineres.

Ao usar vários contêineres, primeiro especifique os volumes e, depois, as montagens de volume de cada contêiner.

Console

  1. No console do Google Cloud, acesse o Cloud Run:

    Acesse o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Se você estiver configurando um novo serviço, preencha a página inicial de configurações do serviço conforme preferir e clique em Contêineres, volumes, rede, segurança para expandir a página de configurações do serviço.

  4. Clique na guia Volumes.

    imagem

    • Em Volumes:
      • Clique em Adicionar volume.
      • No menu suspenso Tipo de volume, selecione o bucket do Cloud Storage como o tipo.
      • No campo Nome do volume, digite o nome que você quer usar para o volume.
      • Procure e selecione o bucket do Cloud Storage a ser usado para o volume ou, se quiser, crie um novo bucket.
      • Se você quiser tornar o bucket somente leitura, marque a caixa de seleção "Somente leitura".
      • Clique em Concluído.
      • Clique na guia "Contêiner".
      • Clique na guia Montagens de volumes.
      • Clique em Montar volume.
      • Selecione o volume de armazenamento no menu.
      • Especifique o caminho em que você quer montar o volume.
      • Clique em Concluir.
  5. Clique em Criar ou Implantar.

Linha de comando

Observação: mostramos o comando gcloud beta run services update, mas também é possível usar o comando gcloud beta run deploy com os mesmos parâmetros mostrados.

  • Para adicionar um volume e montá-lo:

    gcloud beta run services update SERVICE \
    --execution-environment gen2 \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

    Substitua:

    • SERVICE pelo nome do serviço;
    • MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo, /cache.
    • VOLUME_NAME pelo nome que você quiser para o volume. O valor VOLUME_NAME é usado para mapear o volume para a montagem associada.
    • BUCKET_NAME pelo nome do bucket do Cloud Storage.
  • Para montar o volume como somente leitura:

--add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
  • Se você estiver usando vários contêineres, primeiro especifique os volumes e, em seguida, as ativações de volume para cada contêiner:

    gcloud beta run services update SERVICE \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \
    --container CONTAINER_1 \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH \
    --container CONTAINER_2 \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH2

YAML

É possível fazer o download e conferir as configurações de serviço usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run services replace. Modifique os campos somente conforme documentado.

  1. Para exibir e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Faça as atualizações necessárias.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/execution-environment: gen2
        spec:
          containers:
          - image: IMAGE_URL
            volumeMounts:
            - name: VOLUME_NAME
              mountPath: MOUNT_PATH
          volumes:
          - name: VOLUME_NAME
            csi:
              driver: gcsfuse.run.googleapis.com
              readOnly: IS_READ_ONLY
              volumeAttributes:
                bucketName: BUCKET_NAME

    Substituir

    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo, /cache.
    • VOLUME_NAME pelo nome que você quiser para o volume. O valor VOLUME_NAME é usado para mapear o volume para a montagem associada.
    • IS_READ_ONLY com True para tornar o volume somente leitura ou False para permitir gravações.
    • BUCKET_NAME pelo nome do bucket do Cloud Storage.
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml

Ver configurações de montagens de volumes

Para ver as configurações atuais de montagem de volumes no serviço do Cloud Run:

Console

  1. No console do Google Cloud, acesse o Cloud Run:

    Acesse o Cloud Run

  2. Clique no serviço de seu interesse para abrir a página Detalhes do serviço.

  3. Clique na guia Revisões.

  4. No painel de detalhes à direita, a configuração de montagem de volumes está listada na guia Volumes.

Linha de comando

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize a configuração de montagens de volume na configuração retornada.