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.
Montar o bucket como um volume no Cloud Run apresenta o bucket conteúdo como arquivos no sistema de arquivos do contêiner. Depois de ativar o bucket, como um volume, você acessa o bucket como se fosse um diretório no arquivo local do sistema de arquivos, usando as operações e bibliotecas do sistema de arquivos da sua linguagem de programação em vez das bibliotecas de cliente das APIs do Google.
Você pode montar o volume como somente leitura e também especificar opções de montagem para ele.
.Requisitos de memória
As montagens de volume do Cloud Storage usam a memória do contêiner do Cloud Run para as seguintes atividades:Para todo o armazenamento em cache do Cloud Storage FUSE, o Cloud Run usa a configuração de cache de estatísticas com um Time to live (TTL) de 60 segundos por padrão. O tamanho máximo padrão do cache de estatísticas é 32 MB, e o tamanho máximo padrão do cache de tipo é 4 MB.
Durante a leitura, o Cloud Storage FUSE também consome memórias diferentes de caches de estatística e tipo, por exemplo, uma matriz de 1 MiB para cada arquivo que está sendo lido e para goroutines.
Ao gravar no Cloud Storage, o arquivo inteiro é preparado na memória do Cloud Run antes de ser gravado no Cloud Storage.
Limitações
Como o Cloud Run usa o Cloud Storage FUSE para essa montagem de volume, há algumas coisas a serem lembradas 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.
Caminhos não permitidos
O Cloud Run não permite montar um volume em /dev
,
/proc
ou /sys
, ou nos subdiretórios deles.
Antes de começar
Você precisa de um bucket do Cloud Storage para montar como o volume.
Para ter o melhor desempenho de leitura/gravação no Cloud Storage, consulte Como otimizar o desempenho da largura de banda de rede do Cloud Storage FUSE.
Funções exigidas
Para receber as permissões necessárias para configurar as montagens de volume do Cloud Storage, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Desenvolvedor do Cloud Run (
roles/run.developer
) no serviço Cloud Run -
Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na identidade do serviço
Para receber as permissões de que a identidade de serviço precisa para acessar o arquivo e o bucket do Cloud Storage, peça ao administrador para conceder à identidade de serviço o seguinte papel do IAM:
- Administrador do Storage (
roles/storage.admin
)
Para mais detalhes sobre papéis e permissões do Cloud Storage, consulte IAM para o Cloud Storage.
Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com APIs doGoogle Cloud , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.
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.
As montagens de volumes exigem o ambiente de execução de segunda geração. O Cloud Run selecionará automaticamente o ambiente de execução de segunda geração para seu serviço se nenhum ambiente de execução for explicitamente configurado.
Console
No Google Cloud console, acesse o Cloud Run:
Selecione Serviços no menu e clique em Implantar contêiner para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.
Ao configurar um novo serviço, preencha a página inicial de configurações de serviço e clique em Contêineres, volumes, Rede e segurança para expandir essa página.
Clique na guia 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.
Clique em Criar ou Implantar.
gcloud
Para adicionar um volume e montá-lo:
gcloud run services update SERVICE \ --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,
/mnt/my-volume
. - 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 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
Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço, faça o download da configuração YAML correspondente:
gcloud run services describe SERVICE --format export > service.yaml
Faça as atualizações necessárias.
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE 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 formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo,
/mnt/my-volume
. - 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 ouFalse
para permitir gravações. - BUCKET_NAME pelo nome do bucket do Cloud Storage.
- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na configuração do Terraform: resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
volume_mounts {
name = "VOLUME_NAME"
mount_path = "MOUNT_PATH"
}
}
volumes {
name = "VOLUME_NAME"
gcs {
bucket = google_storage_bucket.default.name
read_only = IS_READ_ONLY
}
}
}
}
resource "google_storage_bucket" "default" {
name = "BUCKET_NAME"
location = "REGION"
}
Substitua:
- SERVICE pelo nome do serviço do Cloud Run;
- REGION com a região Google Cloud .
- 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 formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- VOLUME_NAME pelo nome que você quiser para o volume. O valor VOLUME_NAME é usado para mapear o volume para a montagem associada.
- MOUNT_PATH pelo caminho relativo em que você está montando o
volume, por exemplo,
/mnt/my-volume
. - IS_READ_ONLY com
True
para tornar o volume somente leitura ouFalse
para permitir gravações. - BUCKET_NAME pelo nome do bucket do Cloud Storage.
Como ler e gravar em um volume
Se você usar o recurso de montagem de volume do Cloud Run, poderá acessar um volume usando as mesmas bibliotecas na linguagem de programação que você usa para ler e gravar arquivos no sistema de arquivos local.
Isso é especialmente útil se você estiver usando um contêiner existente em que espera os dados sejam armazenados no sistema de arquivos local e usa o sistema de arquivos para acessá-lo.
Os snippets a seguir pressupõem uma montagem de volume com mountPath
definido como /mnt/my-volume
.
Nodejs
Use o módulo "Sistema de arquivos" para criar um novo arquivo ou adicionar ao final de um arquivo
no volume, /mnt/my-volume
:
var fs = require('fs'); fs.appendFileSync('/mnt/my-volume/sample-logfile.txt', 'Hello logs!', { flag: 'a+' });
Python
Grave em um arquivo no volume, /mnt/my-volume
:
f = open("/mnt/my-volume/sample-logfile.txt", "a")
Go
Use o pacote os
para criar um novo arquivo mantido no volume, /mnt/my-volume
:
f, err := os.Create("/mnt/my-volume/sample-logfile.txt")
Java
Use a classe Java.io.File
para criar um arquivo de registro no volume, /mnt/my-volume
:
import java.io.File; File f = new File("/mnt/my-volume/sample-logfile.txt");
Configuração de volume usando opções de montagem
Você também pode usar opções de montagem para configurar várias propriedades da montagem de volume. As opções de ativação disponíveis permitem configurar as definições de cache, ativar um diretório específico, ativar o registro de depuração e outros comportamentos.
Especificar opções de ativação
É possível especificar opções de montagem usando a Google Cloud CLI, YAML ou Terraform. As opções de montagem são separadas por ponto e vírgula (;) na Google Cloud CLI e por vírgulas em YAML, conforme mostrado nas guias a seguir:
gcloud
Para adicionar um volume e montá-lo com opções de montagem:
gcloud beta run services update SERVICE \ --execution-environment gen2 \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="OPTION_1=VALUE_1;OPTION_N=VALUE_N" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
Substitua:
- SERVICE pelo nome do serviço;
- 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.
- OPTION_1 com a primeira opção de montagem. É possível especificar quantas opções de montagem forem necessárias, com cada opção e par de valores separados por um ponto e vírgula.
- VALUE_1 com a configuração desejada para a primeira opção de montagem.
- OPTION_N com a próxima opção de montagem.
- VALUE_N com a configuração da próxima opção de montagem.
- MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo,
/cache
.
YAML
Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço, faça o download da configuração YAML correspondente:
gcloud run services describe SERVICE --format export > service.yaml
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 mountOptions: OPTION_1=VALUE_1,OPTION_N=VALUE_N
Substituir
- IMAGE_URL com uma referência à imagem de contêiner que
contém o pool de workers, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
- 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 ouFalse
para permitir gravações. - BUCKET_NAME pelo nome do bucket do Cloud Storage.
- OPTION_1 com a primeira opção de montagem. É possível especificar quantas opções de montagem forem necessárias, com cada opção e par de valores separados por uma vírgula.
- VALUE_1 com a configuração desejada para a primeira opção de montagem.
- OPTION_N com a próxima opção de montagem.
- VALUE_N com a configuração da próxima opção de montagem.
- IMAGE_URL com uma referência à imagem de contêiner que
contém o pool de workers, como
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na configuração do Terraform: resource "google_cloud_run_v2_service" "default" {
provider = google-beta
name = "SERVICE"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
volume_mounts {
name = "VOLUME_NAME"
mount_path = "MOUNT_PATH"
}
}
volumes {
name = "VOLUME_NAME"
gcs {
bucket = google_storage_bucket.default.name
read_only = IS_READ_ONLY
mount_options = ["OPTION_1=VALUE_1", "OPTION_N=VALUE_N", "OPTION_O"]
}
}
}
}
Substitua:
- SERVICE pelo nome do serviço do Cloud Run;
- REGION com a região Google Cloud .
- IMAGE_URL com uma referência à imagem de contêiner que
contém o pool de workers, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
- VOLUME_NAME pelo nome que você quiser para o volume. O valor VOLUME_NAME é usado para mapear o volume para a montagem associada.
- MOUNT_PATH pelo caminho relativo em que você está montando o
volume, por exemplo,
/mnt/my-volume
. - IS_READ_ONLY com
True
para tornar o volume somente leitura ouFalse
para permitir gravações. - BUCKET_NAME pelo nome do bucket do Cloud Storage.
- OPTION_1 com a primeira opção de montagem. É possível especificar quantas opções de montagem forem necessárias, com cada opção e par de valores separados por uma vírgula.
- VALUE_1 com a configuração desejada para a primeira opção de montagem.
- OPTION_N com a segunda opção de montagem, se aplicável.
- VALUE_N com a configuração da segunda opção de montagem.
- OPTION_O com a terceira opção de montagem, se aplicável. Algumas opções de montagem não têm um valor.
Opções de montagem usadas com frequência
As opções de montagem são usadas com frequência para:
- Definir configurações de cache
- Montar apenas um diretório específico do bucket do Cloud Storage
- Configure a propriedade do volume (
uid
,gid
) - Desativar diretórios implícitos
- Especifique os níveis de registro de depuração.
Configurar as configurações de cache
Para mudar as configurações de cache do volume, defina as opções de montagem relacionadas ao cache. A tabela a seguir lista as configurações, junto com os valores padrão do Cloud Run :
Configuração de cache | Descrição | Padrão |
---|---|---|
metadata-cache-ttl-secs |
Time to live (TTL) em segundos das entradas de metadados armazenadas em cache. Por exemplo, metadata-cache-ttl-secs=120s Para usar o arquivo mais atualizado, especifique um valor de 0 . Para usar sempre a versão em cache, especifique um valor de -1 . Para saber mais, consulte Como configurar a invalidação de cache. |
60 |
stat-cache-max-size-mb |
Tamanho máximo em mebibytes (MiB) que o cache de estatísticas pode usar. O cache de estatísticas é sempre mantido por completo na memória, o que afeta o consumo de memória. Especifique um valor de 32 se a carga de trabalho envolver até 20.000 arquivos. Se a carga de trabalho usar mais de 20.000 arquivos, aumente o tamanho em valores de 10 para cada 6.000 arquivos adicionais, em que o cache de estatísticas usa uma média de 1.500 MiB por arquivo.Para permitir que o cache de estatísticas use a quantidade necessária de memória, especifique um valor de -1 . Para desativar o cache de estatísticas, especifique um valor de 0 . |
32 |
type-cache-max-size-mb |
O tamanho máximo em MiB por diretório que o cache de tipos pode usar. O cache de tipo é sempre mantido totalmente na memória, o que afeta o consumo de memória. Especifique um valor de 4 se o número máximo de arquivos em um único diretório do bucket que você está ativando contiver 20.000 arquivos ou menos. Se o número máximo de arquivos em um único diretório ativado tiver mais de 20.000 arquivos, aumente o valor em 1 para cada 5.000 arquivos, uma média de aproximadamente 200 bytes por arquivo.Para permitir que o cache de tipos use a quantidade de memória necessária, especifique um valor de -1 .Para desativar o cache de tipos, especifique um valor de 0 . |
4 |
O comando da Google Cloud CLI a seguir define o metadata-cache-ttl-secs
como 120 segundos e aumenta a capacidade do cache de estatísticas e tipos para 52
e 7
MiB, respectivamente:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="metadata-cache-ttl-secs=120;stat-cache-max-size-mb=52;type-cache-max-size-mb=7" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
Substitua:
- SERVICE pelo nome do serviço;
- 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.
- MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo,
/cache
.
Ativar a geração de registros de depuração
Por padrão, o Cloud Storage FUSE registra eventos com Info
ou mais. É possível mudar as configurações de registro usando qualquer um dos seguintes níveis de gravidade, listados em ordem crescente:
trace
debug
info
warning
error
- Para desativar toda a geração de registros, especifique o valor
off
.
Ao especificar um nível de gravidade, o Cloud Storage FUSE gera registros de
eventos com um nível de gravidade igual ou maior que o especificado. Por exemplo, quando você especifica o nível warning
, o Cloud Storage FUSE gera registros de avisos
e erros.
Definir a gravidade do registro em níveis mais altos que info
pode afetar o desempenho e gerar uma grande quantidade de dados de registro. Por isso, recomendamos fazer isso apenas quando necessário.
A linha de comando a seguir ativa o registro de depuração:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="log-severity=debug" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
Substitua:
- SERVICE pelo nome do serviço;
- 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.
- MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo,
/cache
.
Desativar diretórios implícitos
Para que o Cloud Storage pareça mais um sistema de arquivos padrão, o Cloud Run ativa os diretórios implícitos por padrão ao montar um bucket do Cloud Storage. É possível desativar os diretórios implícitos usando a opção de montagem implicit-dirs
. Desativar diretórios implícitos pode melhorar o desempenho e o custo, mas tem compensações de compatibilidade.
Com o recurso de diretórios implícitos, o Cloud Run reconhece arquivos preexistentes do Cloud Storage cujos nomes imitam uma estrutura de diretório, como /mydir/myfile.txt
. Se você desativar os diretórios implícitos, o Cloud Run não poderá listar nem ler esses arquivos.
Desativar diretórios implícitos reduz o número de solicitações ao Cloud Storage, o que pode melhorar o desempenho e o custo do aplicativo. Leia a documentação Arquivos e diretórios do Cloud Storage FUSE para saber mais.
A linha de comando a seguir desativa os diretórios implícitos:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="implicit-dirs=false" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
Substitua:
- SERVICE pelo nome do serviço;
- 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.
- MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo,
/cache
.
Montar um diretório específico no bucket do Cloud Storage
Por padrão, o Cloud Run monta todo o bucket do Cloud Storage, o que dá aos serviços do Cloud Run acesso a todo o conteúdo dele. Em alguns casos, pode ser necessário ativar apenas um diretório específico. Por exemplo, se o bucket tiver um grande número de arquivos, ativar um diretório específico pode melhorar o desempenho.
Também é possível implementar isso para fins de isolamento, quando você precisa que serviços diferentes tenham acesso a diretórios diferentes no bucket de armazenamento.
A linha de comando a seguir especifica o diretório a ser ativado:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="only-dir=images" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
Substitua:
- SERVICE pelo nome do serviço;
- 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.
- MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo,
/cache
.
Definir o volume UID
e GID
Use as opções de montagem uid
e gid
para mudar o identificador de usuário e o identificador de grupo do volume. Isso é útil se você quiser definir a propriedade do
arquivo para um usuário ou grupo específico que corresponda à identidade de um ou vários contêineres em execução. Por padrão, os volumes pertencem à raiz.
A linha de comando a seguir define uid
e gid
:
gcloud beta run services update SERVICE \ --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="uid=UID;gid=GID" \ --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH
Substitua:
- SERVICE pelo nome do serviço;
- 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.
- MOUNT_PATH pelo caminho relativo em que você está montando o volume, por exemplo,
/cache
.
Definir outras opções de ativação
Confira abaixo a lista completa de todas as opções de montagem compatíveis com o Cloud Run.
Diretório
implicit-dirs
only-dir
rename-dir-limit
Debug
debug_fuse_errors
debug_fuse
debug_gcs
debug-invariants
debug_mutex
Cache
stat-cache-capacity
stat-cache-ttl
type-cache-ttl
enable-nonexistent-type-cache
Permissões
uid
gid
file-mode
dir-mode
Outro
billing-project
client-protocol
experimental-enable-json-read
experimental-opentelemetry-collector-address
http-client-timeout
limit-bytes-per-sec
limit-ops-per-sec
max-conns-per-host
max-idle-conns-per-host
max-retry-sleep
-o
retry-multiplier
sequential-read-size-mb
stackdriver-export-interval
Para conferir a documentação completa das opções de montagem compatíveis, consulte as opções de montagem da linha de comando do Cloud Storage FUSE.
Ver configurações de montagens de volumes
Console
No Google Cloud console, acesse a página de serviços do Cloud Run:
Na lista de serviços, clique no serviço de seu interesse para abrir a página Detalhes do serviço.
Clique na guia Volumes.
Localize a configuração de montagens de volume na página de detalhes dos volumes.
gcloud
Use o comando a seguir:
gcloud run services describe SERVICE_NAME
Localize a configuração de montagens de volume na configuração retornada.
Como otimizar o desempenho da largura de banda da rede do Cloud Storage FUSE
Para melhorar a performance de leitura e gravação, conecte seu serviço do Cloud Run a uma rede VPC usando a VPC direta e roteando todo o tráfego de saída pela rede VPC. Faça isso usando uma das opções a seguir:
- Ative o Acesso privado do Google e defina o parâmetro
vpc-egress
comoall-traffic
. - Use uma das opções descritas na página de práticas recomendadas de rede, na seção Tráfego interno para uma API do Google.
Tempo de inicialização do contêiner e montagens do Cloud Storage FUSE
Usar o Cloud Storage FUSE pode aumentar um pouco o tempo de inicialização a frio do contêiner do Cloud Run porque o Cloud Run inicia a montagem do volume antes de iniciar o(s) contêiner(es). Seu contêiner só será iniciado se o Cloud Storage FUSE for montado corretamente.
O Cloud Storage FUSE só monta um volume após estabelecer uma conexão com o Cloud Storage. Qualquer atraso na rede pode afetar o tempo de inicialização do contêiner. Da mesma forma, se a tentativa de conexão falhar, o Cloud Storage FUSE não será montado e o serviço do Cloud Run não será iniciado. Além disso, se o Cloud Storage FUSE levar mais de 30 segundos para ser montado, o serviço do Cloud Run não vai ser iniciado porque o Cloud Run tem um tempo limite total de 30 segundos para realizar todas as montagens.
Características de desempenho do Cloud Storage FUSE
Se você definir dois volumes, cada um apontando para um bucket diferente, dois processos do Cloud Storage FUSE serão iniciados. As montagens e os processos ocorrem em paralelo.
As operações que usam o Cloud Storage FUSE são afetadas pela largura de banda da rede porque o Cloud Storage FUSE se comunica com o Cloud Storage usando a API Cloud Storage. Algumas operações, como listar o conteúdo de um bucket, podem ficar lentas se a largura de banda da rede estiver baixa. Da mesma forma, a leitura de um arquivo grande pode levar tempo, já que também é limitada pela largura de banda da rede.
Quando você grava em um bucket, o Cloud Storage FUSE organiza totalmente o objeto na memória. Isso significa que a gravação de arquivos grandes é limitada pela quantidade de memória disponível para a instância do contêiner (o limite máximo de memória do contêiner é de 32 GiB).
A gravação é transferida para o bucket somente quando você executa um close
ou
um fsync
: o objeto completo é enviado ao bucket. A única exceção para um objeto que é totalmente reenviado para o bucket é no caso de um arquivo com conteúdo anexado quando o arquivo tem 2 MiB ou mais.
Para saber mais, acesse os recursos a seguir:
Limpar e remover volumes e montagens de volume
Você pode limpar todos os volumes e montagens ou remover volumes e montagens individuais.
Limpar todos os volumes e ativações de volumes
Para limpar todos os volumes e as montagens de volume do serviço de contêiner único, execute o seguinte comando:
gcloud run services update SERVICE \ --clear-volumes --clear-volume-mounts
Se você tiver vários contêineres, siga as convenções da CLI sidecars para limpar volumes e ativações de volume:
gcloud run services update SERVICE \ --container=container1 \ --clear-volumes -–clear-volume-mounts \ --container=container2 \ --clear-volumes \ -–clear-volume-mounts
Remover volumes e montagens de volume individuais
Para remover um volume, também é preciso remover todas as montagens de volume que o usam.
Para remover volumes ou ativações de volume individuais, use as flags remove-volume
e remove-volume-mount
:
gcloud run services update SERVICE \ --remove-volume VOLUME_NAME \ --container=container1 \ --remove-volume-mount MOUNT_PATH \ --container=container2 \ --remove-volume-mount MOUNT_PATH