יצירת קבוצת MIG עם סוגי מכונות H4D והפעלה גמישה

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

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

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

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

מטרות

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

עלויות

במדריך הזה נעשה שימוש ברכיבים של Google Cloudשחלים עליהם חיובים, כולל:

כדי ליצור הערכת עלויות בהתאם לשימוש החזוי, אתם יכולים להשתמש במחשבון עלויות.

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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים Google Cloud פרויקט.

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

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  6. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  7. מפעילים את ממשק ה-API הנדרש, אם הוא עדיין לא מופעל:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable compute.googleapis.com
  8. התקינו את ה-CLI של Google Cloud.

  9. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  10. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  11. יוצרים או בוחרים Google Cloud פרויקט.

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

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  12. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  13. מפעילים את ממשק ה-API הנדרש, אם הוא עדיין לא מופעל:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable compute.googleapis.com
  14. מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

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

    • ‫PROJECT_ID: מזהה הפרויקט.
    • ‫USER_IDENTIFIER: המזהה של חשבון המשתמש . לדוגמה, myemail@example.com.
    • ‫ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.

אופציונלי: שליחת בקשה למכסה של מכונות וירטואליות שניתן להפסיק

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

המכסה יכול להיות מכסה רגיל או מכסה שניתן לקטוע כשמשתמשים ב-Flex-start.

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

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

סוגי המכסות שנדרשות

כדי להשתמש בקבוצות של מכונות וירטואליות, צריך להקצות מכסות לכל המשאבים שבהם הקבוצה משתמשת (לדוגמה, מכסת CPU) ומכסה למשאב הקבוצה עצמו. יכול להיות שייעשה שימוש בסוגי המכסות הבאים עבור מכונות H4D, בהתאם לסוג המכונה שבו נעשה שימוש במכונות:

משאב מכסה רגילה מכסה של מכונות שאפשר להפסיק לפני הזמן
מעבדים (CPU) CPUS_PER_VM_FAMILY Preemptible CPUs
אחסון SSD מקומי Local SSD per machine family (GB) Preemptible Local SSDs (GB)

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

  • קבוצת מופעי מכונה מנוהלים (MIG) בתחום מוגדר (תחום יחיד): Instance group managers ו-Instance groups
  • ‫Google Cloud Hyperdisk:

    • Hyperdisk Balanced Capacity (GB)
    • Hyperdisk Balanced Throughput (MB/s)
    • Hyperdisk Balanced IOPS

אופציונלי: יצירת רשתות VPC

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

אפשר להגדיר את מופעי H4D כך שישתמשו ב-Cloud RDMA. ‫Cloud RDMA מאפשר יכולות העברת הודעות אמינות עם זמן אחזור נמוך באמצעות מנהל התקן של רשת IRDMA שתומך בגישה ישירה מרחוק לזיכרון (RDMA) בין מכונות וירטואליות של Compute Engine.

במדריך הזה:

  • כדי להגדיר את מופעי H4D לשימוש ב-Cloud RDMA, צריך לבצע את השלבים שבקטע הזה.
  • אם אתם לא רוצים להשתמש ב-Cloud RDMA, אתם יכולים לדלג על הקטע הזה ולהשתמש ברשת ברירת המחדל במקום זאת.

כדי להגדיר את רשתות ה-VPC של Falcon לשימוש עם המקרים שלכם, אתם יכולים לפעול לפי ההוראות שמתועדות או להשתמש בסקריפט שסופק.

מדריכים להוראות

כדי ליצור את הרשתות, אפשר לפעול לפי ההוראות הבאות:

