במאמר הזה מתואר איך ליצור אשכולות Google Kubernetes Engine (GKE) שעברו אופטימיזציה ל-AI, שמשתמשים בסדרות מכונות שעברו אופטימיזציה להאצה מסוג G2 (NVIDIA L4) או G4 (NVIDIA RTX PRO 6000) כדי לתמוך בעומסי עבודה של בינה מלאכותית (AI) ולמידת מכונה (ML). G2 ו-G4 הן סדרות מכונות GPU כלליות, שמספקות משאבי מחשוב עצמאיים שמיועדים למשימות AI נפוצות, כמו הסקה קטנה עד בינונית ואפליקציות עתירות גרפיקה. בנוסף לסוגי מכונות עם GPU יחיד ועם כמה יחידות GPU, סדרת המכונות G4 תומכת ב-GPU וירטואלי (vGPU) בסוגי מכונות שיש בהן פחות מ-GPU אחד:
-
g4-standard-6(שמינית GPU) -
g4-standard-12(רבע GPU) -
g4-standard-24(חצי GPU)
GKE מספק פלטפורמה יחידה להרצת מגוון רחב של עומסי עבודה בארגון, וכך מצמצם את העומס התפעולי שנובע מניהול של כמה פלטפורמות.
כדי ליצור אשכול GKE שעבר אופטימיזציה ל-AI עם G2 או G4, מבצעים את השלבים הבאים:
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירה ולניהול של אשכול GKE, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- אדמין ב-Kubernetes Engine (
roles/container.admin) - אדמין ב-Compute (
roles/compute.admin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
בחירת אפשרות צריכה וקבלת קיבולת
בוחרים אפשרות צריכה. הבחירה צריכה להתבסס על האופן שבו רוצים לקבל ולהשתמש במשאבי GPU. מידע נוסף זמין במאמר בנושא בחירת אפשרות צריכה.
ב-GKE, כדאי לקחת בחשבון את המידע הנוסף הבא כשבוחרים אפשרות צריכה:
- מידע נוסף על flex-start (גרסת Preview) ו-GKE זמין במאמר מידע על זמינות של GPU עם flex-start.
- התחלה גמישה (Flex-start) משתמשת במיקום קומפקטי של מאמץ מרבי. כדי לבדוק את הטופולוגיה, אפשר לעיין במאמר הצגת הטופולוגיה הפיזית של הצמתים באשכול GKE.
- אפשר לקבל מידע על הטופולוגיה רק כשמשתמשים במכונות וירטואליות מסוג Spot אם מגדירים מיקום קומפקטי.
קבלת נפח אחסון. איך מקבלים קיבולת לשימוש באפשרות התשלום לפי צריכה.
דרישות
כדי ליצור אשכול GKE שעבר אופטימיזציה ל-AI ומשתמש ב-G2 או ב-G4, צריך לוודא שאתם עומדים בדרישות הבאות:
- גרסת GKE: כדי להשתמש במכונות G4 (NVIDIA RTX PRO 6000) צריך גרסאות GKE מינימליות מהרשימה הבאה:
- מצב רגיל:
- סוגי מכונות עם GPU אחד או יותר:
1.34.0-gke.1662000ואילך - סוגי מכונות עם פחות מ-GPU אחד (
g4-standard-6,g4-standard-12ו-g4-standard-24):- 1.35:
1.35.8-gke.1518000ואילך - 1.36 ואילך:
1.36.4-gke.1082000ואילך
- 1.35:
- סוגי מכונות עם GPU אחד או יותר:
- מצב אוטומטי:
- סוגי מכונות עם GPU אחד או יותר:
1.34.1-gke.1829001ואילך - סוגי מכונות עם פחות מ-GPU אחד (
g4-standard-6,g4-standard-12ו-g4-standard-24):- 1.35:
1.35.8-gke.1518000ואילך - 1.36 ואילך:
1.36.4-gke.1082000ואילך
- 1.35:
- סוגי מכונות עם GPU אחד או יותר:
- מצב רגיל:
- מנהלי התקנים של GPU:
- בצמתים מסוג G2 (NVIDIA L4) צריך להשתמש בדרייבר של NVIDIA בגרסה
535ואילך. - בצמתים מסוג G4 (NVIDIA RTX PRO 6000) צריך להשתמש בדרייבר NVIDIA בגרסה
580ומעלה.
- בצמתים מסוג G2 (NVIDIA L4) צריך להשתמש בדרייבר של NVIDIA בגרסה
מגבלות
המגבלות הבאות חלות על סדרות המכונות G2 ו-G4 כסדרות של GPU כללי:
- Local SSDs: סוגי המכונות G2 ו-G4 לא כוללים דיסקים של Local SSD כברירת מחדל. אם צריך, אפשר לצרף אותם באופן ידני. סוג המכונה
g4-standard-6(שמינית GPU) לא תומך בכונני SSD מקומיים. - NCCL Fast Socket: אי אפשר להשתמש ב-NCCL Fast Socket במכונות G2 או G4 ב-GKE. מכונות G2 ו-G4 תומכות בתקשורת בין צמתים, אבל הן משתמשות ברישות VPC רגיל. לאימון מבוזר בקנה מידה גדול שדורש תפוקת רשת מקסימלית, מומלץ להשתמש בסדרת מכונות GPU באשכול, כמו A3 High או A3 Mega (שמשתמשות ב-GPUDirect TCPX) או A3 Ultra ו-A4 (שמשתמשות ב-GPUDirect RDMA).
- סוגי מכונות G4 עם פחות מ-GPU אחד:
g4-standard-6,g4-standard-12ו-g4-standard-24:- אי אפשר להשתמש בתמונות של צומתי Ubuntu.
- אי אפשר להשתמש ביחידות GPU מרובות מופעים, ב-NVIDIA MPS או בשיתוף זמן של GPU.
יצירת סביבת GKE
אפשר ליצור אשכול במצב Autopilot או במצב רגיל.
טייס אוטומטי
כדי ליצור אשכול Autopilot, מריצים את הפקודה הבאה:
gcloud container clusters create-auto CLUSTER_NAME \
--region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול. -
REGION: האזור של האשכול.
רגילה
יוצרים אשכול רגיל ומאגר צמתים של GPU:
כדי ליצור אשכול רגיל, מריצים את הפקודה הבאה:
gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --enable-ip-aliasמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול. -
REGION: האזור של האשכול.
-
יוצרים את מאגר הצמתים. אחרי שיוצרים את האשכול, אפשר להוסיף מאגר צמתים עם G2 או G4. במקרה של עומסי עבודה מרובי צמתים שמשתמשים ב-G2 (L4) או ב-G4 (RTX PRO 6000), מומלץ להשתמש במדיניות מיקום קומפקטית כדי לצמצם את זמן האחזור ברשת בין הצמתים.
כדי ליצור מאגר צמתים, משתמשים בפקודה הבאה:
G2 (NVIDIA L4)
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-l4,count=AMOUNT,gpu-driver-version=LATEST \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTG4 (NVIDIA RTX PRO 6000)
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-rtx-pro-6000,count=AMOUNT,gpu-driver-version=LATEST \ --disk-type=hyperdisk-balanced \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTG4 Virtual Workstation (vWS)
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-rtx-pro-6000-vws,count=AMOUNT,gpu-driver-version=LATEST \ --disk-type=hyperdisk-balanced \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTמחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים. -
CLUSTER_NAME: השם של האשכול. -
REGION: האזור של האשכול. -
ZONE: אזור אחד או יותר באזור שלכם שבו יחידות ה-GPU המבוקשות זמינות, לדוגמה,us-central1-a. ההגדרה הזו נדרשת כשמשתמשים במיקום קומפקטי. -
MACHINE_TYPE: סוג המכונה של הצמתים, לדוגמה,g2-standard-4למכונות G2,g4-standard-48למכונת G4 עם GPU יחיד, אוg4-standard-6,g4-standard-12אוg4-standard-24לסוגי מכונות G4 עם פחות מ-GPU אחד (עם סוג המאיץnvidia-rtx-pro-6000). -
AMOUNT: מספר יחידות ה-GPU לצירוף לכל צומת. אם משתמשים בסוג מכונה G4 עם פחות מ-GPU אחד (g4-standard-6,g4-standard-12אוg4-standard-24) או עםg4-standard-48(GPU אחד), צריך להגדיר אתAMOUNTלערך1. -
LOCAL_SSD_COUNT: מספר נפחי ה-SSD המקומיים שיוקצו לכל צומת. אם משתמשים בסוג המכונהg4-standard-6, אין צורך להוסיף את הדגל--local-ssd-countכיg4-standard-6לא תומך ב-SSD מקומי.
-
התחברות לאשכול
מתחברים לאשכול כדי להריץ את הפקודות של kubectl בקטעים הבאים:
gcloud container clusters get-credentials CLUSTER_NAME \
--region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול. -
REGION: האזור של האשכול.
מידע נוסף זמין במאמר התקנה של kubectl והגדרת גישה לאשכול.
הגדרת מניפסטים של Pod (ב-Autopilot בלבד)
אם יצרתם אשכול Autopilot, אתם צריכים לבחור את ה-GPU המתאים במניפסטים של ה-Pod כדי ש-GKE יקצה את החומרה.
כדי לציין את סוג ה-GPU שנבחר ואת ההזמנה הספציפית, משתמשים בבוררי צמתים:
spec: nodeSelector: cloud.google.com/gke-accelerator: ACCELERATOR cloud.google.com/gke-gpu-driver-version: latest # Optional: Include if using reserved capacity cloud.google.com/reservation-name: RESERVATION_NAME cloud.google.com/reservation-affinity: "specific"מחליפים את מה שכתוב בשדות הבאים:
-
ACCELERATOR: המאיץ שהזמנתם. אתם צריכים להשתמש ב-nvidia-l4(ל-G2), ב-nvidia-rtx-pro-6000(ל-G4) או ב-nvidia-rtx-pro-6000-vws(ל-G4 עם תחנת עבודה וירטואלית). -
RESERVATION_NAME: השם של הזמנת הקיבולת ב-Compute Engine. כדי להשתמש בהזמנות משותפות או בבלוקים ספציפיים ובלוקים משניים של הזמנות, אפשר לעיין בקטעים הרלוונטיים במאמר שימוש במשאבים שמורים בנתיב אזורי.
-
מוסיפים את המשאבים הבאים למאגר שמבקש מעבדי GPU:
containers: - name: my-container resources: limits: nvidia.com/gpu: AMOUNTמחליפים את
AMOUNTבמספר המעבדים הגרפיים שהקונטיינר יכול להשתמש בהם. כדי לבקש סוג מכונה G4 עם פחות ממעבד גרפי אחד (g4-standard-6, g4-standard-12אוg4-standard-24) באשכול Autopilot, צריך להשתמש ב-ComputeClassמותאם אישית שמציין את סוג המכונה, ולהגדיר אתnvidia.com/gpuלערך1. הוראות מפורטות זמינות במאמר בנושא בקשה לסוגי מכונות G4 עם פחות מ-GPU אחד.