Configurer un disque éphémère pour les pools de nœuds de calcul Cloud Run

Cloud Run fournit un volume de disque éphémère qui ne persiste que pendant la durée de votre instance. Cette fonctionnalité vous permet de spécifier la quantité de disque dont vous avez besoin et l'emplacement où l'installer. Cloud Run alloue ensuite cette quantité de disque à votre ressource.

Les disques sont automatiquement provisionnés, préformatés au format ext4 et chiffrés avec des clés spécifiques à l'instance au démarrage. Le disque éphémère crée votre volume afin que tout utilisateur puisse le lire ou y écrire. Comme le stockage est éphémère, toutes les données sont définitivement supprimées lorsque l'instance s'arrête. Cela inclut les arrêts causés par les éléments suivants :

  • Plantages d'instance
  • Migration du trafic vers une nouvelle révision

Les disques sont dédiés à une instance spécifique et ne sont pas partagés entre d'autres instances ou révisions. Vous contrôlez la structure du système de fichiers avec un point d'installation configurable pour chaque volume.

Avant d'arrêter une instance, Cloud Run envoie un signal SIGTERM à tous les conteneurs d'une instance, indiquant le début de la période de 10 secondes avant l'arrêt réel marqué par l'envoi d'un signal SIGKILL par Cloud Run. Vous pouvez utiliser cette fenêtre de 10 secondes pour effectuer des opérations de nettoyage, par exemple une dernière copie du contenu du disque dans un stockage persistant.

Cas d'utilisation

Vous pouvez utiliser un disque éphémère pour les éléments suivants :

  • Charges de travail de traitement des données : lorsque vous traitez des fichiers de données volumineux dans Cloud Run, vous stockez généralement l'intégralité du fichier en mémoire ou vous orchestrez sa division en plus petits morceaux. Avec le stockage éphémère, vous n'avez pas besoin de payer de grandes quantités de mémoire pour créer une copie locale temporaire de vos données. Vous pourrez également traiter des ensembles de données plus volumineux.
  • Mise en cache : dans les cas d'utilisation de diffusion Web, la mise en cache des données sur disque plutôt que leur récupération à partir d'un stockage distant peut optimiser la latence de votre application.

Limites de stockage et d'instance

Les limites suivantes s'appliquent :

  • Limite de stockage des instances : par défaut, chaque instance est limitée à 10 Go d'espace total. Si nécessaire, demandez une augmentation du quota.
  • Limite de volume des instances : chaque instance est limitée à un maximum de 10 volumes.
  • Limite de projet : par défaut, chaque projet est limité à 100 Go par région. Si nécessaire, demandez une augmentation du quota.

Demander une augmentation du quota

Les projets qui utilisent un disque éphémère Cloud Run dans une région pour la première fois bénéficient automatiquement d'une limite de 10 Go par instance et par région, et d'une limite de 100 Go par projet et par région.

Si vous avez besoin de capacité supplémentaire, vous devez demander une augmentation du quota pour votre pool de nœuds de calcul Cloud Run. Utilisez les liens fournis dans les boutons suivants pour demander le quota dont vous avez besoin.

Quota actuel Lien de quota
10 Go par instance Demander un quota plus élevé par instance
100 Go par projet Demander un quota plus élevé par projet

Pour en savoir plus sur la demande d'augmentation de quota, consultez la section Demander une augmentation de quota.

Limites

Le disque éphémère n'est disponible que dans l'environnement d'exécution de deuxième génération. Par défaut, les pools de nœuds de calcul Cloud Run utilisent l'environnement d'exécution de deuxième génération.

Chemins d'accès non autorisés

Cloud Run ne vous permet pas d'installer un volume sur /dev, /proc et /sys, ni dans leurs sous-répertoires.

Régions où le service est disponible

La fonctionnalité de disque éphémère est disponible dans les régions suivantes :

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Installez et initialisez la gcloud CLI.
  7. Mettez à jour les composants :
    gcloud components update
  8. Consultez la page des tarifs de Cloud Run pour connaître les tarifs du processeur, de la mémoire et de la sortie réseau. La taille totale du disque provisionné et la durée de vie de l'instance qui l'utilise contribuent à votre coût.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer un disque éphémère, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre pool de nœuds de calcul Cloud Run communique avec Google Cloud des API, telles que des bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.

Créer et installer un disque éphémère

Vous pouvez créer et installer un disque éphémère à l'aide de la Google Cloud console ou de Google Cloud CLI :

Console

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

    Accédez à Cloud Run

  2. Sélectionnez Pools de nœuds de calcul dans le menu, puis cliquez sur Déployer un conteneur pour configurer un nouveau pool de nœuds de calcul. Si vous configurez un pool de nœuds de calcul existant, cliquez sur celui-ci, puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau pool de nœuds de calcul, remplissez la page initiale du pool de nœuds de calcul, puis cliquez sur Conteneurs, mise en réseau, sécurité pour développer la page de configuration des pools de nœuds de calcul.

  4. Cliquez sur l'onglet Conteneur.

    image

    • Sous Ressources :
      • Cliquez sur Installer un volume.
      • Sélectionnez Disque éphémère.
      • Saisissez le chemin d'installation.
      • Spécifiez la taille du disque éphémère dans le menu.
  5. Cliquez sur Créer ou Déployer.

gcloud

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

gcloud beta run worker-pools update WORKERPOOL \
    --add-volume=name=VOLUME_NAME,type=ephemeral-disk,size=SIZE \
    --add-volume-mount=volume=VOLUME_NAME,mount-path=MOUNT_PATH