Script

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

  1. אופציונלי: לפני שמריצים את הסקריפט, מציגים את הפרופילים של רשת ה-VPC של Falcon כדי לוודא שיש פרופיל זמין.
      gcloud compute network-profiles list
      
  2. מעתיקים את הקוד הבא ומפעילים פתרונות חכמים אותו בחלון מעטפת של Linux.

      #!/bin/bash
      # Set the number of GVNIC interfaces to create. You can create up to 9.
      NUM_GVNIC=NUMBER_OF_GVNIC
    
      # Create regular VPC networks and subnets for the GVNIC interfaces
        for N in $(seq 0 $(($NUM_GVNIC - 1))); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
              --subnet-mode=custom
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --region=REGION \
              --range=10.$N.0.0/16
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --action=ALLOW \
              --rules=tcp:0-65535,udp:0-65535,icmp \
              --source-ranges=10.0.0.0/8
      done
    
      # Create SSH firewall rules
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
      # Optional: Create a firewall rule for the external IP address for the
      #  first GVNIC network interface
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
      # Create a Falcon VPC network for the Cloud RDMA network interface
      gcloud compute networks create RDMA_NAME_PREFIX-irdma \
          --network-profile=ZONE-vpc-falcon \
          --subnet-mode custom
    
      # Create a subnet in the Falcon VPC network
      gcloud compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
          --network=RDMA_NAME_PREFIX-irdma \
          --region=REGION \
          --range=10.2.0.0/16  # offset to avoid overlap with GVNIC subnet ranges
      

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

    • ‫NUMBER_OF_GVNIC: מספר ממשקי GVNIC שרוצים ליצור. צריך לציין מספר בין 1 ל-9.
    • ‫GVNIC_NAME_PREFIX: תחילית השם לשימוש ברשת VPC רגילה וברשת משנה שמשתמשת בסוג כרטיס רשת GVNIC.
    • ‫REGION: האזור שבו רוצים ליצור את הרשתות. הערך הזה צריך להתאים לאזור שצוין בדגל --network-profile כשיוצרים את רשת ה-VPC של Falcon. לדוגמה, אם מציינים את האזור europe-west4-b, האזור הוא europe-west4.
    • ‫IP_RANGE: טווח כתובות ה-IP מחוץ לרשת ה-VPC שמשמשות לכללי חומת האש של SSH. השיטה המומלצת היא לציין את טווחי כתובות ה-IP הספציפיים שמהם אתם רוצים לאפשר גישה, ולא את כל המקורות של IPv4 או IPv6. אל תשתמשו ב-0.0.0.0/0 או ב-::/0 כטווח מקור, כי זה מאפשר תנועה מכל מקורות IPv4 או IPv6, כולל מקורות מחוץ ל- Google Cloud.
    • ‫RDMA_NAME_PREFIX: תחילית השם שתשמש לרשת ה-VPC ולתת-הרשת שמשתמשות בסוג כרטיס ה-NIC של IRDMA.
    • ‫ZONE: האזור שבו רוצים ליצור את הרשתות ואת מכונות ה-Compute. אפשר להשתמש ב-us-central1-a או ב-europe-west4-b.
  3. אופציונלי: כדי לוודא שהמשאבים של רשת ה-VPC נוצרו בהצלחה, בודקים את הגדרות הרשת במסוף Google Cloud :

    1. נכנסים לדף VPC networks במסוף Google Cloud .

      מעבר לרשתות VPC

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

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

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

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

gcloud

כדי ליצור מדיניות של עומס עבודה, משתמשים בפקודה gcloud compute resource-policies create workload-policy.

  • כדי להציב מכונות וירטואליות (VM) בצורה הכי טובה שאפשר, מציינים את הדגל --type=high-throughput בפקודה:

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
        --type=high-throughput \
        --region=REGION
    
  • כדי להגדיר מיקום משותף קפדני של מכונות וירטואליות, מציינים את הדגלים --max-topology-distance ו---type=high-throughput בפקודה:

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
        --type=high-throughput \
        --max-topology-distance=TOPOLOGY_DISTANCE \
        --region=REGION
    

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

  • ‫WORKLOAD_POLICY_NAME: השם של מדיניות עומסי העבודה.
  • ‫TOPOLOGY_DISTANCE: המרחק המקסימלי בטופולוגיה. מציינים אחד מהערכים הבאים:
    • כדי למקם מכונות וירטואליות באותו תת-בלוק: SUBBLOCK
    • כדי למקם מכונות וירטואליות באותו בלוק: BLOCK
    • כדי למקם מכונות וירטואליות באותו אשכול: CLUSTER
    הערה: הגדרה של מרחק מקסימלי קצר יותר יכולה להקטין את הסבירות לזמינות של מכונה וירטואלית. מידע נוסף זמין במאמר בנושא מאפיין המרחק המקסימלי בטופולוגיה.
  • ‫REGION: האזור שבו רוצים ליצור את מדיניות עומס העבודה. מציינים אזור שבו רוצים ליצור את ה-MIG, וסוג מכונה שרוצים להשתמש בו וזמין. מידע על אזורים ותחומים זמין במאמר אזורים ותחומים זמינים.

