במאמר הזה מוסבר איך לשלב את Managed Lustre עם GKE באמצעות Cluster Toolkit כדי ליצור סביבה אופטימלית לעומסי עבודה תובעניים שדורשים הרבה נתונים, כמו בינה מלאכותית (AI), למידת מכונה (ML) ומחשוב עתיר ביצועים (HPC).
במסמך הזה מוקצה אשכול GKE ומופע Managed Lustre באופן הצהרתי באמצעות Cluster Toolkit, מוגדר באופן אוטומטי מנהל התקן CSI מנוהל של Lustre ומשאבי PersistentVolume של Kubernetes, ומופעל עומס עבודה לדוגמה באשכול.
המסמך הזה מיועד למהנדסי למידת מכונה (ML) ולמומחי נתונים ו-AI שרוצים לבחון את יכולות התזמור של קונטיינרים ב-Kubernetes, שמגובות על ידי Managed Lustre. למידע נוסף על תפקידים נפוצים ומשימות לדוגמה שמוזכרות בתוכן של Google Cloud , קראו את המאמר תפקידים ומשימות נפוצים של משתמשי GKE.
רקע
בקטע הזה מתוארות הטכנולוגיות העיקריות שמופיעות במסמך הזה.
Cluster Toolkit
Cluster Toolkit הוא כלי בקוד פתוח שמפשט את הפריסה והניהול של סביבות AI/ML ו-HPC ב- Google Cloud. Cluster Toolkit משתמש בתוכניות מודולריות ודקלרטיביות לניהול כדי לבצע אוטומציה של הקצאת אשכולות GKE, רשתות, מאיצי מחשוב ואחסון עם ביצועים גבוהים.
מידע נוסף זמין במאמר סקירה כללית של Cluster Toolkit.
Managed Lustre
Managed Lustre הוא שירות של מערכת קבצים מקבילה עם ביצועים גבוהים, שמיועד לעומסי עבודה כבדים. מנהל ההתקן של ה-CSI של Managed Lustre מאפשר לשלב מופעים של Managed Lustre עם GKE באמצעות PersistentVolumeClaims (PVCs) ו-PersistentVolumes (PVs) רגילים של Kubernetes. הדרייבר הזה שימושי במיוחד לעומסי עבודה של AI/ML ו-HPC שדורשים אחסון מתמיד, עם יכולת התאמה לעומס וקצב העברת נתונים גבוה.
מידע נוסף זמין במאמר מידע על מנהל התקן CSI מנוהל של Lustre.
אפשרויות צריכה של מאיצים
Flex-start ו-VM במודל Spot מאפשרות לכם לשלם רק על המשאבים שאתם צריכים, וכך לשפר את הקצאת משאבי ה-Compute. מידע נוסף מופיע במאמר מידע על אפשרויות צריכת מאיצים לעומסי עבודה של AI/ML ב-GKE.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את Google Cloud Managed Lustre API ואת Google Kubernetes Engine API. הפעלת ממשקי API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
הכנת הסביבה
מגדירים את משתני הסביבה שמוגדרים כברירת מחדל ומקבלים את כתובת ה-IP של מכונת הפריסה:
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"מחליפים את הערכים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
REGION: האזור של הפריסה, לדוגמהus-central1. -
ZONE: אזור שתומך ב-Managed Lustre, לדוגמהus-central1-a. -
DEPLOYMENT_NAME: השם של הפריסה.
-
פריסת האשכול והאחסון
פורסים את התשתית באמצעות תוכנית ה-
examples/gke-managed-lustre.yamlממאגר 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 מקצה את ה-VPC, יוצר את מופע Managed Lustre, מקצה את אשכול GKE עם מנהל ה-CSI של Managed Lustre מופעל, ויוצר את PersistentVolume ו-PersistentVolumeClaim של Kubernetes.
מגדירים את
kubectlכדי לגשת לאשכול החדש:gcloud container clusters get-credentials ${DEPLOYMENT_NAME} \ --zone=${ZONE} \ --project=${PROJECT_ID}
הפעלת עומס עבודה באמצעות Managed Lustre
שולחים עומס עבודה שטוען את אמצעי האחסון של Managed Lustre באמצעות הפקודה gcluster job submit. מידע נוסף על אפשרויות לשליחת משימות זמין במדריך לשליחת משימות ב-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"
כדי לבדוק את היומנים של עומס העבודה ואת סטטוס הביצוע, משתמשים בפקודה gcluster job logs:
gcluster job logs "test-lustre-$(date +%H%M)" \
--cluster=${DEPLOYMENT_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE}
הפלט אמור להיראות כך:
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
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם במסמך הזה, צריך למחוק את הפריסה באמצעות Cluster Toolkit:
gcluster destroy ${DEPLOYMENT_NAME}
המאמרים הבאים
- מידע נוסף על מנהל התקן CSI של Managed Lustre
- לקטלוג התוכניות של Cluster Toolkit
- איך יוצרים סוג אחסון ב-GKE
- איך יוצרים ומשתמשים בנפח אחסון שמגובה על ידי Managed Lustre