Cette présentation présente le pilote CSI Cloud Storage FUSE pour installer des buckets Cloud Storage en tant que systèmes de fichiers locaux dans Google Kubernetes Engine (GKE). Cette fonctionnalité est particulièrement utile pour les charges de travail de machine learning qui doivent stocker des données d'entraînement, des modèles et des points de contrôle dans Cloud Storage.
Cette présentation s'adresse aux développeurs et aux data scientists qui souhaitent accéder ou stocker des données d'entraînement, des poids de modèle d'inférence et des points de contrôle stockés dans Cloud Storage à partir de leurs applications Kubernetes.
Avant de lire cette page, assurez-vous de maîtriser Kubernetes, GKE et Cloud Storage.
Fonctionnement
Le pilote utilise la norme Container Storage Interface (CSI) pour permettre à vos applications exécutées dans des pods d'accéder facilement aux buckets Cloud Storage comme s'ils étaient des systèmes de fichiers installés. Cela signifie que vous pouvez traiter vos buckets Cloud Storage comme une source de données persistante et évolutive pour vos applications Kubernetes sans configuration complexe ni modification de code.
Le pilote CSI Cloud Storage FUSE fournit une expérience entièrement gérée, basée sur le plug-in CSI Google Cloud Storage FUSE Open Source. Le pilote CSI vous permet d'utiliser l'API Kubernetes pour utiliser les buckets Cloud Storage préexistants en tant que volumes. Vos applications peuvent importer et télécharger des objets à l'aide de la sémantique du système de fichiers Cloud Storage FUSE.
Filesystem in Userspace (FUSE) est une interface utilisée pour exporter un système de fichiers vers le noyau Linux. Cloud Storage FUSE vous permet d'installer des buckets Cloud Storage en tant que système de fichiers afin que les applications puissent accéder aux objets d'un bucket à l'aide d'opérations d'E/S de fichier courantes (par exemple, ouverture, lecture, écriture et fermeture) plutôt que d'utiliser des API spécifiques au cloud.
Le pilote est compatible de manière native avec les méthodes suivantes pour vous permettre de configurer vos volumes reposant sur Cloud Storage:
- Volumes éphémères CSI: vous spécifiez le bucket Cloud Storage conformément à la spécification du pod. Utilisez des volumes CSI éphémères si vous souhaitez une interface simplifiée basée sur les pods qui ne nécessite aucune expérience préalable avec les volumes persistants Kubernetes. Pour utiliser cette option, consultez la section Installer des buckets Cloud Storage en tant que volumes éphémères CSI.
- PersistentVolumes: vous créez une ressource PersistentVolume qui fait référence au bucket Cloud Storage à l'aide du provisionnement statique. Votre pod peut alors référencer un objet PersistentVolumeClaim lié à cet objet PersistentVolume. Utilisez cette option si vous connaissez déjà les PersistentVolumes et que vous souhaitez assurer la cohérence avec vos déploiements existants qui reposent sur ce type de ressources. Pour utiliser cette option, consultez la section Installer des buckets Cloud Storage en tant que volumes persistants.
Cas d'utilisation
Le pilote CSI Cloud Storage FUSE convient aux scénarios suivants:
IA et machine learning
- Entraînement: vous pouvez utiliser le pilote CSI Cloud Storage FUSE pour lire les données d'entraînement et les points de contrôle des modèles enregistrés à l'aide de Cloud Storage comme source fiable. Par exemple, lors de l'entraînement d'un modèle sur GKE à l'aide de PyTorch, JAX ou TensorFlow, le pilote peut fournir un accès aux ensembles de données d'entraînement stockés dans des buckets Cloud Storage.
- Inférence: vous pouvez diffuser des modèles d'inférence ML qui infèrent des résultats à partir de fichiers stockés dans Cloud Storage. Vous pouvez utiliser CSI Cloud Storage FUSE pour précharger les poids du modèle stockés dans Cloud Storage. De plus, vous pouvez utiliser la fonctionnalité de téléchargement parallèle pour accélérer la lecture de fichiers volumineux à partir de Cloud Storage pour les téléchargements multithreads. Vous pouvez utiliser cette fonctionnalité pour améliorer les temps de chargement des modèles, en particulier pour les lectures de plus de 1 Go.
Pipelines d'analyse de données
Vous pouvez utiliser le pilote CSI Cloud Storage FUSE pour simplifier les tâches de traitement des données en permettant aux applications d'accéder directement à de grands ensembles de données stockés dans Cloud Storage et de les analyser. Par exemple, un job Spark exécuté sur GKE peut utiliser le pilote CSI pour traiter les données stockées dans Cloud Storage sans avoir à les télécharger au préalable.
Avantages
L'utilisation du pilote CSI offre les avantages suivants:
- Facile à configurer: le pilote CSI Cloud Storage FUSE se déploie et se gère automatiquement sur les clusters Standard et Autopilot. L'utilisation de volumes éphémères CSI simplifie la configuration et la gestion des volumes. En effet, les objets PersistentVolumeClaim et PersistentVolume ne sont pas nécessaires.
- Sécurité: le pilote CSI Cloud Storage FUSE n'a pas besoin d'un accès privilégié. Cela réduit les risques associés aux accès privilégiés et améliore la posture de sécurité. Vous pouvez utiliser la fédération d'identité de charge de travail pour GKE pour gérer l'authentification, ce qui vous permet de contrôler précisément la manière dont vos pods accèdent aux objets Cloud Storage.
- Performances: le pilote CSI Cloud Storage FUSE améliore les performances grâce à des fonctionnalités telles qu'un sidecar pour des interactions optimisées, des téléchargements parallèles pour un accès aux données plus rapide, et la mise en cache de métadonnées et de fichiers pour améliorer les performances de lecture et réduire la latence. Pour en savoir plus sur ces fonctionnalités, consultez la section Options et fonctionnalités de réglage des performances.
- Portabilité et flexibilité:le pilote CSI Cloud Storage FUSE vous permet d'utiliser la sémantique standard du système de fichiers pour installer et accéder aux buckets Cloud Storage.
Cela fournit une interface familière qui améliore la portabilité des charges de travail de ML et vous évite d'apporter des modifications importantes au code ou à l'application.
Le pilote est compatible avec tous les accélérateurs disponibles sur GKE, y compris les GPU et les TPU. Le pilote CSI Cloud Storage FUSE est compatible avec les modes d'accès
ReadWriteMany
,ReadOnlyMany
etReadWriteOnce
. Vous pouvez utiliser les volumes Cloud Storage FUSE dans des conteneurs d'initialisation. - Gestion: le pilote vous permet d'exécuter Cloud Storage FUSE en arrière-plan sans avoir à l'installer ni à le gérer. Vous pouvez également consulter des insights sur les métriques pour Cloud Storage FUSE, y compris sur l'utilisation du système de fichiers, de Cloud Storage et du cache de fichiers.
Options et fonctionnalités de réglage des performances
Le pilote CSI Cloud Storage FUSE est fourni avec plusieurs options de réglage des performances et des fonctionnalités permettant d'optimiser la façon dont vos pods accèdent aux données stockées dans des buckets Cloud Storage.
Par exemple, en activant la mise en cache des fichiers et en ajustant la simultanéité des requêtes, vous pouvez réduire considérablement le temps de chargement des données d'entraînement, ce qui accélère le processus d'entraînement.
Sidecar natif: le pilote CSI Cloud Storage FUSE associe un conteneur sidecar à vos pods pour gérer les interactions avec Cloud Storage. Le sidecar gère le montage et l'interaction avec Cloud Storage, ce qui permet à vos applications d'accéder facilement aux données. Vous pouvez affiner les performances en configurant des ressources telles que le processeur et la mémoire pour le conteneur sidecar, ou en ajustant les paramètres liés au cache et à la mise en mémoire tampon. Le conteneur side-car du pilote CSI Cloud Storage FUSE et Istio peuvent coexister et s'exécuter simultanément dans votre pod.
Téléchargement parallèle: à partir de la version 1.30.3-gke.1571000 de GKE et de la version 2.4.0 de Cloud Storage FUSE avec le cache de fichiers activé, vous pouvez utiliser la fonctionnalité de téléchargement parallèle pour accélérer la lecture de gros fichiers à partir de Cloud Storage pour les téléchargements multithread. Vous pouvez utiliser cette fonctionnalité pour améliorer les temps de chargement du modèle, en particulier pour les lectures de plus de 1 Go (par exemple, jusqu'à deux fois plus rapide lors du chargement de Llama 2 70B).
Compatibilité avec la mise en cache des métadonnées: le pilote CSI Cloud Storage FUSE améliore les performances en mettant en cache les métadonnées de fichier, telles que la taille et l'heure de modification. Le pilote CSI active ce cache d'état par défaut et réduit la latence en stockant les informations localement au lieu de les demander à plusieurs reprises à Cloud Storage. Vous pouvez configurer sa taille maximale et la durée pendant laquelle les données restent dans le cache. En ajustant le cache de métadonnées, vous pouvez réduire les appels d'API à Google Cloud Storage, ce qui améliore les performances et l'efficacité de l'application en réduisant le trafic réseau et la latence.
Compatibilité avec la mise en cache de fichiers: vous pouvez utiliser le pilote CSI Cloud Storage FUSE avec la mise en cache de fichiers pour améliorer les performances de lecture des applications qui gèrent de petits fichiers à partir de buckets Cloud Storage. La fonctionnalité de cache de fichiers Cloud Storage FUSE est un cache de lecture basé sur le client qui permet de diffuser plus rapidement des lectures de fichiers répétées à partir du stockage dans le cache de votre choix. Vous pouvez choisir parmi une gamme d'options de stockage pour le cache en lecture, y compris des SSD locaux, un stockage basé sur disque persistant et un disque RAM, en fonction de vos besoins en termes de rapport prix/performances.
Pour connaître les bonnes pratiques d'optimisation des performances, consultez Optimiser le pilote CSI Cloud Storage FUSE pour les performances de GKE.
Limites
Le pilote CSI présente les limites suivantes:
- Le système de fichiers Cloud Storage FUSE présente des différences en termes de performances, de disponibilité, d'autorisation d'accès et de sémantique par rapport à un système de fichiers POSIX.
- Le pilote CSI Cloud Storage FUSE n'est pas compatible avec GKE Sandbox.
- Le pilote CSI Cloud Storage FUSE n'est pas compatible avec les instantanés de volume, le clonage de volume ou les extensions de volume.
- Le pilote CSI Cloud Storage FUSE n'est pas compatible avec les pods exécutés sur le réseau hôte (
hostNetwork: true
) en raison des restrictions liées à la fédération d'identité de charge de travail pour GKE. - Un accès uniforme au niveau du bucket est requis pour les charges de travail en lecture-écriture lorsque vous utilisez la fédération d'identité de charge de travail pour GKE.
- Consultez les problèmes connus dans le projet GitHub du pilote CSI Cloud Storage FUSE.
- Consultez les problèmes en cours dans le projet GitHub du pilote CSI Cloud Storage FUSE.
Conditions requises
Pour utiliser le pilote CSI Cloud Storage FUSE, vos clusters doivent répondre aux exigences de version GKE suivantes:
- Utilisez des clusters Linux exécutant la version 1.24 ou une version ultérieure de GKE.
- La fédération d'identité de charge de travail pour GKE et le serveur de métadonnées GKE doivent être activés.
- Utilisez la dernière version de la Google Cloud CLI.
Pour utiliser des fonctionnalités spécifiques du pilote CSI Cloud Storage FUSE, vous devez également répondre aux exigences suivantes:
Fonctionnalité | Exigences concernant les versions de GKE |
---|---|
Image privée pour le conteneur side-car, volume de mémoire tampon d'écriture personnalisé et requêtes de ressources de conteneur side-car | 1.27.10-gke.1055000, 1.28.6-gke.1369000, 1.29.1-gke.1575000 ou versions ultérieures |
Cache de fichiers, attributs de volume | 1.27.12-gke.1190000, 1.28.8-gke.1175000, 1.29.3-gke.1093000 ou versions ultérieures |
Volumes Cloud Storage FUSE dans les conteneurs d'initialisation | 1.29.3-gke.1093000 ou version ultérieure, avec tous les nœuds exécutant GKE version 1.29 ou ultérieure. |
Téléchargement parallèle | 1.29.6-gke.1254000, 1.30.2-gke.1394000 ou version ultérieure. |
Métriques Cloud Storage FUSE | 1.31.1-gke.1621000 (et versions ultérieures) |
Prérécupération des métadonnées | 1.31.3-gke.1162000 (et versions ultérieures) |