REST

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

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

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
      {
        "name": "WORKLOAD_POLICY_NAME"
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT"
        }
      }
    
  • כדי להגדיר מיקום משותף קפדני של מכונות וירטואליות, מציינים את השדות maxTopologyDistance ו-type בבקשה באופן הבא:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
      {
        "name": "WORKLOAD_POLICY_NAME"
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT",
          "maxTopologyDistance": "TOPOLOGY_DISTANCE"
        }
      }
    

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

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫REGION: האזור שבו רוצים ליצור את מדיניות עומס העבודה. מציינים אזור שבו רוצים ליצור את קבוצת ה-MIG ואת סוג המכונה שרוצים להשתמש בה. מידע על אזורים ותחומים זמין במאמר אזורים ותחומים זמינים.
  • ‫WORKLOAD_POLICY_NAME: השם של מדיניות עומסי העבודה.
  • ‫TOPOLOGY_DISTANCE: המרחק המקסימלי בטופולוגיה. מציינים אחד מהערכים הבאים:
    • כדי למקם מכונות וירטואליות באותו תת-בלוק: SUBBLOCK
    • כדי למקם מכונות וירטואליות באותו בלוק: BLOCK
    • כדי למקם מכונות וירטואליות באותו אשכול: CLUSTER
    הערה: הגדרה של מרחק מקסימלי קצר יותר עשויה להקטין את הסבירות לזמינות של מכונה וירטואלית. מידע נוסף זמין במאמר בנושא מאפיין המרחק המקסימלי בטופולוגיה.

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

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

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

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=hyperdisk-balanced \
    --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, \
      stack-type=STACK_TYPE, \
      address=EXTERNAL_IPV4_ADDRESS \
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-1, \
      subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
--network-interface=nic-type=IRDMA, \
      network=RDMA_NAME_PREFIX-irdma, \
      subnet=RDMA_NAME_PREFIX-irdma-sub, \
      stack-type=IPV4_ONLY,no-address \
    
    --instance-termination-action=DELETE \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --provisioning-model=FLEX_START

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

  • ‫INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה.
  • ‫MACHINE_TYPE: סוג המכונה H4D שבה רוצים להשתמש עבור המופע.
  • ‫IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
  • ‫IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה.
  • ‫REGION: האזור שבו רוצים ליצור את תבנית של הגדרות מכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין.
  • ‫DISK_SIZE: גודל דיסק האתחול ב-GiB.
  • ‫GVNIC_NAME_PREFIX: תחילית השם שבה השתמשתם כשאתם יוצרים את רשתות ה-VPC הרגילות ואת רשתות המשנה לממשקי gVNIC.

    אם אתם משתמשים ברשת ברירת המחדל, צריך לכלול רק שדה --network-interface אחד עם השדה nic-type שמוגדר לערך GVNIC. בנוסף, צריך להשמיט את ההגדרות network ו-subnetwork בממשק הרשת הזה.

  • ‫STACK_TYPE: אופציונלי: סוג ה-stack לשימוש בממשק gVNIC. צריך לציין IPV4_ONLY או IPV4_IPV6. אם לא תציינו ערך, המערכת תשתמש בערך ברירת המחדל IPV4_ONLY.
  • ‫EXTERNAL_IPV4_ADDRESS: אופציונלי: כתובת IPv4 חיצונית סטטית לשימוש עם ממשק הרשת gVNIC. צריך לשריין כתובת IPv4 חיצונית מראש. מבצעים אחת מהפעולות הבאות:

    • מציינים כתובת IPv4 חוקית מתת-הרשת.
    • משתמשים בדגל no-address אם לא רוצים שלממשק הרשת תהיה כתובת IP חיצונית.
    • מציינים address='' אם רוצים שממשק הרשת יקבל כתובת IP חיצונית ארעית.

    כדי לציין כתובת IPv6 חיצונית לממשק הרשת של GVNIC, משתמשים בדגל --external-ipv6-address.

  • ‫RDMA_NAME_PREFIX: קידומת השם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק הרשת של IRDMA.

    אם אתם לא משתמשים ב-Cloud RDMA עם מכונות H4D, אל תציינו את השדה --network-interface לממשק IRDMA.

  • ‫RUN_DURATION: משך הזמן שבו רוצים שהמופעים המבוקשים יפעלו. צריך להזין את הערך כמספר הימים, השעות, הדקות או השניות, ואחריו את הערכים d, h, m ו-s בהתאמה. לדוגמה, מציינים 30m ל-30 דקות או 1d2h3m4s ליום אחד, שעתיים, שלוש דקות וארבע שניות. הערך צריך להיות בין 10 דקות לבין שבעה ימים.

