Configurare i montaggi dei volumi di Cloud Storage per i servizi

Questa pagina mostra come montare un bucket Cloud Storage come volume di archiviazione, utilizzando i montaggi dei volumi Cloud Run.

Montando il bucket come volume in Cloud Run, i contenuti del bucket vengono presentati come file nel file system del container, il che consente di utilizzare librerie e operazioni di file system standard per accedere a quel file system.

Requisiti di memoria

I montaggi di volume di Cloud Storage utilizzano la memoria del container di Cloud Run per le seguenti attività:

  • Per tutta la memorizzazione nella cache di Cloud Storage FUSE, Cloud Run utilizza per impostazione predefinita l'impostazione della cache delle statistiche con una durata (TTL) di 60 secondi. La dimensione massima predefinita della cache delle statistiche è 32 MB, mentre la dimensione massima predefinita del tipo di cache è 4 MB.

  • Durante la lettura, Cloud Storage FUSE consuma anche memoria diversa dalle cache stat e di tipo, ad esempio un array da 1 MiB per ogni file letto e per la goroutina.

  • Durante la scrittura in Cloud Storage, l'intero file viene memorizzato in Cloud Run prima che venga scritto in Cloud Storage.

Limitazioni

Cloud Run utilizza Cloud Storage FUSE per il montaggio del volume. Ci sono quindi alcuni aspetti da tenere presenti quando si monta un bucket Cloud Storage come volume:

  • Cloud Storage FUSE non fornisce il controllo della contemporaneità per più scritture (blocco dei file) sullo stesso file. Quando più operazioni di scrittura tentano di sostituire un file, l'ultima operazione di scrittura vince e tutte le scritture precedenti vanno perse.
  • Cloud Storage FUSE non è un file system completamente compatibile con POSIX. Per ulteriori dettagli, consulta la documentazione di Cloud Storage FUSE.

Prima di iniziare

È necessario un bucket Cloud Storage da montare come volume.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare i montaggi dei volumi Cloud Storage, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per ottenere le autorizzazioni necessarie all'identità del servizio per accedere al file e al bucket Cloud Storage, chiedi all'amministratore di concedere all'identità del servizio il seguente ruolo IAM:

Per ulteriori dettagli su ruoli e autorizzazioni di Cloud Storage, consulta IAM per Cloud Storage.

Per un elenco dei ruoli e delle autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run si interfaccia con le API Google Cloud, ad esempio le librerie client di Cloud, consulta la guida alla configurazione delle identità dei servizi. Per ulteriori informazioni sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestire l'accesso.

Monta un volume Cloud Storage

Puoi montare più bucket in diversi percorsi di montaggio. Puoi anche montare un volume in più di un container utilizzando lo stesso percorso di montaggio o diversi tra i container.

Se utilizzi più container, specifica prima i volumi, quindi specifica i montaggi dei volumi per ogni container.

I montaggi dei volumi richiedono l'ambiente di esecuzione di seconda generazione. Cloud Run seleziona automaticamente l'ambiente di esecuzione di seconda generazione per il tuo servizio se non viene configurato esplicitamente un ambiente di esecuzione.

Console

  1. Nella console Google Cloud, vai a Cloud Run:

    Vai a Cloud Run

  2. Fai clic su Crea servizio se stai configurando un nuovo servizio in cui stai eseguendo il deployment. Se stai configurando un servizio esistente, fai clic sul servizio e poi su Modifica ed esegui il deployment di una nuova revisione.

  3. Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni del servizio come preferisci, poi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.

  4. Fai clic sulla scheda Volumi.

    immagine

      • Fai clic su Aggiungi volume.
      • Nel menu a discesa Tipo di volume, seleziona il bucket Cloud Storage come tipo di volume.
      • Nel campo Nome volume, inserisci il nome che vuoi utilizzare per il volume.
      • Sfoglia e seleziona il bucket Cloud Storage da utilizzare per il volume o, facoltativamente, crea un nuovo bucket.
      • Se vuoi impostare il bucket come di sola lettura, seleziona la casella di controllo Solo lettura.
      • Fai clic su Fine.
      Fai clic sulla scheda Container:
      • Fai clic sulla scheda Montaggi di volumi.
      • Fai clic su Installa volume.
      • Seleziona il volume di archiviazione dal menu.
      • Specifica il percorso in cui vuoi montare il volume.
      • Fai clic su Fine.
  5. Fai clic su Crea o Esegui il deployment.

Riga di comando

Nota: mostriamo il comando gcloud beta run services update, ma puoi anche utilizzare il comando gcloud beta run deploy con gli stessi parametri mostrati.

  • Per aggiungere un volume e montarlo:

    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

    Sostituisci:

    • SERVICE con il nome del tuo servizio.
    • MOUNT_PATH con il percorso relativo in cui stai montando il volume, ad esempio /cache.
    • VOLUME_NAME con il nome che preferisci per il volume. Il valore VOLUME_NAME viene utilizzato per mappare il volume al relativo montaggio.
    • BUCKET_NAME con il nome del tuo bucket Cloud Storage.
  • Per montare il volume come volume di sola lettura:

--add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
  • Se utilizzi più container, specifica prima i volumi, quindi specifica quelli di montaggio per ogni container:

    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

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Esegui le modifiche necessarie.

    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

    Sostituisci

    • IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • MOUNT_PATH con il percorso relativo in cui stai montando il volume, ad esempio /cache.
    • VOLUME_NAME con il nome che preferisci per il volume. Il valore VOLUME_NAME viene utilizzato per mappare il volume al relativo montaggio.
    • IS_READ_ONLY con True per rendere il volume di sola lettura o False per consentire le scritture.
    • BUCKET_NAME con il nome del bucket Cloud Storage.
  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml

Visualizza le impostazioni dei montaggi dei volumi

Per visualizzare le impostazioni attuali dei montaggi dei volumi per il tuo servizio Cloud Run:

Console

  1. Nella console Google Cloud, vai a Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.

  3. Fai clic sulla scheda Revisioni.

  4. Nel riquadro dei dettagli a destra, l'impostazione dei montaggi del volume è elencata nella scheda Volumi.

Riga di comando

  1. Utilizza questo comando:

    gcloud run services describe SERVICE
  2. Individua l'impostazione dei montaggi dei volumi nella configurazione restituita.