Ce document explique comment intégrer Managed Lustre à GKE pour créer un environnement optimisé pour les charges de travail exigeantes et gourmandes en données, telles que l'intelligence artificielle (IA), le machine learning (ML) et le calcul hautes performances (HPC), à l'aide de Cluster Toolkit.
Dans ce document, vous provisionnez un cluster GKE et une instance Lustre gérée de manière déclarative avec Cluster Toolkit, configurez automatiquement le pilote CSI Lustre géré et les ressources Kubernetes PersistentVolume, et exécutez un exemple de charge de travail sur le cluster.
Ce document s'adresse aux ingénieurs en machine learning (ML) et aux spécialistes des données et de l'IA qui souhaitent explorer les fonctionnalités d'orchestration de conteneurs Kubernetes fournies par les instances Lustre gérées. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez Rôles utilisateur et tâches courantes de GKE.
Arrière-plan
Cette section décrit les principales technologies utilisées dans ce document.
Cluster Toolkit
Cluster Toolkit est un outil Open Source qui simplifie le déploiement et la gestion des environnements d'IA/ML et de HPC sur Google Cloud. Cluster Toolkit utilise des plans modulaires et déclaratifs pour automatiser le provisionnement des clusters GKE, des réseaux, des accélérateurs de calcul et du stockage hautes performances.
Pour en savoir plus, consultez la présentation de Cluster Toolkit.
Managed Lustre
Managed Lustre est un service de système de fichiers parallèles hautes performances conçu pour les charges de travail exigeantes. Le pilote CSI Managed Lustre vous permet d'intégrer des instances Managed Lustre à GKE à l'aide de PersistentVolumeClaims (PVC) et de PersistentVolumes (PV) Kubernetes standards. Ce pilote est particulièrement utile pour les charges de travail d'IA/ML et de HPC nécessitant un stockage persistant, évolutif et à haut débit.
Pour en savoir plus, consultez À propos du pilote CSI Managed Lustre.
Options de consommation de l'accélérateur
Les VM à démarrage flexible et les VM Spot vous permettent d'optimiser le provisionnement des ressources de calcul en ne payant que pour les ressources dont vous avez besoin. Pour en savoir plus, consultez À propos des options de consommation d'accélérateurs pour les charges de travail d'IA/ML dans GKE.
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Activez l'API Google Cloud Managed Lustre et l'API Google Kubernetes Engine. Activer les API
- Pour utiliser Google Cloud CLI pour cette tâche, installez puis initialisez la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande
gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
Préparer votre environnement
Définissez vos variables d'environnement par défaut et obtenez l'adresse IP de votre machine de déploiement :
gcloud config set project PROJECT_ID export PROJECT_ID=$(gcloud config get project) export REGION=REGION export ZONE=ZONE export DEPLOYMENT_NAME=DEPLOYMENT_NAME export AUTHORIZED_CIDR="$(curl -s ifconfig.me)/32"Remplacez les valeurs suivantes :
PROJECT_ID: ID de votre projet Google Cloud .REGION: région de votre déploiement, par exempleus-central1.ZONE: zone compatible avec Managed Lustre, par exempleus-central1-a.DEPLOYMENT_NAME: nom de votre déploiement.
Déployer le cluster et le stockage
Déployez l'infrastructure à l'aide du plan
examples/gke-managed-lustre.yamldu dépôt Cluster Toolkit :gcluster deploy examples/gke-managed-lustre.yaml \ --vars project_id=${PROJECT_ID},deployment_name=${DEPLOYMENT_NAME},region=${REGION},zone=${ZONE},authorized_cidr=${AUTHORIZED_CIDR}Cluster Toolkit provisionne le VPC, crée l'instance Managed Lustre, provisionne le cluster GKE avec le pilote CSI Managed Lustre activé, et crée les objets Kubernetes PersistentVolume et PersistentVolumeClaim.
Configurez
kubectlpour accéder à votre nouveau cluster :gcloud container clusters get-credentials ${DEPLOYMENT_NAME} \ --zone=${ZONE} \ --project=${PROJECT_ID}
Exécuter une charge de travail avec Managed Lustre
Envoyez une charge de travail qui installe le volume Managed Lustre à l'aide de la commande gcluster job submit. Pour en savoir plus sur les options d'envoi de jobs, consultez le guide d'envoi de jobs Cluster Toolkit.
gcluster job submit \
--name="test-lustre-$(date +%H%M)" \
--cluster=${DEPLOYMENT_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE} \
--compute-type=n2-standard-16 \
--image=ubuntu:latest \
--command="df -h && echo 'Hello from Managed Lustre on GKE' > /lustre-data/hello.txt && cat /lustre-data/hello.txt" \
--mount="gke-lustre-instance-pvc;/lustre-data;rw"
Pour inspecter les journaux de charge de travail et l'état d'exécution, utilisez la commande gcluster job logs :
gcluster job logs "test-lustre-$(date +%H%M)" \
--cluster=${DEPLOYMENT_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE}
Le résultat ressemble à ce qui suit :
Filesystem Size Used Avail Use% Mounted on
overlay 193G 11G 183G 6% /
tmpfs 64M 0 64M 0% /dev
10.8.68.5@tcp://lustrefs 35T 22M 35T 1% /lustre-data
shm 64M 0 64M 0% /dev/shm
Hello from Managed Lustre on GKE
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans ce document ne soient facturées sur votre compte Google Cloud , supprimez le déploiement à l'aide de Cluster Toolkit :
gcluster destroy ${DEPLOYMENT_NAME}
Étapes suivantes
- En savoir plus sur le pilote CSI Managed Lustre
- Explorez le catalogue de plans Cluster Toolkit.
- Découvrez comment créer une classe de stockage GKE.
- Découvrez comment créer et utiliser un volume basé sur Managed Lustre.