REST

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "machineType":"MACHINE_TYPE",
    
        "networkInterfaces": [
        {
          "network": "GVNIC_NAME_PREFIX-net-0",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
          "accessConfigs": [
            {
                "type": "ONE_TO_ONE_NAT",
                "name": "External IP",
                "natIP": "EXTERNAL_IPV4_ADDRESS"
            }
          ],
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "GVNIC_NAME_PREFIX-net-1",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "RDMA_NAME_PREFIX-irdma",
          "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
          "stackType": "IPV4_ONLY",
          "nicType": "IRDMA",
      }
    ],
,
    "scheduling": {
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": RUN_DURATION
        },
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START"
      }

  }
}

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

  • ‫INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה.
  • ‫MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המכונה. מציינים סוג מכונה מסוג H4D. מידע נוסף זמין במאמר בנושא סוגי מכונות H4D.
  • ‫IMAGE_FAMILY: משפחת התמונות של תמונת מערכת ההפעלה שרוצים להשתמש בה. רשימה של מערכות הפעלה נתמכות מופיעה במאמר מערכות הפעלה נתמכות.
  • ‫IMAGE_PROJECT: מזהה הפרויקט של תמונת מערכת ההפעלה.
  • ‫REGION: האזור שבו רוצים ליצור את תבנית של הגדרות מכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בו זמין. מידע על אזורים זמין במאמר אזורים ותחומים.
  • ‫DISK_SIZE: גודל דיסק האתחול ב-GiB.
  • ‫GVNIC_NAME_PREFIX: תחילית השם שבה השתמשתם כשאתם יוצרים את רשתות ה-VPC הרגילות ואת רשתות המשנה לממשקי gVNIC.

    אם אתם משתמשים ברשת ברירת המחדל, צריך לכלול רק שדה --network-interface אחד עם השדה nic-type שמוגדר לערך GVNIC. בנוסף, צריך להשמיט את ההגדרות network ו-subnetwork בממשק הרשת הזה.

  • ‫EXTERNAL_IPV4_ADDRESS: אופציונלי: כתובת IPv4 חיצונית סטטית לשימוש עם ממשק הרשת gVNIC. צריך לשריין כתובת IPv4 חיצונית מראש.

    כדי לציין כתובת IPv6 חיצונית לממשק הרשת של GVNIC, משתמשים בדגל --external-ipv6-address.

  • ‫RDMA_NAME_PREFIX: קידומת השם שבה השתמשתם כשייצרתם את רשת ה-VPC ואת תת-הרשת לממשק הרשת של IRDMA.

    אם אתם לא משתמשים ב-Cloud RDMA עם מכונות H4D, אל תציינו את השדה --network-interface לממשק IRDMA.

  • ‫RUN_DURATION: משך הזמן, בשניות, שבו רוצים שהמופעים המבוקשים יפעלו. הערך צריך להיות בין 600, שהוא 600 שניות (10 דקות), לבין 604800, שהוא 604,800 שניות (שבעה ימים).

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

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

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

