יצירת קבוצת MIG שעברה אופטימיזציה ל-AI עם סוג המכונה A3 Edge

במאמר עזרה זה מוסבר איך ליצור קבוצת מופעי מכונה מנוהלים (MIG) שמשתמשת בסוג מכונה עם אופטימיזציה למאיצים מסוג A3 Edge. מידע נוסף על סוג המכונה מופיע במאמר A3 Edge במאמרי העזרה של Compute Engine.

יצירת MIG מאפשרת לכם לנהל כמה מכונות וירטואליות (VM) כישות אחת. כל מכונה וירטואלית ב-MIG מבוססת על תבנית של הגדרות מכונה. קבוצות של מופעי מכונה מנוהלים (MIG) מספקות זמינות גבוהה ויכולת התאמה לעומס, על ידי ניהול אוטומטי של התקינות והגודל של קבוצת המכונות. מידע נוסף על MIGs זמין במאמר קבוצות מופעי מכונה מנוהלים.

למידע ולמידה על אפשרויות יצירת מכונות וירטואליות ואשכולות, ראו סקירה כללית על יצירת מכונות וירטואליות ואשכולות .

מגבלות

כשיוצרים קבוצת מכונות מנוהלת עם מכונות וירטואליות מסוג A3 Edge, חשוב להביא בחשבון את המגבלות של סוג המכונה ושל קבוצת המכונות המנוהלת.

מגבלות של מכונות וירטואליות מסוג A3 Edge

בהתאם לסדרת המכונות שבהן משתמשים ה-VMs בקבוצת ה-MIG, חלות המגבלות הבאות:

מגבלות של קבוצת המכונות המנוהלת (MIG)

