יצירת קבוצת MIG עם חלקי TPU של מארח יחיד

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

אפשר גם ליצור פרוסת TPU עם מארח יחיד כמופע TPU עצמאי. מידע נוסף זמין במאמר יצירת מכונת TPU וירטואלית.

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

  • כדאי לעיין במגבלות על יצירת קבוצות של מכונות מופעלות (MIG) עם מופעי TPU.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

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

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

דרישות מוקדמות

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

  1. בחירת גרסת ה-TPU: בוחרים את גרסת ה-TPU שמתאימה לעומס העבודה. במאמר גרסאות מומלצות של TPU לפי סוגי עומסי עבודה מפורטת רשימה של גרסאות TPU לפי סוג עומס העבודה.

  2. מוודאים שה-TPU זמין במיקום המועדף: מכשירי TPU זמינים באזורים ספציפיים של Cloud de Confiance by S3NS Google Cloud. כדי להשתמש בגרסת TPU, צריך לוודא שהיא זמינה באזור המועדף. כאן מפורטת רשימת המיקומים של TPU.

  3. מוודאים שיש לפרויקט מכסת TPU מספקת: אם יוצרים פלח TPU של מארח יחיד עם מכונות וירטואליות לפי דרישה או מכונות וירטואליות מסוג Spot, צריך לוודא שיש מכסת TPU מספקת באזור שבו רוצים להשתמש. כדי ליצור פרוסת TPU במארח יחיד שצורכת מקום שמור ב-TPU, לא נדרשת מכסת TPU, כי המכסה משמשת ליצירת המקום השמור. רשימה של שמות מכסות TPU מופיעה במאמר מכסת TPU. במאמר איך רואים ומנהלים את המכסות מוסבר איך לראות את המכסה.

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

  5. בחירת טופולוגיה: בוחרים טופולוגיה שנתמכת בגרסת ה-TPU שנבחרה. במאמר בנושא טופולוגיית TPU מפורטת רשימה של הטופולוגיות שזמינות לכל גרסת TPU.

יצירת MIG עם כמה פרוסות TPU של מארח יחיד

כדי ליצור כמה מכונות וירטואליות עצמאיות של TPU ב-MIG:

  1. יוצרים תבנית של הגדרות מכונה.
  2. יוצרים את ה-MIG.

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

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

יצירת תבנית של הגדרות מכונה עבור TPU VM לפי דרישה

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

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE"
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU (לדוגמה, ct6e-standard-8t).
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

יצירת תבנית של הגדרות מכונה עבור VM במודל Spot של TPU

הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה Spot:

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=STOP \
    --provisioning-model=SPOT \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "SPOT",
        "instanceTerminationAction": "STOP"
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU הווירטואלית (לדוגמה, ct6e-standard-8t).
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

יצירת תבנית של הגדרות מכונה למכונה וירטואלית שמשויכת למקום שמור של TPU

הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה reservation-bound:

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=DELETE \
    --reservation-affinity=specific \
    --provisioning-model=reservation-bound \
    --reservation=RESERVATION_NAME \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "RESERVATION_BOUND",
        "instanceTerminationAction": "DELETE"
      },
      "reservationAffinity": {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "compute.googleapis.com/reservation-name",
        "values": [
          "RESERVATION_NAME"
        ]
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
  • MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה, ct6e-standard-8t).
  • RESERVATION_NAME: השם של הזמנה ספציפית שרוצים להשתמש בה.
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

יצירת תבנית של מכונה וירטואלית עם TPU Flex-start

הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה Flex-start:

gcloud

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=DELETE \
    --provisioning-model=FLEX_START \
    --max-run-duration=DURATION \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "INSTANCE_TEMPLATE_NAME",
    "properties": {
      "machineType": "MACHINE_TYPE",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START",
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": "DURATION"
        }
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
  • MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה, ct6e-standard-8t).
  • DURATION: משך ההרצה המקסימלי של מכונת ה-TPU הווירטואלית. ב-REST, מציינים את הערך הזה כמחרוזת שמכילה את מספר השניות ואחריה האות s (לדוגמה, 3600s ל-1 שעה או 604800s ל-7 ימים).
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

יצירת קבוצת מופעים מנוהלת (MIG)

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

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --size=MIG_SIZE \
    --template=INSTANCE_TEMPLATE_URL \
    --zone=ZONE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": MIG_SIZE,
    "instanceTemplate": "INSTANCE_TEMPLATE_URL"
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • MIG_NAME: השם של קבוצת ה-MIG.
  • MIG_SIZE: הגודל של ה-MIG.
  • INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • לתבנית גלובלית של הגדרות מכונה: INSTANCE_TEMPLATE_ID
  • ZONE: האזור של ה-MIG.

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

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --size=MIG_SIZE \
    --template=INSTANCE_TEMPLATE_URL \
    --region=REGION \
    --target-distribution-shape=ANY_SINGLE_ZONE \
    --instance-redistribution-type=none

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": MIG_SIZE,
    "instanceTemplate": "INSTANCE_TEMPLATE_URL",
    "distributionPolicy": {
      "targetShape": "ANY_SINGLE_ZONE"
    },
    "updatePolicy": {
      "instanceRedistributionType": "NONE"
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • MIG_NAME: השם של קבוצת ה-MIG.
  • MIG_SIZE: מספר המכונות הווירטואליות ב-MIG.
  • INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • לתבנית גלובלית של הגדרות מכונה: INSTANCE_TEMPLATE_ID
  • ZONE: האזור שבו רוצים להקצות את ה-MIG.
  • REGION: האזור שבו רוצים להקצות את ה-MIG.

יצירת מכונות וירטואליות עם שמות בהתאמה אישית ב-MIG

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

gcloud

יוצרים מכונה וירטואלית עם שם מותאם אישית באמצעות הפקודה create-instance ומציינים את הדגל --instance. כדי ליצור כמה מכונות וירטואליות, חוזרים על הפקודה לכל מכונה וירטואלית. אחרת, השתמשו בשיטת API בארכיטקטורת REST כדי לציין כמה מכונות וירטואליות בבקשה אחת.

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

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --zone=ZONE \
        --instance=INSTANCE_NAME
    
  • ל-MIG אזורי, משתמשים בפקודה הבאה:

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --region=REGION \
        --instance=INSTANCE_NAME
    

מחליפים את ה-placeholders הבאים:

  • MIG_NAME: השם של קבוצת ה-MIG.
  • ZONE: האזור של ה-MIG.
  • REGION: האזור של ה-MIG.
  • INSTANCE_NAME: השם של המכונה הווירטואלית שרוצים להוסיף לקבוצת ה-MIG שצוינה.

REST

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

  • בשביל MIG אזורי, משתמשים ב-instanceGroupManagers.createInstances.

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances
     {
       "instances": [
         {
           "name": "INSTANCE_NAME_1"
         },
         {
           "name": "INSTANCE_NAME_2"
         },
         ...
       ]
     }
     

  • ל-MIG אזורי, משתמשים ב-regionInstanceGroupManagers.createInstances.

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances
     {
       "instances": [
         {
           "name": "INSTANCE_NAME_1"
         },
         {
           "name": "INSTANCE_NAME_2"
         },
         ...
       ]
     }
     

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו קיימת קבוצת ה-MIG.
  • ZONE: האזור של ה-MIG.
  • REGION: האזור של ה-MIG.
  • INSTANCE_NAME_1,2,..: השמות של המכונות הווירטואליות שרוצים להוסיף לקבוצת ה-MIG שצוינה.

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