מידע על Slurm ב-GKE

במאמר הזה מוסבר על היתרונות של פריסה וניהול של אשכולות Slurm ב-Google Kubernetes Engine ‏ (GKE), ועל מודל האחריות המשותפת. ‫Slurm הוא כלי לניהול עומסי עבודה ומתזמן משימות בקוד פתוח, שניתן להרחבה בקלות ומתמקד בעומסי עבודה של מחשוב עתיר ביצועים (HPC).

המאמר הזה מתמקד בתוסף Slurm Operator ל-GKE, שמשלב את ממשק Slurm לעבודות באצ' עם יכולות ההתאמה של GKE ויעילות ניהול המשאבים.

המסמך הזה מיועד לאדמינים של נתונים, לאופרטורים ולמפתחים שרוצים להפעיל ולהגדיר את Slurm באמצעות התוסף Slurm Operator ל-GKE.

למה כדאי להשתמש ב-Slurm ב-GKE

הפעלת Slurm ב-GKE מאפשרת להגדיר סביבות שבהן משימות אימון של Slurm יכולות לפעול במקביל לעומסי עבודה אחרים של Kubernetes, כמו משימות Ray או הסקת מסקנות, באותו מאגר משותף של משאבי מחשוב.

Cloud de Confiance by S3NS מציעה את הדרכים הבאות להרצת Slurm ב-GKE:

  • Cluster Director: פתרון מנוהל שמספק חוויה מוגדרת מראש. מומלץ להשתמש ב-Cluster Director אם רוצים ליהנות מחוויה מנוהלת עם מינימום הגדרות, שבה Google מנהלת את מישור הבקרה של Slurm, את גרסאות התוכנה ואת ההגדרות. מידע נוסף מופיע במאמר Cluster Director.

  • Slurm Operator add-on for GKE: טכנולוגיה בקוד פתוח שפותחה כחלק מפרויקט Slinky בקוד פתוח, ומציעה התקנה מנוהלת של Slurm Operator. ההתקנה המנוהלת הזו מתבצעת בהתאם לשיטות המומלצות של Google. התוסף Slurm Operator ל-GKE עוזר למהנדסי פלטפורמות שרוצים לבנות פלטפורמות בהתאמה אישית שמריצות עומסי עבודה של בינה מלאכותית (AI), למידת מכונה (ML) ו-HPC במכונות שעברו אופטימיזציה להאצה. מומלץ להשתמש בתוסף Slurm Operator ל-GKE אם אתם צריכים שליטה מלאה בהגדרות Slurm, רוצים לשלב קונטיינרים בהתאמה אישית או צריכים להריץ את Slurm עם עומסי עבודה אחרים, כמו Ray או הסקה, באותו אשכול. התוסף Slurm Operator ל-GKE מציע את היתרונות הבאים:

    • תשתית מאוחדת: אתם יכולים לנהל אשכול GKE יחיד גם לעבודות אצווה של HPC וגם למיקרו-שירותים. כך מצטמצמים הסילואים התפעוליים.
    • שינוי גודל יעיל: תוסף Slurm Operator ל-GKE משתמש באספקת צמתים מהירה של GKE ובאריזת תאים יעילה כדי לבצע אופטימיזציה של השימוש במשאבים.
    • חומרה עם ביצועים גבוהים: אתם יכולים לגשת למאיצים העדכניים ביותר של Cloud de Confiance by S3NS, כמו TPU ו-GPU, באמצעות פקודות Slurm.

הקטעים הבאים במסמך הזה מתמקדים בתוסף Slurm Operator.

הסבר על שכבת התשתית

בדרך כלל, Slurm נפרס ישירות בשרתים פיזיים או במכונות וירטואליות. בהגדרות האלה, Slurm מניח שיש קבוצה יחסית סטטית של צמתים שהוא מנהל למשך מחזור החיים שלו.

לעומת זאת, GKE הוא שירות מנוהל שמסתיר את המכונות הווירטואליות הבסיסיות ומציג אותן כצמתים במאגר דינמי. מערכת GKE מטפלת בתזמון ובשינוי הגודל של הצמתים האלה באופן אוטומטי.

בעזרת התוסף Slurm Operator ל-GKE, ‏ Slurm פועל כעומס עבודה על גבי GKE. במודל הזה, GKE ו-Slurm מספקים את היכולות הבאות:

  • GKE כמנהל התשתית:‏ GKE מספק ומנהל את הצמתים, הרשתות והאבטחה הבסיסיים.
  • Slurm כמנהל עומסי העבודה:‏ Slurm מספק את הממשק שמאפשר למשתמשים לשלוח ולנהל עבודות אצווה.

