Esegui il provisioning di Managed Lustre su GKE utilizzando Cluster Toolkit

Questo documento spiega come integrare Managed Lustre con GKE per creare un ambiente ottimizzato per workload impegnativi e a uso intensivo di dati come l'intelligenza artificiale (AI), il machine learning (ML) e il computing ad alte prestazioni (HPC) utilizzando Cluster Toolkit.

In questo documento, esegui il provisioning di un cluster GKE e di un'istanza Managed Lustre in modo dichiarativo con Cluster Toolkit, configura automaticamente il driver CSI Managed Lustre e le risorse PersistentVolume di Kubernetes ed esegui un carico di lavoro di esempio sul cluster.

Questo documento è destinato a machine learning (ML) engineer e specialisti di dati e AI interessati a esplorare le funzionalità di orchestrazione dei container Kubernetes supportate dalle istanze Managed Lustre. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui viene fatto riferimento nei contenuti di Google Cloud , consulta Ruoli utente e attività comuni di GKE.

Sfondo

Questa sezione descrive le tecnologie chiave utilizzate in questo documento.

Cluster Toolkit

Cluster Toolkit è uno strumento open source che semplifica il deployment e la gestione di ambienti AI/ML e HPC su Google Cloud. Cluster Toolkit utilizza progetti modulari e dichiarativi per automatizzare il provisioning di cluster GKE, reti, acceleratori di calcolo e spazio di archiviazione ad alte prestazioni.

Per saperne di più, consulta la panoramica di Cluster Toolkit.

Managed Lustre

Managed Lustre è un servizio di sistema di file parallelo ad alte prestazioni progettato per workload impegnativi. Il driver Managed Lustre CSI ti consente di integrare le istanze Managed Lustre con GKE utilizzando PersistentVolumeClaims (PVC) e PersistentVolumes (PV) standard di Kubernetes. Questo driver è particolarmente utile per i workload AI/ML e HPC che richiedono spazio di archiviazione persistente, scalabile e ad alta velocità effettiva.

Per saperne di più, consulta la pagina Informazioni sul driver CSI Managed Lustre.

Opzioni di consumo dell'acceleratore

Le VM con avvio flessibile e spot ti consentono di ottimizzare il provisioning di Compute pagando solo le risorse di cui hai bisogno. Per maggiori informazioni, consulta Informazioni sulle opzioni di consumo degli acceleratori per i carichi di lavoro AI/ML in GKE.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Abilita l'API Google Cloud Managed Lustre e l'API Google Kubernetes Engine.
  • Abilita le API
  • Per utilizzare Google Cloud CLI per questa attività, installala e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo il comando gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.

prepara l'ambiente

  1. Configura Cluster Toolkit.

  2. Imposta le variabili di ambiente predefinite e recupera l'indirizzo IP della macchina di deployment:

    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"
    

    Sostituisci i seguenti valori:

    • PROJECT_ID: il tuo ID progetto Google Cloud .
    • REGION: la regione per il deployment, ad esempio us-central1.
    • ZONE: una zona che supporta Managed Lustre, ad esempio us-central1-a.
    • DEPLOYMENT_NAME: il nome del deployment.

Esegui il deployment del cluster e dello spazio di archiviazione

  1. Esegui il deployment dell'infrastruttura utilizzando il progetto examples/gke-managed-lustre.yaml dal repository 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 esegue il provisioning del VPC, crea l'istanza Managed Lustre, esegue il provisioning del cluster GKE con il driver Managed Lustre CSI abilitato e crea PersistentVolume e PersistentVolumeClaim di Kubernetes.

  2. Configura kubectl per accedere al nuovo cluster:

    gcloud container clusters get-credentials ${DEPLOYMENT_NAME} \
        --zone=${ZONE} \
        --project=${PROJECT_ID}
    

Esegui un carico di lavoro con Managed Lustre

Invia un workload che monta il volume Managed Lustre utilizzando il comando gcluster job submit. Per saperne di più sulle opzioni di invio dei job, consulta la guida all'invio dei job di 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"

Per esaminare i log del workload e lo stato di esecuzione, utilizza il comando gcluster job logs:

gcluster job logs "test-lustre-$(date +%H%M)" \
    --cluster=${DEPLOYMENT_NAME} \
    --project=${PROJECT_ID} \
    --location=${ZONE}

L'output è simile al seguente:

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

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo documento, elimina il deployment utilizzando Cluster Toolkit:

gcluster destroy ${DEPLOYMENT_NAME}

Passaggi successivi