Montages de volume Cloud Storage pour les services

Cette page explique comment installer un bucket Cloud Storage en tant que volume de stockage, à l'aide des installations de volume Cloud Run.

L'installation du bucket en tant que volume dans Cloud Run présente le contenu du bucket sous forme de fichiers dans le système de fichiers du conteneur, ce qui permet d'utiliser des opérations et des bibliothèques de systèmes de fichiers standards pour accéder à ce système de fichiers.

Limites

Cloud Run utilise Cloud Storage FUSE pour cette installation de volume. Quelques points sont à garder à l'esprit lors de l'installation d'un bucket Cloud Storage en tant que volume :

  • Cloud Storage FUSE ne permet pas de contrôler la simultanéité pour plusieurs écritures (verrouillage de fichiers) dans un même fichier. Lorsque plusieurs écritures tentent de remplacer un fichier, la dernière écriture l'emporte et toutes les écritures précédentes sont perdues.
  • Cloud Storage FUSE n'est pas un système de fichiers entièrement compatible avec POSIX. Pour plus de détails, consultez la documentation de Cloud Storage FUSE.

Avant de commencer

Vous avez besoin d'un bucket Cloud Storage à installer en tant que volume.

Contrôles des accès IAM pour les buckets Cloud Storage

L'identité du service Cloud Run s'authentifie auprès d'un bucket Cloud Storage protégé par IAM.

Assurez-vous que le compte de service configuré dispose des autorisations nécessaires pour accéder aux fichiers.

Installer un volume Cloud Storage

Vous pouvez installer plusieurs buckets sur différents chemins d'installation. Vous pouvez également installer un volume sur plusieurs conteneurs à l'aide de chemins d'installation identiques ou différents sur l'ensemble des conteneurs.

Si vous utilisez plusieurs conteneurs, spécifiez les volumes, puis spécifiez les installations de volume pour chaque conteneur.

Console

  1. Dans la console Google Cloud, accédez à Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service selon vos besoins, puis cliquez sur Conteneur(s), volumes, mise en réseau et sécurité pour développer la page de configuration du service.

  4. Cliquez sur l'onglet Volumes.

    Image

    • Sous Volumes :
      • Cliquez sur Ajouter un volume.
      • Dans la liste déroulante Type de volume, sélectionnez "Bucket Cloud Storage" comme type de volume.
      • Dans le champ Nom du volume, saisissez le nom du volume que vous souhaitez utiliser.
      • Parcourez les buckets Cloud Storage et sélectionnez celui à utiliser pour le volume ou, si vous le souhaitez, créez un bucket.
      • Si vous souhaitez passer le bucket en lecture seule, cochez la case "Lecture seule".
      • Cliquez sur OK.
      • Cliquez sur l'onglet Conteneur.
      • Cliquez sur l'onglet Montages de volume.
      • Cliquez sur Monter le volume.
      • Sélectionnez le volume de stockage dans le menu.
      • Spécifiez le chemin d'accès où vous souhaitez installer le volume.
      • Cliquez sur Terminé.
  5. Cliquez sur Créer ou Déployer.

Ligne de commande

Remarque : Nous vous présentons la commande gcloud beta run services update, mais vous pouvez également exécuter la commande gcloud beta run deploy avec les mêmes paramètres que ceux indiqués.

  • Pour ajouter un volume et l'installer, procédez comme suit :

    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

    Remplacez :

    • SERVICE par le nom de votre service.
    • MOUNT_PATH par le chemin relatif où vous installez le volume, par exemple, /cache.
    • VOLUME_NAME par le nom que vous souhaitez pour votre volume. La valeur VOLUME_NAME permet de mapper le volume à l'installation du volume.
    • BUCKET_NAME par le nom de votre bucket Cloud Storage.
  • Pour installer votre volume en tant que volume en lecture seule, procédez comme suit :

--add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
  • Si vous utilisez plusieurs conteneurs, spécifiez d'abord vos volumes, puis les installations de volumes pour chaque conteneur :

    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

Vous pouvez télécharger et afficher les configurations de service existantes à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Modifiez-les si nécessaire.

    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

    Remplacer

    • IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • MOUNT_PATH par le chemin relatif où vous installez le volume, par exemple, /cache.
    • VOLUME_NAME par le nom que vous souhaitez pour votre volume. La valeur VOLUME_NAME permet de mapper le volume à l'installation du volume.
    • IS_READ_ONLY par True pour passer le volume en lecture seule ou False pour autoriser les écritures.
    • BUCKET_NAME par le nom du bucket Cloud Storage
  3. Remplacez la configuration du service en exécutant la commande suivante :

    gcloud run services replace service.yaml

Afficher les paramètres des installations de volumes

Procédez comme suit pour afficher les paramètres actuels des installations de volumes pour votre service Cloud Run :

Console

  1. Dans la console Google Cloud, accédez à Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.

  3. Cliquez sur l'onglet Révisions.

  4. Dans le panneau de détails sur la droite, le paramètre "Montages de volumes" est listé sous l'onglet Volumes.

Ligne de commande

  1. Exécutez la commande suivante :

    gcloud run services describe SERVICE
  2. Recherchez le paramètre correspondant aux montages de volumes dans la configuration renvoyée.