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.

Il montaggio del bucket come volume in Cloud Run presenta i contenuti del bucket come file nel file system del container, che consente di utilizzare librerie e operazioni di file system standard per accedere al file system.

Limitazioni

Cloud Run utilizza Cloud Storage FUSE per il montaggio di questo volume. Quindi ci sono alcuni aspetti da tenere presenti quando installi un bucket Cloud Storage come volume:

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

Prima di iniziare

È necessario un bucket Cloud Storage da montare come volume.

Controlli dell'accesso IAM per i bucket Cloud Storage

L'identità del servizio del servizio Cloud Run viene autenticata in un bucket Cloud Storage protetto da IAM.

Assicurati che l'account di servizio configurato disponga delle autorizzazioni necessarie per l'accesso ai file.

Monta un volume Cloud Storage

Puoi montare più bucket in percorsi di montaggio diversi. Puoi anche montare un volume in più container utilizzando percorsi di montaggio uguali o diversi nei vari container.

Se utilizzi più container, specifica innanzitutto i volumi, quindi specifica gli montaggi dei volumi per ciascun container.

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 nuova revisione.

  3. Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni del servizio in base alle tue esigenze, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.

  4. Fai clic sulla scheda Volumi.

    immagine

    • Nella sezione Volumi:
      • Fai clic su Aggiungi volume.
      • Nel menu a discesa Tipo di volume, seleziona Bucket Cloud Storage come tipo di volume.
      • Nel campo Nome del 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 rendere il bucket di sola lettura, seleziona la casella di controllo Sola lettura.
      • Fai clic su Fine.
      • Fai clic sulla scheda Contenitore.
      • Fai clic sulla scheda Montaggi volume.
      • Fai clic su Volume di montaggio.
      • 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: viene visualizzato il comando gcloud beta run services update, ma puoi anche utilizzare il comando gcloud beta run deploy con gli stessi parametri indicati.

  • 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 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 montaggio del volume.
    • 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 i montaggi dei volumi 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

Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando gcloud run services describe --format export, che restituisce risultati puliti in formato YAML. Puoi quindi modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace. Assicurati di modificare i campi solo come documentato.

  1. Per visualizzare e scaricare la configurazione:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Esegui l'aggiornamento in base alle esigenze.

    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, è necessario già creare il repository REPO_NAME. 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 montaggio del volume.
    • 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 di montaggio 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 di montaggi dei volumi è elencata nella scheda Volumi.

Riga di comando

  1. Utilizza il seguente comando:

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