הקצאת Managed Lustre ב-GKE באמצעות Cluster Toolkit

במאמר הזה מוסבר איך לשלב את 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 לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.

הכנת הסביבה

  1. הגדרת Cluster Toolkit.

  2. מגדירים את משתני הסביבה שמוגדרים כברירת מחדל ומקבלים את כתובת ה-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: השם של הפריסה.

פריסת האשכול והאחסון

  1. פורסים את התשתית באמצעות תוכנית ה-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.

  2. מגדירים את 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}

המאמרים הבאים