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
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 esempious-central1.ZONE: una zona che supporta Managed Lustre, ad esempious-central1-a.DEPLOYMENT_NAME: il nome del deployment.
Esegui il deployment del cluster e dello spazio di archiviazione
Esegui il deployment dell'infrastruttura utilizzando il progetto
examples/gke-managed-lustre.yamldal 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.
Configura
kubectlper 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
- Scopri di più sul driver CSI Managed Lustre.
- Esplora il catalogo dei progetti base di Cluster Toolkit.
- Scopri come creare una classe di archiviazione GKE.
- Scopri come creare e utilizzare un volume supportato da Managed Lustre.