יצירת קבוצת ה-MIG

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

gcloud

כדי ליצור קבוצת MIG אזורית או אזורית:

  • כדי ליצור קבוצת MIG אזורית, משתמשים בפקודה instance-groups managed create באופן הבא.

        gcloud compute instance-groups managed create MIG_NAME \
            --template=INSTANCE_TEMPLATE_URL \
            --size=0 \
            --default-action-on-vm-failure=do-nothing \
            --workload-policy=WORKLOAD_POLICY_URL \
            --zone=ZONE
        
  • כדי ליצור קבוצת MIG אזורית, משתמשים בפקודה instance-groups managed create באופן הבא.

        gcloud compute instance-groups managed create MIG_NAME \
            --template=INSTANCE_TEMPLATE_URL \
            --size=0 \
            --default-action-on-vm-failure=do-nothing \
            --zones=ZONE \
            --target-distribution-shape=any-single-zone \
            --instance-redistribution-type=none
        

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

REST

כדי ליצור קבוצת 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": 0,
            "instanceLifecyclePolicy": {
                "defaultActionOnFailure": "DO_NOTHING"
            },
            "resourcePolicies": {
              "workloadPolicy": "WORKLOAD_POLICY_URL"
            }
          }
         
  • כדי ליצור קבוצת 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"
            },
            "resourcePolicies": {
              "workloadPolicy": "WORKLOAD_POLICY_URL"
            }
          }
         

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

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

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

gcloud

כדי ליצור בקשה לשינוי גודל:

  • כדי ליצור בקשה לשינוי גודל של קבוצת MIG אזורית, משתמשים בפקודה instance-groups managed resize-requests create באופן הבא:

        gcloud compute instance-groups managed resize-requests create MIG_NAME \
            --resize-request=RESIZE_REQUEST_NAME \
            POPULATION_METHOD \
            --zone=ZONE
        
  • כדי ליצור בקשה לשינוי גודל של קבוצת MIG אזורית, משתמשים בפקודה beta instance-groups managed resize-requests create באופן הבא:

          gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
              --resize-request=RESIZE_REQUEST_NAME \
              POPULATION_METHOD \
              --region=REGION
          

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

REST

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

  • כדי ליצור בקשה לשינוי גודל של קבוצת 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",
            POPULATION_METHOD
          }
          
  • כדי ליצור בקשה לשינוי גודל של קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ beta.regionInstanceGroupManagerResizeRequests.insert באופן הבא:
          POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
          {
            "name": "RESIZE_REQUEST_NAME",
            POPULATION_METHOD
          }
          

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

הסרת המשאבים

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

מחיקת פרויקט

כדי למחוק Google Cloud פרויקט:

gcloud projects delete PROJECT_ID

מחיקת המשאבים

  1. מחיקת בקשות לשינוי גודל ב-MIG

  2. מוחקים את קבוצת ה-MIG ואת המכונות.

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

    המסוף

    1. נכנסים לדף Disks במסוף Google Cloud .

    לפתיחת הדף Disks

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

    2. לוחצים על מחיקה ואז על מחיקה כדי לאשר.

    gcloud

    משתמשים בפקודה gcloud compute disks delete.

    gcloud compute disks delete DISK_NAME \
        --project PROJECT_ID --zone ZONE
    

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

    • ‫DISK_NAME : השם של הדיסק שרוצים למחוק
    • ‫PROJECT_ID: מזהה הפרויקט שמכיל את הדיסק
    • ‫ZONE: האזור של הדיסק

    REST

    משתמשים ב-‎disks.delete method כדי למחוק את הדיסקים.

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME 
    

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

    • ‫PROJECT_ID: מזהה הפרויקט שמכיל את הדיסק
    • ‫ZONE: האזור של הדיסק
    • ‫DISK_NAME : השם של הדיסק שרוצים למחוק
  4. מחיקת הערוצים או החבילות.

  5. מוחקים את תבנית המכונה.

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