Cloud Run fournit un espace disque éphémère qui ne persiste que pendant la durée de votre instance. Cette fonctionnalité vous permet de spécifier la quantité d'espace disque dont vous avez besoin et l'emplacement où le monter. Cloud Run alloue ensuite cette quantité de disque à votre ressource.
Les disques sont provisionnés automatiquement, préformatés en ext4 et chiffrés avec des clés spécifiques à l'instance au démarrage. L'espace disque éphémère crée votre volume de sorte que n'importe quel 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 :
- Plantages d'instances
- Migrer le trafic vers une nouvelle révision
Les disques sont dédiés à une instance spécifique et ne sont pas partagés avec d'autres instances ni révisions. Vous contrôlez la structure du système de fichiers avec un point de montage 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, comme une dernière série de copie du contenu du disque vers le stockage persistant.
Cas d'utilisation
Vous pouvez utiliser un espace disque éphémère pour les opérations suivantes :
- Charges de travail de traitement des données : lorsque vous traitez de grands fichiers de données 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 pour de grandes quantités de mémoire afin de 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 le disque plutôt que leur récupération à partir d'un stockage à distance peut optimiser la latence de votre application.
Limites de stockage et d'instances
Les limites suivantes s'appliquent :
- Limite de taille des volumes : chaque volume doit être compris entre
1Giet100Gi. - Limite de stockage des instances : par défaut, chaque instance est limitée à 10 Gio d'espace total. Pour configurer plus de 10 Gio par instance, vous devez demander une augmentation de quota.
- Limite de volume d'instance : chaque instance est limitée à un maximum de 10 volumes de disque éphémère.
- Limite de projet : par défaut, chaque projet commence avec une limite d'allocation régionale totale de 0 Gio. Les projets se voient automatiquement attribuer 100 Gio par région la première fois qu'une ressource avec un disque éphémère est déployée dans cette région. Au moment de l'exécution, ce quota régional est partagé entre toutes les instances en cours d'exécution dans la région. Lorsque vous déployez une ressource, la taille cumulée de l'espace disque éphémère par instance multipliée par son nombre maximal d'instances ne peut pas dépasser la limite d'allocation régionale. Par exemple, avec une limite régionale de 100 Gio, une ressource avec un disque de 10 Gio peut être configurée avec un maximum de 10 instances. Si nécessaire, demandez une augmentation de quota.
Demander une augmentation du quota
Si vous avez besoin de capacité supplémentaire, vous devez demander une augmentation de 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 vers le quota |
|---|---|
| 10 Gio par instance | Demander un quota plus élevé par instance |
| 100 Gio par projet | Demander un quota plus élevé par projet |
Pour savoir comment demander une augmentation de quota, consultez Augmenter le quota.
Limites
L'espace 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 ou /sys, ni dans leurs sous-répertoires.
Régions où le service est disponible
L'espace disque éphémère est disponible dans tous les emplacements Cloud Run.
Avant de commencer
- Connectez-vous à votre compte Google Cloud . 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Installez et initialisez la gcloud CLI.
-
Mettez à jour les composants :
gcloud components update
- Consultez la page Tarifs de Cloud Run pour connaître les tarifs associés au processeur, à la mémoire et à 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 espace disque éphémère, demandez à votre administrateur de vous accorder les rôles IAM suivants :
- Développeur Cloud Run (
roles/run.developer) sur le pool de nœuds de calcul Cloud Run - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur l'identité du service
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 des APIGoogle Cloud , 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 espace disque éphémère
Vous pouvez créer et associer un disque éphémère à l'aide de la console Google Cloud , de la Google Cloud CLI, de YAML ou de Terraform :
Console
Dans la console Google Cloud , accédez à la page Cloud Run :
Sélectionnez Pools de nœuds de calcul dans le menu de navigation Cloud Run :
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.
Si vous configurez un nouveau pool de nœuds de calcul, cliquez sur Déployer un conteneur, puis remplissez la page initiale du pool de nœuds de calcul. Cliquez ensuite sur Conteneurs, mise en réseau, sécurité pour développer la page de configuration des pools de nœuds de calcul.
Cliquez sur l'onglet Conteneurs.
Cochez la case Disque éphémère.
Spécifiez la taille de l'espace disque éphémère dans le menu.
Saisissez le chemin d'installation.
Cliquez sur Créer ou Mettre à jour.
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
10Gi. La taille doit être comprise entre1Giet100Gipour les volumesephemeral-disk. - MOUNT_PATH : chemin relatif où vous installez le volume, par exemple,
/mnt/my-volume.
YAML
Si vous créez un pool de nœuds de calcul, ignorez cette étape. Si vous mettez à jour un pool de nœuds de calcul existant, téléchargez sa configuration YAML :
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
Configurez le fichier YAML :
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: containers: - name: CONTAINER_NAME image: IMAGE_URL volumeMounts: - name: VOLUME_NAME mountPath: MOUNT_PATH volumes: - name: VOLUME_NAME emptyDir: medium: Disk sizeLimit: SIZERemplacez les éléments suivants :
- WORKER_POOL : nom de votre pool de nœuds de calcul.
- REGION : région Google Cloud .
- CONTAINER_NAME : nom que vous souhaitez attribuer à votre conteneur.
IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exempleus-docker.pkg.dev/cloudrun/container/worker-pool:latest.- VOLUME_NAME : nom que vous souhaitez attribuer à votre volume.
- MOUNT_PATH : chemin relatif où vous installez le volume, par exemple,
/mnt/my-volume. - SIZE : taille du disque, par exemple
10Gi. La taille doit être comprise entre1Giet100Gipour les volumesephemeral-disk.
Créez ou mettez à jour le pool de nœuds de calcul à l'aide de la commande suivante :
gcloud run worker-pools replace worker-pool.yaml
Par défaut, la commande
gcloud run worker-pools replaceutilise le fichierworker-pool.yamls'il est présent.
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
deletion_protection = "true"
launch_stage = "BETA"
template {
containers {
image = "IMAGE_URL"
volume_mounts {
name = "VOLUME_NAME"
mount_path = "MOUNT_PATH"
}
}
volumes {
name = "VOLUME_NAME"
empty_dir {
medium = "DISK"
size_limit = "SIZE"
}
}
}
lifecycle {
ignore_changes = [
launch_stage,
]
}
}
Remplacez les éléments suivants :
- WORKER_POOL : nom de votre pool de nœuds de calcul.
- REGION : région Google Cloud .
IMAGE_URL: référence à l'image de conteneur contenant le pool de nœuds de calcul, par exempleus-docker.pkg.dev/cloudrun/container/worker-pool:latest.- VOLUME_NAME : nom que vous souhaitez attribuer à votre volume.
- MOUNT_PATH : chemin relatif où vous installez le volume, par exemple,
/mnt/my-volume. - SIZE : taille du disque, par exemple
10Gi. La taille doit être comprise entre1Giet100Gipour les volumesephemeral-disk.
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 montages de volume
Vous pouvez effacer tous les volumes et montages, ou supprimer des volumes et montages de volume individuels.
Effacer tous les volumes et les montages de volume
Pour effacer tous les volumes et les montages 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
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 montages de volumes individuels
Pour supprimer un volume, vous devez également supprimer tous les montages de volume qui l'utilisent.
Pour supprimer des volumes ou des montages de volumes individuels, utilisez les indicateurs 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
Suivez les bonnes pratiques ci-dessous pour gérer efficacement les données éphémères et optimiser les performances de stockage.
Copier vers l'espace de stockage persistant
Si vous prévoyez de copier le contenu de l'espace disque éphémère vers un stockage persistant, tel qu'un bucket Cloud Storage, nous vous recommandons de le faire de manière 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 des données depuis 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 la ressource Cloud Run n'a pas besoin d'accéder à 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 pool de nœuds de calcul, procédez comme suit :
Dans la console Google Cloud , accédez à la page Cloud Run :
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.
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.
Cliquez sur l'onglet Réseau.
Sélectionnez Se connecter à un VPC.
Pour le Routage du trafic, sélectionnez Acheminer tout le trafic vers le VPC pour envoyer tout le trafic sortant via le réseau VPC.
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.
Activez l'accès privé à Google sur le sous-réseau auquel vous vous êtes connecté.