Remplacez les éléments suivants :

  • WORKERPOOL : nom de votre pool de nœuds de calcul.
  • VOLUME_NAME : nom que vous souhaitez attribuer à votre volume.
  • SIZE : taille du disque, par exemple, 100Gi. La taille doit être d'au moins 10Gi pour les volumes ephemeral-disk.
  • MOUNT_PATH : chemin relatif où vous installez le volume, par exemple, /mnt/my-volume.

Lire et écrire dans un volume

Si vous utilisez la fonctionnalité d'installation de volume Cloud Run, vous accédez à un volume installé à l'aide des mêmes bibliothèques dans votre langage de programmation que celles que vous utilisez pour lire et écrire des fichiers sur votre système de fichiers local.

Ceci est particulièrement utile si vous utilisez un conteneur existant qui attend que des données soient stockées sur le système de fichiers local et utilise des opérations standards du système de fichiers pour y accéder.

Les extraits suivants supposent une installation de volume avec un mountPath défini sur /mnt/my-volume.

Nodejs

Utilisez le module File System pour créer un fichier ou ajouter des données à un fichier existant dans le volume /mnt/my-volume :

var fs = require('fs');
fs.appendFileSync('/mnt/my-volume/sample-logfile.txt', 'Hello logs!', { flag: 'a+' });

Python

Écrivez les données dans un fichier conservé dans le volume /mnt/my-volume :

f = open("/mnt/my-volume/sample-logfile.txt", "a")

Go

Utilisez le package os pour créer un fichier conservé dans le volume /mnt/my-volume :

f, err := os.Create("/mnt/my-volume/sample-logfile.txt")

Java

Utilisez la classe Java.io.File pour créer un fichier journal dans le volume /mnt/my-volume :

import java.io.File;
File f = new File("/mnt/my-volume/sample-logfile.txt");

Effacer et supprimer des volumes et des installations de volume

Vous pouvez effacer tous les volumes et toutes les installations, ou supprimer des volumes et des installations de volume spécifiques.

Effacer tous les volumes et toutes les installations de volume

Pour effacer tous les volumes et toutes les installations de volume de votre pool de nœuds de calcul à conteneur unique, exécutez la commande suivante :

gcloud run worker-pools update WORKER_POOL \
    --clear-volumes
    --clear-volume-mounts

Si vous disposez de plusieurs conteneurs, suivez les conventions de l'CLI des side-cars pour effacer les volumes et les installations de volume :

gcloud run worker-pools update WORKER_POOL \
    --container=container1 \
    --clear-volumes
    -–clear-volume-mounts \
    --container=container2 \
    --clear-volumes \
    -–clear-volume-mounts

Supprimer des volumes et des installations de volume spécifiques

Pour supprimer un volume, vous devez également supprimer toutes les installations de volume qui l'utilisent.

Pour supprimer des volumes ou des installations de volume spécifiques, utilisez les options remove-volume et remove-volume-mount :

gcloud run worker-pools update WORKER_POOL \
    --remove-volume VOLUME_NAME \
    --container=container1 \
    --remove-volume-mount MOUNT_PATH \
    --container=container2 \
    --remove-volume-mount MOUNT_PATH

Bonnes pratiques

Respectez les bonnes pratiques suivantes pour gérer efficacement les données éphémères et optimiser les performances de stockage.

Copier dans un stockage persistant

Si vous avez l'intention de copier le contenu du disque éphémère dans un stockage persistant, tel qu'un bucket Cloud Storage, nous vous recommandons d'effectuer une copie incrémentielle plutôt que de vous fier au délai de grâce de 10 secondes entre SIGTERM et SIGKILL. Pour en savoir plus sur l'arrêt des instances, consultez le contrat d'exécution du conteneur.

Cloud Run peut lire et écrire à partir de Cloud Storage sans aucune configuration réseau supplémentaire. Pour obtenir des performances optimales, nous vous recommandons d'acheminer le trafic vers et depuis Cloud Storage via un réseau VPC à l'aide du VPC direct.

Cette méthode fonctionne si vous n'avez pas besoin que la ressource Cloud Run accède à Internet. Si vous avez besoin d'un accès à Internet, configurez Cloud NAT ou consultez Trafic interne vers une API Google.

Pour configurer la sortie VPC directe avec un job, procédez comme suit :

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

    Accédez à Cloud Run

  2. Sélectionnez Pools de nœuds de calcul dans le menu, puis cliquez sur Déployer un conteneur pour configurer un nouveau pool de nœuds de calcul. Si vous configurez un pool de nœuds de calcul existant, cliquez sur celui-ci, puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau pool de nœuds de calcul, remplissez la page initiale du pool de nœuds de calcul, puis cliquez sur Conteneurs, mise en réseau, sécurité pour développer la page de configuration des pools de nœuds de calcul.

  4. Cliquez sur l'onglet Réseau.

  5. Sélectionnez Se connecter à un VPC.

  6. Pour Acheminement du trafic, sélectionnez Acheminer tout le trafic vers le VPC pour envoyer tout le trafic sortant via le réseau VPC.

  7. Cliquez sur Créer ou Déployer.

    Vous pouvez désormais envoyer des requêtes à partir de votre pool de nœuds de calcul Cloud Run vers n'importe quelle ressource du réseau VPC, conformément à vos règles de pare-feu.

  8. Activez l'accès privé à Google sur le sous-réseau auquel vous vous êtes connecté.

Résoudre les problèmes

Si vous constatez une faible vitesse du réseau lorsque vous téléchargez une grande quantité de données sur votre disque éphémère, suivez les étapes pour activer le VPC direct. Si le VPC direct n'est pas activé, la vitesse de transfert réseau sera plus lente.