כשיוצרים קבוצת MIG עם מכונות וירטואליות מסוג A3 Edge, חלות המגבלות הבאות:

  • צריך להשבית את התיקונים ב-MIG, כמו שמתואר במאמר הזה.

  • אי אפשר להגדיר הפעלה גמישה של מכונות בקבוצת המכונות המנוהלת.

  • מגבלות על בקשות לשינוי כמות ב-MIG

    המגבלות הבאות חלות על בקשות לשינוי כמות של MIG:

    מידע נוסף זמין במאמר כל המגבלות על בקשות לשינוי גודל.

    לפני שמתחילים

    לפני שיוצרים קבוצת MIG, אם עדיין לא עשיתם זאת, בצעו את הפעולות הבאות:

    1. בחירת אפשרות צריכה: אפשרות הצריכה שתבחרו תקבע איך תקבלו את משאבי ה-GPU ותשתמשו בהם. מידע נוסף זמין במאמר בחירת אפשרות צריכה.
    2. השגת קיבולת: התהליך להשגת קיבולת שונה בכל אפשרות צריכה. במאמר סקירה כללית על קיבולת מוסבר איך מקבלים קיבולת לאפשרות הצריכה שבחרתם.
    3. אימות ההרשאות של סוכן השירות של Google APIs: כשיוצרים מכונות וירטואליות בקבוצת מכונות מנוהלת (MIG), Compute Engine משתמש בסוכן השירות של Google APIs (PROJECT_NUMBER@cloudservices.gserviceaccount.com) בפרויקט. אם בתבנית של הגדרות המכונה נעשה שימוש במשאבים מפרויקט אחר, צריך לוודא שלסוכן השירות הזה יש את ההרשאות הנדרשות:

    התפקידים הנדרשים

    כדי לקבל את ההרשאות שנדרשות ליצירת קבוצת MIG, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

    זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירת קבוצת MIG. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

    ההרשאות הנדרשות

    כדי ליצור קבוצת MIG, צריך את ההרשאות הבאות:

    • כדי ליצור קבוצת MIG: ‫compute.instanceGroupManagers.create בפרויקט

    יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

    סקירה כללית

    כדי ליצור קבוצת MIG עם סוג המכונה A3 Edge:

    1. יצירת רשתות VPC
    2. אופציונלי: יצירת מדיניות למיקום קומפקטי
    3. יצירת תבנית של הגדרות מכונה
    4. יצירת MIG
    5. התקנת מנהלי התקנים של GPU

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

    יצירת רשתות VPC

    כדי לאפשר תקשורת יעילה למכונות הווירטואליות של ה-GPU, צריך ליצור רשת ניהול ורשת נתונים אחת או יותר. רשת הניהול משמשת לגישה חיצונית, למשל SSH, ולרוב התקשורת הכללית ברשת. רשתות הנתונים משמשות לתקשורת עם ביצועים גבוהים בין יחידות ה-GPU במכונות וירטואליות שונות, למשל לתנועה של גישה ישירה מרוחקת לזיכרון (RDMA).

    ברשתות VPC כאלה, מומלץ להגדיר ערך גדול יותר ליחידת ההעברה המקסימלית (MTU). ערכי MTU גבוהים יותר מגדילים את גודל החבילה ומפחיתים את התקורה של כותרת החבילה, וכך מגדילים את תפוקת הנתונים של המטען הייעודי (payload). מידע נוסף על יצירת רשתות VPC זמין במאמר יצירה ואימות של רשת MTU עם מסגרות גדולות.

    יצירת רשת ניהול, רשת משנה וכלל חומת אש

    כדי להגדיר את רשת הניהול:

    1. יוצרים את רשת הניהול באמצעות הפקודה networks create:

      gcloud compute networks create NETWORK_NAME_PREFIX-mgmt-net \
          --project=PROJECT_ID \
          --subnet-mode=custom \
          --mtu=8244
      
    2. יוצרים את רשת המשנה לניהול באמצעות הפקודה networks subnets create:

      gcloud compute networks subnets create NETWORK_NAME_PREFIX-mgmt-sub \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --region=REGION \
          --range=192.168.0.0/24
      
    3. יוצרים כללים לחומת האש באמצעות הפקודה firewall-rules create.

      1. יוצרים כלל של חומת אש לרשת הניהול.

        gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-internal \
            --project=PROJECT_ID \
            --network=NETWORK_NAME_PREFIX-mgmt-net \
            --action=ALLOW \
            --rules=tcp:0-65535,udp:0-65535,icmp \
            --source-ranges=192.168.0.0/16
        
      2. יוצרים את הכלל tcp:22 בחומת האש כדי להגביל את כתובות ה-IP של המקור שיכולות להתחבר למכונה הווירטואלית באמצעות SSH.

        gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ssh \
            --project=PROJECT_ID \
            --network=NETWORK_NAME_PREFIX-mgmt-net \
            --action=ALLOW \
            --rules=tcp:22 \
            --source-ranges=SSH_SOURCE_IP_RANGE
        
      3. יוצרים את הכלל icmp בחומת האש, שמאפשר לבדוק אם יש בעיות בהעברת הנתונים ברשת.

        gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ping \
            --project=PROJECT_ID \
            --network=NETWORK_NAME_PREFIX-mgmt-net \
            --action=ALLOW \
            --rules=icmp \
            --source-ranges=0.0.0.0/0
        

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫NETWORK_NAME_PREFIX: התחילית של השם שמשמשת לרשתות ה-VPC ולרשתות המשנה.
    • ‫PROJECT_ID : מזהה הפרויקט.
    • ‫REGION: האזור שבו רוצים ליצור את הרשתות.
    • ‫SSH_SOURCE_IP_RANGE: טווח כתובות IP בפורמט CIDR. כך מציינים אילו כתובות IP של מקור יכולות להתחבר למכונה הווירטואלית באמצעות SSH.

    יצירת רשתות נתונים, רשתות משנה וכללי חומת אש

    ב-A3 Edge נדרשות ארבע רשתות נתונים. כדי ליצור ארבע רשתות נתונים, שלכל אחת מהן יש רשתות משנה וכללי חומת אש, משתמשים בפקודה הבאה:

    for N in $(seq 1 4); do
    gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
        --project=PROJECT_ID \
        --subnet-mode=custom \
        --mtu=8244
    
    gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
        --project=PROJECT_ID \
        --network=NETWORK_NAME_PREFIX-data-net-$N \
        --region=REGION \
        --range=192.168.$N.0/24
    
    gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
        --project=PROJECT_ID \
        --network=NETWORK_NAME_PREFIX-data-net-$N \
        --action=ALLOW \
        --rules=tcp:0-65535,udp:0-65535,icmp \
        --source-ranges=192.168.0.0/16
    done
    

    אופציונלי: יצירת מדיניות למיקום קומפקטי

    כדי לציין את מיקום ה-VM, אתם יכולים ליצור מדיניות למיקום קומפקטי. כשמחילים מדיניות למיקום קומפקטי על המכונות הווירטואליות, המערכת של Compute Engine מנסה ליצור מכונות וירטואליות שקרובות זו לזו ככל האפשר. אם האפליקציה שלכם רגישה לזמן אחזור ודורשת דחיסות מקסימלית, ציינו את השדה maxDistance (גרסת טרום-השקה (Preview)) כשאתם יוצרים מדיניות למיקום קומפקטי. ערך נמוך יותר של maxDistance מבטיח מיקום קרוב יותר של המכונות הווירטואליות, אבל הוא גם מגדיל את הסיכוי שחלק מהמכונות הווירטואליות לא ייווצרו.

    כדי ליצור מדיניות למיקום קומפקטי, בוחרים באחת מהאפשרויות הבאות:

    gcloud

    כדי ליצור מדיניות למיקום קומפקטי, משתמשים בפקודה gcloud compute resource-policies create group-placement:

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --max-distance=MAX_DISTANCE \
        --region=REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫POLICY_NAME: השם של המדיניות למיקום קומפקטי.
    • ‫MAX_DISTANCE: הגדרת המרחק המקסימלי של המכונות הווירטואליות, שאפשר לציין (גרסת טרום-השקה (Preview), מומלץ) או לא לציין (הסרת הדגל --max-distance). בהתאם לסוג המכונה, אפשר לציין אחד מהערכים הבאים:
      • כדי למקם מכונות וירטואליות באותו בלוק משנה: 1
      • כדי למקם מכונות וירטואליות באותו בלוק: 2
      • כדי למקם מכונות וירטואליות בבלוקים סמוכים: 3
      חשוב לוודא שהגדרת המרחק המקסימלי תומכת בסדרת המכונות ובמספר המכונות הווירטואליות שאתם מתכננים ליצור. מידע נוסף זמין במאמר מידע על מדיניות למיקום קומפקטי במסמכי התיעוד של Compute Engine.
    • ‫REGION: האזור שבו רוצים ליצור את המדיניות למיקום קומפקטי. מציינים את האזור שמכיל את התחום שבו מתכננים ליצור מכונות, ומוודאים שסוג המכונה שרוצים להשתמש בו זמין באזור הזה. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים.

    REST

    כדי ליצור מדיניות למיקום קומפקטי, שולחים בקשת POST ל-method‏ resourcePolicies.insert. בגוף הבקשה, כוללים את השדה collocation שמוגדר ל-COLLOCATED ואת השדה maxDistance.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
      {
        "name": "POLICY_NAME",
        "groupPlacementPolicy": {
          "collocation": "COLLOCATED",
          "maxDistance": MAX_DISTANCE
        }
      }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט.
    • ‫POLICY_NAME: השם של המדיניות למיקום קומפקטי.
    • ‫MAX_DISTANCE: הגדרת המרחק המקסימלי של המכונות הווירטואליות, שיכולה להיות מוגדרת (גרסת טרום-השקה (Preview), מומלץ) או לא מוגדרת (הסרת השדה maxDistance). בהתאם לסוג המכונה, אפשר לציין אחד מהערכים הבאים:
      • כדי למקם מכונות וירטואליות באותו בלוק משנה: 1
      • כדי למקם מכונות וירטואליות באותו בלוק: 2
      • כדי למקם מכונות וירטואליות בבלוקים סמוכים: 3
      חשוב לוודא שהגדרת המרחק המקסימלי תומכת בסדרת המכונות ובמספר המכונות הווירטואליות שאתם מתכננים ליצור. מידע נוסף זמין במאמר מידע על מדיניות למיקום קומפקטי במסמכי התיעוד של Compute Engine.
    • ‫REGION: האזור שבו רוצים ליצור את המדיניות למיקום קומפקטי. מציינים את האזור שמכיל את התחום שבו מתכננים ליצור מכונות, ומוודאים שסוג המכונה שרוצים להשתמש בו זמין באזור הזה. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים.

    יצירת תבנית של הגדרות מכונה

    כדי לציין את המאפיינים של המכונות הווירטואליות בקבוצת המכונות המנוהלת (MIG), יוצרים תבנית של הגדרות מכונה.

    כדי ליצור תבנית של הגדרות מכונה, בוחרים באחת מהאפשרויות הבאות:

    הפקודות הבאות גם מגדירות את היקף הגישה למכונות. כדי לפשט את ניהול ההרשאות, Google ממליצה להגדיר את היקף הגישה במכונה לגישה מסוג cloud-platform, ואז להשתמש בתפקידי IAM כדי להגדיר לאילו שירותים המכונה יכולה לגשת. מידע נוסף זמין במאמר שיטות מומלצות להיקפים.

    כדי ליצור תבנית של הגדרות מכונה ל-VM מסוג A3 Edge, צריך לציין ארבעה ממשקי רשת נוספים לתנועה של GPUDirect-TCPX. אם עדיין לא עשיתם זאת, אתם צריכים ליצור ארבע רשתות VPC, כפי שמתואר בקטע יצירת רשתות VPC.

    gcloud

    כדי ליצור תבנית של הגדרות מכונה אזורית, משתמשים בפקודה gcloud compute instance-templates create.

    הפרמטרים שצריך לציין תלויים באפשרות הצריכה שבה אתם משתמשים בפריסה הזו. בוחרים את הכרטיסייה שמתאימה לאפשרות הצריכה שלכם.

    הזמנה

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

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --instance-template-region=REGION \
        --boot-disk-type=DISK_TYPE \
        --boot-disk-size=DISK_SIZE \
        --scopes=cloud-platform \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
        --reservation-affinity=specific \
        --reservation=RESERVATION \
        --provisioning-model=RESERVATION_BOUND \
        --instance-termination-action=DELETE \
        --maintenance-policy=TERMINATE \
        --restart-on-failure
    

    כך עושים את זה:

    1. מחליפים את מה שכתוב בשדות הבאים:

      • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.
      • ‫MACHINE_TYPE: סוג המכונה שמשמשת למכונה של A3 Edge. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
      • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות בסדרת המכונות A3 Edge, מומלץ מאוד להשתמש בקובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים.
      • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. לדוגמה, השתמשו ב-cos-cloud בשביל קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
      • ‫REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע על אזורים, ראו זמינות GPU לפי אזורים ותחומים.
      • ‫DISK_TYPE: סוג דיסק האתחול. לסדרת המכונות הזו, מומלץ להשתמש ב-hyperdisk-balanced. למידע נוסף על סוגי הדיסקים שנתמכים בסוג המכונה שלכם, קראו את המאמר מכונות GPU במשפחת מכונות שעברו אופטימיזציה למאיצים במסמכי התיעוד של Compute Engine.
      • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
      • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות בכרטיסי רשת של gVNIC.
      • ‫RESERVATION: שם ההזמנה או בלוק ספציפי בתוך ההזמנה. כדי לראות את שם ההזמנה או את הבלוקים הזמינים, עיינו במאמר הצגת הקיבולת השמורה. בהתאם לדרישות שלכם לגבי מיקום המכונה, בוחרים באחת מהאפשרויות הבאות:
        • כדי ליצור מופעים בכמה בלוקים או בבלוק אחד:

          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

          בנוסף, לבלוק יחיד, צריך להחיל מדיניות למיקום קומפקטי שמציינת מיקום משותף של בלוק (maxDistance=2) . לאחר מכן, Compute Engine מחיל את המדיניות על ההזמנה ויוצר מכונות באותו בלוק.

        • כדי ליצור מכונות בבלוק ספציפי:

          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    2. אם בחרתם להשתמש במדיניות למיקום קומפקטי, מוסיפים לפקודה את הדגל הבא:

      --resource-policies=POLICY_NAME
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫POLICY_NAME: השם של המדיניות למיקום קומפקטי.
    3. מריצים את הפקודה.

    התחלה גמישה (Flex-start)

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

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --instance-template-region=REGION \
        --boot-disk-type=DISK_TYPE \
        --boot-disk-size=DISK_SIZE \
        --scopes=cloud-platform \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
        --instance-termination-action=DELETE \
        --max-run-duration=RUN_DURATION \
        --maintenance-policy=TERMINATE \
        --provisioning-model=FLEX_START
    
    

    כך עושים את זה:

    1. מחליפים את מה שכתוב בשדות הבאים:

      • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.
      • ‫MACHINE_TYPE: סוג המכונה שמשמשת למכונה של A3 Edge. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
      • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות בסדרת המכונות A3 Edge, מומלץ מאוד להשתמש בקובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים.
      • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. לדוגמה, השתמשו ב-cos-cloud בשביל קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
      • ‫REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע על אזורים, ראו זמינות GPU לפי אזורים ותחומים.
      • ‫DISK_TYPE: סוג דיסק האתחול. לסדרת המכונות הזו, מומלץ להשתמש ב-hyperdisk-balanced. למידע נוסף על סוגי הדיסקים שנתמכים בסוג המכונה שלכם, קראו את המאמר מכונות GPU במשפחת מכונות שעברו אופטימיזציה למאיצים במסמכי התיעוד של Compute Engine.
      • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
      • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות בכרטיסי רשת של gVNIC.
      • ‫RUN_DURATION: משך הזמן שבו רוצים להריץ את המכונות הווירטואליות המבוקשות. צריך לציין את הערך כמספר הימים, השעות, הדקות או השניות, ואחריו את האותיות d,‏ h,‏ m ו-s בהתאמה. לדוגמה, מציינים 30m ל-30 דקות או 1d2h3m4s ליום אחד, שעתיים, שלוש דקות וארבע שניות. הערך צריך להיות בין 10 דקות ל-7 ימים.
    2. מריצים את הפקודה.

    כרטיס Spot

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

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --instance-template-region=REGION \
        --boot-disk-type=DISK_TYPE \
        --boot-disk-size=DISK_SIZE \
        --scopes=cloud-platform \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
        --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
        --provisioning-model=SPOT \
        --instance-termination-action=TERMINATION_ACTION \
        --maintenance-policy=TERMINATE \
        --no-restart-on-failure
    

    כך עושים את זה:

    1. מחליפים את מה שכתוב בשדות הבאים:

      • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.
      • ‫MACHINE_TYPE: סוג המכונה שמשמשת למכונה של A3 Edge. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
      • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות בסדרת המכונות A3 Edge, מומלץ מאוד להשתמש בקובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים.
      • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. לדוגמה, השתמשו ב-cos-cloud בשביל קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
      • ‫REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע על אזורים, ראו זמינות GPU לפי אזורים ותחומים.
      • ‫DISK_TYPE: סוג דיסק האתחול. לסדרת המכונות הזו, מומלץ להשתמש ב-hyperdisk-balanced. למידע נוסף על סוגי הדיסקים שנתמכים בסוג המכונה שלכם, קראו את המאמר מכונות GPU במשפחת מכונות שעברו אופטימיזציה למאיצים במסמכי התיעוד של Compute Engine.
      • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
      • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות בכרטיסי רשת של gVNIC.
      • ‫TERMINATION_ACTION: הפעולה שצריך לבצע כש-Compute Engine מפקיע את המכונה, STOP (ברירת המחדל) או DELETE.

    2. אם בחרתם להשתמש במדיניות למיקום קומפקטי, מוסיפים לפקודה את הדגל הבא:

      --resource-policies=POLICY_NAME
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫POLICY_NAME: השם של המדיניות למיקום קומפקטי.
    3. מריצים את הפקודה.

    REST

    כדי ליצור תבנית של הגדרות מכונה אזורית, שולחים בקשת POST ל-method‏ regionInstanceTemplates.insert.

    הפרמטרים שצריך לציין תלויים באפשרות הצריכה שבה אתם משתמשים בפריסה הזו. בוחרים את הכרטיסייה שמתאימה לאפשרות הצריכה שלכם.

    הזמנה

    לפני ששולחים את הבקשה, צריך לעיין בכל השלבים הבאים כדי להחליט אם לכלול שדות נוספים.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
    {
      "name": "INSTANCE_TEMPLATE_NAME",
      "properties": {
        "machineType": "MACHINE_TYPE",
        "disks": [
          {
            "boot": true,
            "initializeParams": {
              "diskSizeGb": "DISK_SIZE",
              "diskType": "DISK_TYPE",
              "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode": "READ_WRITE",
            "type": "PERSISTENT"
          }
        ],
        "serviceAccounts": [
          {
            "email": "default",
            "scopes": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "networkInterfaces": [
          {
            "accessConfigs": [
              {
                "name": "external-nat",
                "type": "ONE_TO_ONE_NAT"
              }
            ],
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
          }
        ],
        "reservationAffinity": {
            "consumeReservationType": "SPECIFIC_RESERVATION",
            "key": "compute.googleapis.com/reservation-name",
            "values": [
              "RESERVATION"
            ]
          },
        "scheduling": {
            "provisioningModel": "RESERVATION_BOUND",
            "instanceTerminationAction": "DELETE",
            "onHostMaintenance": "TERMINATE",
            "automaticRestart": true
          }
      }
    }
    

    כך עושים את זה:

    1. מחליפים את מה שכתוב בשדות הבאים:

      • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.
      • ‫MACHINE_TYPE: סוג המכונה שמשמשת למכונה של A3 Edge. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
      • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות בסדרת המכונות A3 Edge, מומלץ מאוד להשתמש בקובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים.
      • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. לדוגמה, השתמשו ב-cos-cloud בשביל קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
      • ‫REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע על אזורים, קראו את המאמר זמינות GPU לפי אזורים ותחומים.
      • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
      • ‫DISK_TYPE: סוג דיסק האתחול. לסדרת המכונות הזו, מומלץ להשתמש ב-hyperdisk-balanced. למידע נוסף על סוגי הדיסקים שנתמכים בסוג המכונה שלכם, קראו את המאמר מכונות GPU במשפחת מכונות שעברו אופטימיזציה למאיצים במסמכי התיעוד של Compute Engine.
      • ‫NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
      • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות בכרטיסי רשת של gVNIC.
      • ‫REGION: האזור של רשת המשנה.
      • ‫RESERVATION: שם ההזמנה או בלוק ספציפי בתוך ההזמנה. כדי לראות את שם ההזמנה או את הבלוקים הזמינים, עיינו במאמר הצגת הקיבולת השמורה. בהתאם לדרישות שלכם לגבי מיקום המכונה, בוחרים באחת מהאפשרויות הבאות:
        • כדי ליצור מופעים בכמה בלוקים או בבלוק אחד:

          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

          בנוסף, לבלוק יחיד, צריך להחיל מדיניות למיקום קומפקטי שמציינת מיקום משותף של בלוק (maxDistance=2) . לאחר מכן, Compute Engine מחיל את המדיניות על ההזמנה ויוצר מכונות באותו בלוק.

        • כדי ליצור מכונות בבלוק ספציפי:

          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    2. אופציונלי: אם בחרתם להשתמש במדיניות למיקום קומפקטי, הוסיפו את שדה המשנה instanceProperties לגוף הבקשה:

          "resourcePolicies": [
            "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
          ]
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫PROJECT_ID: מזהה הפרויקט של המדיניות למיקום קומפקטי.
      • ‫REGION: האזור של המדיניות למיקום קומפקטי.
      • ‫POLICY_NAME: השם של המדיניות למיקום קומפקטי.
    3. שולחים את הבקשה.

    התחלה גמישה (Flex-start)

    לפני ששולחים את הבקשה, צריך לעיין בכל השלבים הבאים כדי להחליט אם לכלול שדות נוספים.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
    {
      "name": "INSTANCE_TEMPLATE_NAME",
      "properties": {
        "machineType": "MACHINE_TYPE",
        "disks": [
          {
            "boot": true,
            "initializeParams": {
              "diskSizeGb": "DISK_SIZE",
              "diskType": "DISK_TYPE",
              "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode": "READ_WRITE",
            "type": "PERSISTENT"
          }
        ],
        "serviceAccounts": [
          {
            "email": "default",
            "scopes": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "networkInterfaces": [
          {
            "accessConfigs": [
              {
                "name": "external-nat",
                "type": "ONE_TO_ONE_NAT"
              }
            ],
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
          }
        ],
        "scheduling": {
            "instanceTerminationAction": "DELETE",
            "maxRunDuration": {
              "seconds": RUN_DURATION
            },
            "onHostMaintenance": "TERMINATE",
            "provisioningModel": "FLEX_START"
          }
    
      }
    }
    

    כך עושים את זה:

    1. מחליפים את מה שכתוב בשדות הבאים:

      • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.
      • ‫MACHINE_TYPE: סוג המכונה שמשמשת למכונה של A3 Edge. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
      • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות בסדרת המכונות A3 Edge, מומלץ מאוד להשתמש בקובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים.
      • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. לדוגמה, השתמשו ב-cos-cloud בשביל קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
      • ‫REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע על אזורים, קראו את המאמר זמינות GPU לפי אזורים ותחומים.
      • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
      • ‫DISK_TYPE: סוג דיסק האתחול. לסדרת המכונות הזו, מומלץ להשתמש ב-hyperdisk-balanced. למידע נוסף על סוגי הדיסקים שנתמכים בסוג המכונה שלכם, קראו את המאמר מכונות GPU במשפחת מכונות שעברו אופטימיזציה למאיצים במסמכי התיעוד של Compute Engine.
      • ‫NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
      • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות בכרטיסי רשת של gVNIC.
      • ‫REGION: האזור של רשת המשנה.
      • ‫RUN_DURATION: משך הזמן, בשניות, שבו רוצים שהמכונות הווירטואליות המבוקשות יפעלו. הערך צריך להיות בין 600, שהם 600 שניות (10 דקות), לבין 604800, שהם 604,800 שניות (שבעה ימים).
    2. שולחים את הבקשה.

    כרטיס Spot

    לפני ששולחים את הבקשה, צריך לעיין בכל השלבים הבאים כדי להחליט אם לכלול שדות נוספים.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
    {
      "name": "INSTANCE_TEMPLATE_NAME",
      "properties": {
        "machineType": "MACHINE_TYPE",
        "disks": [
          {
            "boot": true,
            "initializeParams": {
              "diskSizeGb": "DISK_SIZE",
              "diskType": "DISK_TYPE",
              "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode": "READ_WRITE",
            "type": "PERSISTENT"
          }
        ],
        "serviceAccounts": [
          {
            "email": "default",
            "scopes": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "networkInterfaces": [
          {
            "accessConfigs": [
              {
                "name": "external-nat",
                "type": "ONE_TO_ONE_NAT"
              }
            ],
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
          },
          {
            "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
            "nicType": "GVNIC",
            "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
          }
        ],
        "scheduling":
        {
          "provisioningModel": "SPOT",
          "instanceTerminationAction": "TERMINATION_ACTION",
          "onHostMaintenance": "TERMINATE",
          "automaticRestart": false
        }
      }
    }
    

    כך עושים את זה:

    1. מחליפים את מה שכתוב בשדות הבאים:

      • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.
      • ‫MACHINE_TYPE: סוג המכונה שמשמשת למכונה של A3 Edge. למידע נוסף, קראו את המאמר סוגי מכונות GPU במסמכי התיעוד של Compute Engine.
      • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות בסדרת המכונות A3 Edge, מומלץ מאוד להשתמש בקובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך, ולהשבית את העדכונים האוטומטיים.
      • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. לדוגמה, השתמשו ב-cos-cloud בשביל קובץ האימג' של מערכת ההפעלה שמותאמת לקונטיינרים בגרסה cos-121-lts ואילך.
      • ‫REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע על אזורים, קראו את המאמר זמינות GPU לפי אזורים ותחומים.
      • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
      • ‫DISK_TYPE: סוג דיסק האתחול. לסדרת המכונות הזו, מומלץ להשתמש ב-hyperdisk-balanced. למידע נוסף על סוגי הדיסקים שנתמכים בסוג המכונה שלכם, קראו את המאמר מכונות GPU במשפחת מכונות שעברו אופטימיזציה למאיצים במסמכי התיעוד של Compute Engine.
      • ‫NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
      • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות בכרטיסי רשת של gVNIC.
      • ‫REGION: האזור של רשת המשנה.
      • ‫TERMINATION_ACTION: הפעולה שצריך לבצע כש-Compute Engine מפקיע את המכונה, STOP (ברירת המחדל) או DELETE.

    2. אופציונלי: אם בחרתם להשתמש במדיניות למיקום קומפקטי, הוסיפו את שדה המשנה instanceProperties לגוף הבקשה:

          "resourcePolicies": [
            "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
          ]
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫PROJECT_ID: מזהה הפרויקט של המדיניות למיקום קומפקטי.
      • ‫REGION: האזור של המדיניות למיקום קומפקטי.
      • ‫POLICY_NAME: השם של המדיניות למיקום קומפקטי.
    3. שולחים את הבקשה.

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

    יצירת MIG

    אחרי שמשלימים את כל השלבים הקודמים, יוצרים MIG בהתאם לתרחיש שלכם, באופן הבא:

    תרחיש שיטה ליצירת קבוצת MIG ומכונות וירטואליות בתוכה דוגמה
    יש לכם כמה משימות או משימות מקבילות שיכולות להתחיל עם מספר כלשהו של מכונות וירטואליות. יוצרים קבוצת MIG ומשתמשים בגודל היעד כדי לציין את מספר המכונות הווירטואליות שרוצים בקבוצה.

    איך יוצרים MIG עם גודל יעד

    משימות היקש של ML
    יש לכם משימה שצריך להפיץ למספר מדויק של מכונות וירטואליות. יוצרים קבוצת MIG בלי מכונות וירטואליות, ואז יוצרים בקשה לשינוי כמות בקבוצת ה-MIG. הבקשה לשינוי כמות עוזרת לכם לקבל את כל המכונות הווירטואליות בבת אחת.

    איך יוצרים קבוצת MIG ובקשה לשינוי כמות

    משימות מבוזרות של אימון וכוונון מודלים של למידת מכונה

    יצירת קבוצת MIG עם גודל יעד

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

    כדי ליצור קבוצת MIG עם גודל יעד, בוחרים באחת מהאפשרויות הבאות:

    gcloud

    כדי ליצור קבוצת MIG עם גודל יעד מסוים, משתמשים בפקודה instance-groups managed create.

    כדי ליצור קבוצת MIG אזורית או קבוצת MIG של אזור, מבצעים את הפעולות הבאות:

    • כדי ליצור קבוצת MIG אזורית, משתמשים בפקודה הבאה:
      gcloud compute instance-groups managed create MIG_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=TARGET_SIZE \
        --zone=ZONE
      
    • כדי ליצור קבוצת MIG אזורית, משתמשים בפקודה הבאה:
      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=TARGET_SIZE \
          --region=REGION
      
    מחליפים את הערכים הבאים:
    • ‫MIG_NAME: שם ה-MIG.
    • ‫INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שבה רוצים להשתמש כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
      • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • לתבנית גלובלית של הגדרות מכונה: INSTANCE_TEMPLATE_ID
    • ‫TARGET_SIZE: מספר המכונות שרוצים שיהיו בקבוצת המכונות המנוהלות.
    • ‫ZONE: האזור שבו רוצים ליצור את ה-MIG.
    • ‫REGION: האזור שבו רוצים ליצור את ה-MIG. בקבוצת MIG אזורית, במקום אזור, אפשר לציין את האזורים באותו אזור באמצעות הדגל --zones.

    REST

    כדי ליצור קבוצת MIG עם גודל יעד מסוים, שולחים בקשת POST.

    כדי ליצור קבוצת MIG אזורית או קבוצת MIG של אזור, מבצעים את הפעולות הבאות:

    • כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ instanceGroupManagers.insert.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": TARGET_SIZE
      }
      
    • כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ regionInstanceGroupManagers.insert.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
        {
          "name": "MIG_NAME",
          "instanceTemplate": "INSTANCE_TEMPLATE_URL",
          "targetSize": TARGET_SIZE
        }
      
    מחליפים את הערכים הבאים:
    • ‫PROJECT_ID: מזהה הפרויקט.
    • ‫ZONE: האזור שבו רוצים ליצור את ה-MIG.
    • ‫REGION: האזור שבו רוצים ליצור את ה-MIG.
    • ‫INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שבה רוצים להשתמש כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
      • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • לתבנית גלובלית של הגדרות מכונה: INSTANCE_TEMPLATE_ID
    • ‫MIG_NAME: שם ה-MIG.
    • ‫TARGET_SIZE: מספר המכונות שרוצים שיהיו ב-MIG.

    יצירת קבוצת MIG ובקשה לשינוי כמות

    אם אתם צריכים כמה מכונות וירטואליות בבת אחת כדי להתחיל משימה, צרו קבוצת מכונות מנוהלת (MIG) וצרו בקשה לשינוי כמות בקבוצת המכונות המנוהלת, כמו שמתואר בקטע הזה.

    כדי ליצור בקשה לשינוי כמות ב-MIG, בוחרים באחת מהאפשרויות הבאות:

    gcloud

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

    הזמנה

    יוצרים קבוצת MIG אזורית או תחומית ובקשה לשינוי כמות באופן הבא:

    התחלה גמישה (Flex-start)

    יוצרים קבוצת MIG אזורית או תחומית ובקשה לשינוי כמות באופן הבא:

    כרטיס Spot

    יוצרים קבוצת MIG אזורית או תחומית ובקשה לשינוי כמות באופן הבא:

    מחליפים את הערכים בשדות הבאים:
    • ‫MIG_NAME: שם ה-MIG.
    • ‫INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שבה רוצים להשתמש כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
      • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • לתבנית גלובלית של הגדרות מכונה: INSTANCE_TEMPLATE_ID
    • ‫ZONE: האזור שבו רוצים ליצור את ה-MIG. גם בקבוצת MIG אזורית צריך לציין אזור. האזור הזה חייב להיות האזור שמכיל את הפרופיל של רשת ה-VPC, ואזור שבו סוג המכונה זמין. מידע נוסף מופיע בקטע מגבלות.
    • ‫RESIZE_REQUEST_NAME: השם של הבקשה לשינוי הגודל, שחייב להיות ייחודי בתוך קבוצת ה-MIG שצוינה. אחרת, הבקשה לשינוי הגודל תיכשל.
    • ‫COUNT: מספר המכונות שרוצים להוסיף ל-MIG בבת אחת.
    • ‫REGION: האזור שבו רוצים ליצור את ה-MIG.

    יצירת בקשה לשינוי כמות על ידי ציון רשימה של שמות של מכונות וירטואליות

    אם עומס העבודה דורש שמות ספציפיים של מכונות וירטואליות, צריך לציין רשימה של שמות כדי ליצור את המכונות הווירטואליות. מספר השמות שתציינו קובע את מספר המכונות הווירטואליות שקבוצת ה-MIG תיצור בבת אחת.

    כדי ליצור בקשה לשינוי כמות עם שמות ספציפיים של מכונות וירטואליות ב-MIG, משתמשים בפקודה gcloud compute instance-groups managed resize-requests create בגרסת בטא עם הדגל --instances:

    • ב-MIG אזורי, מריצים את הפקודה הבאה:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --instances=INSTANCE_NAMES \
          --zone=ZONE
      
    • ב-MIG אזורי, מריצים את הפקודה הבאה:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --instances=INSTANCE_NAMES \
          --region=REGION
      
    מחליפים את INSTANCE_NAMES ברשימה מופרדת בפסיקים של שמות המכונות הווירטואליות. לדוגמה, instance-1,instance-2,instance-3.

    REST

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

    הזמנה

    יוצרים קבוצת MIG אזורית או תחומית ובקשה לשינוי כמות באופן הבא:

    • כדי ליצור קבוצת MIG אזורית ובקשה לשינוי כמות:
      1. כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ instanceGroupManagers.insert, באופן הבא:
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "targetSize": 0
        }
        
      2. כדי ליצור בקשה לשינוי כמות ב-MIG של אזור, שולחים בקשת POST ל-method‏ instanceGroupManagerResizeRequests.insert באופן הבא: בבקשה הזו מציינים את מספר המכונות הווירטואליות שרוצים ליצור. אם עומס העבודה דורש שמות ספציפיים של מכונות וירטואליות, צרו בקשה לשינוי כמות וציינו רשימה של שמות של מכונות וירטואליות.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          "resizeBy": COUNT
        }
        
    • כדי ליצור קבוצת MIG אזורית ובקשה לשינוי כמות:
      1. כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ regionInstanceGroupManagers.insert, כמו שמוסבר בהמשך.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "targetSize": 0,
          "distributionPolicy": {
            "targetShape": "ANY_SINGLE_ZONE",
            "zones": [
              {
                "zone": "projects/PROJECT_ID/zones/ZONE"
              }
            ]
          },
          "updatePolicy": {
            "instanceRedistributionType": "NONE"
          }
        }
        
      2. שולחים בקשה לשינוי כמות ב-MIG האזורי באמצעות בקשת POST ל-method‏ regionInstanceGroupManagerResizeRequests.insert, באופן הבא: בבקשה הזו מציינים את מספר המכונות הווירטואליות שרוצים ליצור. אם עומס העבודה דורש שמות ספציפיים של מכונות וירטואליות, צרו בקשה לשינוי כמות וציינו רשימה של שמות של מכונות וירטואליות.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          "resizeBy": COUNT
        }
        

    התחלה גמישה (Flex-start)

    יוצרים קבוצת MIG אזורית או תחומית ובקשה לשינוי כמות באופן הבא:

    • כדי ליצור קבוצת MIG אזורית ובקשה לשינוי כמות:
      1. כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ instanceGroupManagers.insert, באופן הבא:
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "targetSize": 0,
          "instanceLifecyclePolicy": {
            "defaultActionOnFailure": "DO_NOTHING"
          }
        }
        
      2. כדי ליצור בקשה לשינוי כמות ב-MIG של אזור, שולחים בקשת POST ל-method‏ instanceGroupManagerResizeRequests.insert באופן הבא: בבקשה הזו מציינים את מספר המכונות הווירטואליות שרוצים ליצור. אם עומס העבודה דורש שמות ספציפיים של מכונות וירטואליות, צרו בקשה לשינוי כמות וציינו רשימה של שמות של מכונות וירטואליות.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          "resizeBy": COUNT
        }
        
    • כדי ליצור קבוצת MIG אזורית ובקשה לשינוי כמות:
      1. כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ regionInstanceGroupManagers.insert, כמו שמוסבר בהמשך.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "targetSize": 0,
          "distributionPolicy": {
            "targetShape": "ANY_SINGLE_ZONE",
            "zones": [
              {
                "zone": "projects/PROJECT_ID/zones/ZONE"
              }
            ]
          },
          "updatePolicy": {
            "instanceRedistributionType": "NONE"
          },
          "instanceLifecyclePolicy": {
            "defaultActionOnFailure": "DO_NOTHING"
          }
        }
        
      2. שולחים בקשה לשינוי כמות ב-MIG האזורי באמצעות בקשת POST ל-method‏ regionInstanceGroupManagerResizeRequests.insert, באופן הבא: בבקשה הזו מציינים את מספר המכונות הווירטואליות שרוצים ליצור. אם עומס העבודה דורש שמות ספציפיים של מכונות וירטואליות, צרו בקשה לשינוי כמות וציינו רשימה של שמות של מכונות וירטואליות.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          "resizeBy": COUNT
        }
        

    כרטיס Spot

    יוצרים קבוצת MIG אזורית או תחומית ובקשה לשינוי כמות באופן הבא:

    • כדי ליצור קבוצת MIG אזורית ובקשה לשינוי כמות:
      1. כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ instanceGroupManagers.insert, באופן הבא:
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "targetSize": 0
        }
        
      2. כדי ליצור בקשה לשינוי כמות ב-MIG של אזור, שולחים בקשת POST ל-method‏ instanceGroupManagerResizeRequests.insert באופן הבא: בבקשה הזו מציינים את מספר המכונות הווירטואליות שרוצים ליצור. אם עומס העבודה דורש שמות ספציפיים של מכונות וירטואליות, צרו בקשה לשינוי כמות וציינו רשימה של שמות של מכונות וירטואליות.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          "resizeBy": COUNT
        }
        
    • כדי ליצור קבוצת MIG אזורית ובקשה לשינוי כמות:
      1. כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ regionInstanceGroupManagers.insert, כמו שמוסבר בהמשך.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "targetSize": 0,
          "distributionPolicy": {
            "targetShape": "ANY_SINGLE_ZONE",
            "zones": [
              {
                "zone": "projects/PROJECT_ID/zones/ZONE"
              }
            ]
          },
          "updatePolicy": {
            "instanceRedistributionType": "NONE"
          }
        }
        
      2. שולחים בקשה לשינוי כמות ב-MIG האזורי באמצעות בקשת POST ל-method‏ regionInstanceGroupManagerResizeRequests.insert, באופן הבא: בבקשה הזו מציינים את מספר המכונות הווירטואליות שרוצים ליצור. אם עומס העבודה דורש שמות ספציפיים של מכונות וירטואליות, צרו בקשה לשינוי כמות וציינו רשימה של שמות של מכונות וירטואליות.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          "resizeBy": COUNT
        }
        
    מחליפים את הערכים בשדות הבאים:
    • ‫PROJECT_ID: מזהה הפרויקט.
    • ‫ZONE: האזור שבו רוצים ליצור את ה-MIG. האזור הזה חייב להיות זהה לאזור שמכיל את הפרופיל של רשת ה-VPC, וצריך להיות אזור שבו סוג המכונה שבחרתם זמין. מידע נוסף מופיע בקטע מגבלות.
    • ‫REGION: האזור שבו רוצים ליצור את ה-MIG. האזור הזה חייב להיות אותו אזור שמכיל את הפרופיל של רשת ה-VPC, וחייב להכיל אזור שבו סוג המכונה שבחרתם זמין. מידע נוסף מופיע בקטע מגבלות.
    • ‫INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שבה רוצים להשתמש כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
      • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • לתבנית גלובלית של הגדרות מכונה: INSTANCE_TEMPLATE_ID
    • ‫MIG_NAME: שם ה-MIG.
    • ‫RESIZE_REQUEST_NAME: השם של הבקשה לשינוי הגודל, שחייב להיות ייחודי בתוך קבוצת ה-MIG שצוינה. אחרת, הבקשה לשינוי הגודל תיכשל.
    • ‫COUNT: מספר המכונות שרוצים להוסיף ל-MIG בבת אחת

    יצירת בקשה לשינוי כמות על ידי ציון רשימה של שמות של מכונות וירטואליות

    אם עומס העבודה דורש שמות ספציפיים של מכונות וירטואליות, צריך לציין רשימה של שמות כדי ליצור את המכונות הווירטואליות. מספר השמות שתציינו קובע את מספר המכונות הווירטואליות שקבוצת ה-MIG תיצור בבת אחת.

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

    לדוגמה, כדי לציין שני שמות של מכונות וירטואליות, צריך לכלול את הפרטים הבאים בגוף הבקשה:

    {
      "name": "RESIZE_REQUEST_NAME",
      "instances": [
        {
          "name": "INSTANCE_NAME_1"
        },
        {
          "name": "INSTANCE_NAME_2"
        }
      ]
    }
    

    מחליפים את INSTANCE_NAME_1, INSTANCE_NAME_2 בשמות של המכונות הווירטואליות.

    מה השלב הבא?