Provisionner Managed Lustre sur GKE à l'aide de Cluster Toolkit

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

  1. Configurez Cluster Toolkit.

  2. 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 exemple us-central1.
    • ZONE : zone compatible avec Managed Lustre, par exemple us-central1-a.
    • DEPLOYMENT_NAME : nom de votre déploiement.

Déployer le cluster et le stockage

  1. Déployez l'infrastructure à l'aide du plan examples/gke-managed-lustre.yaml du 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.

  2. Configurez kubectl pour 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