השילוב הזה יוצר מחסנית הטרוגנית שבה עבודות של Slurm יכולות לחלוק את אותו חומרה בסיסית (כמו GPU ו-TPU) עם אפליקציות של Kubernetes, כמו Ray או inference serving.

איך פועל התוסף Slurm Operator

כשמפעילים את התוסף Slurm Operator ל-GKE באשכולות GKE, מערכת GKE מבצעת את השלבים הבאים:

  1. ‫GKE מתקין ומארח את Slurm Operator. האופרטור הזה פועל במישור הבקרה של GKE ומנהל את מחזור החיים של רכיבי Slurm שנפרסו באשכול. האופרטור הזה מטפל אוטומטית בתנאים מוקדמים כמו יצירת אישורים וניהול משאבים בהתאמה אישית.
  2. אחרי שהאופרטור פועל, מגדירים את הטופולוגיה של אשכול Slurm באמצעות משאבים מותאמים אישית של Kubernetes.
  3. האופרטור פורס את ה-Pods הנדרשים – כמו controller,‏ login ו-workers – בהתאם למפרט של עומס העבודה.

משאבים מותאמים אישית

התוסף Slurm Operator ל-GKE משתמש במשאבים המותאמים אישית הבאים כדי לנהל את אשכול Slurm:

  • NodeSet: מגדיר קבוצה של צמתי עובד הומוגניים. אפשר למפות עובדים של Slurm למאגרי צמתים ספציפיים של GKE או לסוגי חומרה ספציפיים. לדוגמה, אפשר ליצור NodeSet למעבדי GPU מסוג H100 ועוד NodeSet למעבדי TPU.
  • Controller: מגדיר רכיב ליבה של Slurm Cluster, שהוא Controller. המשאב הזה יוצר רכיב slurmctld ב-Pod וכל שאר הרכיבים, כמו NodeSet או LoginSet.
  • LoginSet: מגדיר את צמתי הכניסה שבהם המשתמשים נכנסים כדי לשלוח עבודות.
  • Restapi: מגדיר רכיב API בארכיטקטורת REST של Slurm Cluster.
  • הנהלת חשבונות: כשמוגדר, רכיב slurmdbd נפרס כדי לטפל בהנהלת חשבונות של משימות ובמעקב אחרי השימוש, בדרך כלל מחובר למסד נתונים של Cloud SQL.

האחריות המשותפת של תוסף Slurm Operator

כשבוחרים להפעיל את Slurm ב-GKE עם התוסף Slurm Operator ל-GKE, Cloud de Confiance by S3NS ומשתפים את האחריות. השילוב הזה מאפשר לכם להתאים אישית את הסביבה, בזמן ש-Google מנהלת את שכבת התיאום.

האחריות של Google

  • מחזור החיים של האופרטור: מתקינים את Slurm Operator.
  • מישור הבקרה של GKE: ניהול האמינות וזמן הפעולה של מישור הבקרה של GKE.
  • Kubernetes CustomResourceDefinition: ניהול המשאבים בהתאמה אישית שנדרשים ל-Slurm.
  • תמונות בסיס: תמונות קונטיינרים אופטימליות בבעלות Google לרכיבי Slurm. השימוש בתמונות האלה הוא אופציונלי. כשמגדירים את אשכול Slurm, אפשר להשתמש בתמונות האלה ש-Google מספקת או להשתמש בתמונות משלכם.

באחריות הלקוח

  • הגדרת Slurm: מגדירים את הטופולוגיה, המחיצות, המגבלות והתוספים של אשכול Slurm באמצעות קובצי YAML.
  • שליחת משימות: ניהול גישת משתמשים ותהליכי עבודה של שליחת משימות.
  • תמונות מותאמות אישית: שמירה על תמונות מותאמות אישית של קונטיינרים שמשמשות לכניסה או לצמתי עובדים, אם תמונות ברירת המחדל של Google לא עומדות בדרישות ספציפיות.
  • תלות חיצונית: ניהול משאבים חיצוניים כמו Cloud SQL לניהול חשבונות או Filestore לאחסון שיתופי.

מידע נוסף זמין במאמר בנושא אחריות משותפת ב-GKE.

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

כדי להתחיל להשתמש בתוסף Slurm Operator ל-GKE: