במאמר הזה נסביר איך ליצור קבוצת מופעי מכונה מנוהלים (MIG) כדי להוסיף בבת אחת מכונות וירטואליות (VM) עם GPU.
ה-MIG משתמש במצב Bulk של מדיניות גודל היעד שלו כדי להוסיף את מכונות ה-VM בבת אחת. בנוסף, הוא משתמש במודל הקצאת המשאבים flex-start כדי לשפר את הזמינות של המשאבים. מידע נוסף על מודל ההקצאה עם תחילת שימוש גמישה
שיטה נוספת להוספת מכונות וירטואליות עם GPU ב-MIG היא יצירת בקשות לשינוי גודל. כדי להבין אם עדיף להשתמש בעומס עבודה במצב Bulk או בבקשת שינוי גודל, אפשר לעיין בהשוואה בין מצב Bulk לבין בקשת שינוי גודל.
אם עומס העבודה לא מחייב את קבוצת ה-MIG ליצור מכונות וירטואליות בבת אחת, אבל אתם עדיין רוצים לשפר את הזמינות של המשאבים, אתם יכולים להשתמש במודל ההקצאה flex-start, כפי שמתואר במאמר יצירת קבוצת MIG עם מכונות וירטואליות מסוג Flex-start.
לפני שמתחילים
- כדי לוודא שיש לכם מספיק מכסת GPU למשאבים שאתם מבקשים, בדקו את מכסת ה-GPU.
- כדי להבין את השימוש במכסות, כדאי לקרוא את המאמר בנושא מכסות הקצאה של מכונות וירטואליות עם GPU ושל מכונות וירטואליות שניתנות להפסקת פעולה.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
מגבלות
ההגבלות הבאות חלות:
יצירת קבוצת MIG והוספה של מכונות וירטואליות עם GPU בבת אחת
כדי ליצור את מכונות ה-GPU הווירטואליות בבת אחת:
יוצרים תבנית של הגדרות מכונה, שנדרשת ליצירת MIG. לאחר מכן, קבוצת ה-MIG משתמשת בתבנית הזו כדי ליצור כל מכונה וירטואלית בקבוצה. בתבנית, מציינים את ההגדרות של מודל הקצאת ההרשאות של התחלה גמישה (Flex-start).
מידע נוסף על תבניות של מכונות זמין במאמר מידע על תבניות של מכונות.
יצירת קבוצת מופעי מכונה מנוהלים (MIG) להקצאת מכונות וירטואליות בכמות גדולה במהלך היצירה של קבוצת המופעים המנוהלים, מפעילים את היכולת להקצאת משאבים בכמות גדולה בקבוצת המופעים המנוהלים על ידי הגדרת מצב המדיניות של גודל היעד ל-
BULK. במצבBULK, ה-MIG מנסה ליצור את כל מכונות ה-VM בבת אחת כדי להגיע לגודל היעד שהגדרתם.
יצירת תבנית של הגדרות מכונה
יוצרים תבנית של הגדרות מכונה שמציינת סדרת מכונות עם GPU. לאחר מכן, משתמשים בתבנית כדי ליצור קבוצת מופעים מנוהלת (MIG).
המסוף
עוברים לדף Instance templates.
לוחצים על Create instance template. ייפתח הדף Create an instance template.
בשדה Name, מזינים שם לתבנית של הגדרות מכונה.
בקטע Machine configuration מבצעים את הפעולות הבאות:
לוחצים על הכרטיסייה GPUs.
ברשימה סוג ה-GPU, בוחרים את סוג ה-GPU.
ברשימה Number of GPUs (מספר יחידות ה-GPU), בוחרים את מספר יחידות ה-GPU.
בקטע Machine type, בוחרים סוג מכונה.
בקטע Provisioning model:
ברשימה VM provisioning model בוחרים באפשרות Flex-start.
כדי להגדיר את משך ההפעלה של המכונות הווירטואליות שנוצרו באמצעות תבנית המכונה, בשדה Enter number of hours (הזנת מספר השעות) מזינים את מספר השעות. הערך צריך להיות בין שעה אחת (
1) לבין שבעה ימים (168).
אופציונלי: כדי לשנות את סוג דיסק האתחול או את התמונה שמוגדרים כברירת מחדל, בקטע Boot disk לוחצים על Change. אחר כך, פועלים לפי ההנחיות כדי לשנות את דיסק האתחול.
לוחצים על יצירה.
gcloud
כדי ליצור תבנית של הגדרות מכונה, משתמשים בפקודה instance-templates create:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--instance-termination-action=DELETE \
--instance-template-region=REGION \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--max-run-duration=RUN_DURATION \
--provisioning-model=FLEX_START \
--reservation-affinity=none
מחליפים את מה שכתוב בשדות הבאים:
INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמהdebian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר בנושא תמונות ציבוריות.
IMAGE_FAMILY: משפחת תמונות. המאפיין הזה מציין את תמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מצייניםdebian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת תמונות Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.
REGION: האזור שבו רוצים ליצור את תבנית הגדרות המכונה.
MACHINE_TYPE: סוג מכונת GPU. אם מציינים סוג מכונה N1, צריך לכלול את הדגל--acceleratorכדי לציין את המספר והסוג של יחידות ה-GPU שרוצים לצרף למכונות הווירטואליות.
RUN_DURATION: משך הזמן שבו רוצים שהמכונות הווירטואליות המבוקשות יפעלו. הערך צריך להיות בפורמט של מספר הימים, השעות, הדקות או השניות, ואחריוd,h,mאוsבהתאמה. לדוגמה, מציינים30mל-30 דקות או1d2h3m4sליום אחד, שעתיים, שלוש דקות וארבע שניות. הערך צריך להיות בין 10 דקות לשבעה ימים.
REST
כדי ליצור תבנית של הגדרות מכונה, שולחים בקשת POST אל ה-method instanceTemplates.insert:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"reservationAffinity": {
"consumeReservationType": "NO_RESERVATION"
},
"scheduling": {
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": RUN_DURATION
},
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: המזהה של הפרויקט שבו רוצים ליצור את תבנית של הגדרות מכונה.
REGION: האזור שבו רוצים ליצור את תבנית הגדרות המכונה.
INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמהdebian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר בנושא תמונות ציבוריות.
IMAGE: מציינים אחת מהאפשרויות הבאות:גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה,
debian-12-bookworm-v20240617.משפחת תמונות, שצריכה להיות בפורמט
family/IMAGE_FAMILY. התמונה הזו מציינת את תמונת מערכת ההפעלה האחרונה שלא הוצאה משימוש. לדוגמה, אם מצייניםfamily/debian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת קובצי האימג' של Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.
MACHINE_TYPE: סוג מכונת GPU. אם מציינים סוג מכונה N1, צריך לכלול את השדהguestAcceleratorsכדי לציין את המספר והסוג של יחידות ה-GPU שיוצמדו למכונות הווירטואליות.
RUN_DURATION: משך הזמן בשניות שבו אתם רוצים שהמכונות הווירטואליות המבוקשות יפעלו לפני שהקבוצה תמחק אותן באופן אוטומטי. הערך צריך להיות בין600, שהוא 600 שניות (10 דקות), לבין604800, שהוא 604,800 שניות (שבעה ימים).
אחרי שיוצרים את תבנית של הגדרות מכונה, אפשר לראות אותה כדי לבדוק את המזהה שלה ואת מאפייני המכונה.
יצירת קבוצת MIG והוספה של מכונות וירטואליות עם GPU בבת אחת
יוצרים קבוצת מופעים מנוהלת (MIG) כמו שמתואר בקטע הזה. כשמפעילים הקצאת הרשאות בכמות גדולה ב-MIG, צריך להשבית את התיקונים.
המסוף
עוברים לדף Instance groups.
לוחצים על יצירת קבוצת מופעים. ייפתח הדף Create instance group.
בשדה Name, מזינים שם ל-MIG.
לפני שבוחרים תבנית של הגדרות מכונה, צריך להשבית את התיקונים ולהגדיר את המיקום באופן הבא:
- כדי להשבית את התיקונים:
- בקטע VM instance lifecycle (מחזור החיים של מכונת VM), מבטלים את הסימון בתיבה Allow repair of VMs in an alternate zone (אפשר לתקן מכונות וירטואליות באזור חלופי).
- ברשימה פעולת ברירת מחדל במקרה של כשל, בוחרים באפשרות ללא פעולה.
- כדי להגדיר את הקטע מיקום, מבצעים את הפעולות הבאות:
- כדי ליצור קבוצת MIG אזורית, בוחרים באפשרות Single zone (אזור יחיד).
- כדי ליצור קבוצת MIG אזורית, בוחרים באפשרות אזורים מרובים. בקטע Target distribution shape, בוחרים באפשרות Any single zone. בתיבת הדו-שיח שמופיעה, בוחרים באפשרות השבתת ההפצה מחדש של המופע.
- כדי להשבית את התיקונים:
חוזרים לשדה תבנית של הגדרות מכונה. ברשימה Instance template, בוחרים את תבנית של הגדרות מכונה שיצרתם בקטע הקודם.
בשדה Number of instances (מספר המכונות), מציינים את מספר המכונות שרוצים ליצור בבת אחת.
מסמנים את תיבת הסימון Obtain VMs all at once with bulk target size policy (קבלת כל המכונות הווירטואליות בבת אחת באמצעות מדיניות גודל יעד בכמות גדולה).
לוחצים על יצירה.
gcloud
כדי ליצור קבוצת מופעי מכונה מנוהלים (MIG) עם יכולת הקצאת משאבים בכמות גדולה, משתמשים בפקודה instance-groups managed create.
כדי ליצור קבוצת MIG אזורית, מריצים את הפקודה הבאה:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONE \כדי ליצור קבוצת MIG אזורית, מריצים את הפקודה הבאה:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --zones=LIST_OF_ZONES \
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_GROUP_NAME: השם של ה-MIG. -
SIZE: מספר המכונות הווירטואליות ב-MIG. -
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - בתבנית של הגדרות מכונה גלובלית:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית:
-
ZONE: האזור שבו קבוצת ה-MIG יוצרת מכונות וירטואליות. -
LIST_OF_ZONES: רשימה מופרדת בפסיקים של אזורים שבהם קבוצת ה-MIG האזורית יוצרת מכונות וירטואליות. לדוגמה,us-central1-a, us-central1-b, us-central1-c.
REST
כדי ליצור קבוצת מופעי מכונה מנוהלים (MIG) עם יצירה בכמות גדולה, שולחים בקשת POST באופן הבא. בגוף הבקשה, מגדירים את השדה targetSizePolicy.mode לערך bulk.
אם בתבנית של הגדרות מכונה שבה אתם משתמשים מוגדר מודל הקצאת המשאבים flex-start, אתם צריכים להשבית את התיקונים ב-MIG על ידי הכללת השדה "instanceLifecyclePolicy": {"defaultActionOnFailure": "DO_NOTHING"} בבקשות הבאות.
כדי ליצור קבוצת MIG אזורית, שולחים בקשת
POSTאל ה-methodinstanceGroupManagers.insert.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }כדי ליצור קבוצת MIG אזורית, שולחים בקשת
POSTאל ה-methodregionInstanceGroupManagers.insert.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID:מזהה הפרויקט. -
ZONE:האזור שבו קבוצת ה-MIG יוצרת מכונות וירטואליות. -
REGION:האזור שבו קבוצת ה-MIG יוצרת מכונות וירטואליות. -
INSTANCE_GROUP_NAME:השם של ה-MIG. -
SIZE:מספר המכונות הווירטואליות ב-MIG. -
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - בתבנית של הגדרות מכונה גלובלית:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית: