הצגת המיקום הפיזי של מכונה של Compute Engine

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

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

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

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

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

מגבלות

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

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

הסבר על הטופולוגיה של מופעי מחשוב

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

‫Compute Engine חושף את שדות המשנה הבאים בשדה physicalHostTopology של כל מופע של מחשוב. ככל שיש יותר שדות משנה משותפים בין שני מופעי מחשוב פעילים, כך הם קרובים יותר זה לזה.

  • ‫Cluster (cluster): השם הגלובלי של האשכול שבו קיים מופע המחשוב. אשכול הוא קיבוץ לוגי ברמה גבוהה של כמה מארחים, שיכולים להתפרס על פני כמה בלוקים, שפועלים יחד כמאגר משאבים אחד.

  • חסימה (block): המזהה הספציפי לארגון של החסימה שבה קיים מופע המחשוב. בלוק הוא אוסף של כמה מארחים שמקובצים יחד.

  • ‫Sub-block (subBlock): המזהה הספציפי לארגון של הבלוק המשני שבו נמצא המכונה שלכם. בלוק משנה הוא חלוקת משנה פיזית בבלוק, שמקבצת מארחים בתוך מארז פיזי אחד.

  • ‫Host (host): המזהה הספציפי לארגון או לפרויקט של המארח שבו פועל מופע Compute. מזהה המארח משתנה באופן הבא:

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

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

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

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.

    gcloud

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

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

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

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

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

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

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

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

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

כדי לאמת את הטופולוגיה של מכונות ה-Compute, נדרשות ההרשאות הבאות:

  • כדי לראות את הפרטים של מכונה: compute.instances.get
  • כדי לראות רשימה של מכונות: compute.instances.list
  • כדי לחשוף את מזהה המארח כשיוצרים מכונת חישוב:
    • ‫compute.instances.create בפרויקט
    • כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM): compute.images.useReadOnly בקובץ אימג'
    • כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית: compute.snapshots.useReadOnly בקובץ ה-snapshot
    • כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית: compute.instanceTemplates.useReadOnly בתבנית של הגדרות המכונה
    • כדי להקצות רשת מדור קודם למכונה הווירטואלית: compute.networks.use בפרויקט
    • כדי לציין כתובת IP סטטית למכונה הווירטואלית: compute.addresses.use בפרויקט
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם: compute.networks.useExternalIp בפרויקט
    • כדי לציין רשת משנה למכונה הווירטואלית: compute.subnetworks.use בפרויקט או ברשת המשנה שנבחרה
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC: compute.subnetworks.useExternalIp בפרויקט או ברשת המשנה שנבחרה
    • כדי להגדיר מטא-נתונים של המכונה הווירטואלית למכונה הווירטואלית: compute.instances.setMetadata בפרויקט
    • כדי להגדיר תגים למכונה הווירטואלית: compute.instances.setTags במכונה הווירטואלית
    • כדי להגדיר תוויות למכונה הווירטואלית: compute.instances.setLabels במכונה הווירטואלית
    • כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית: compute.instances.setServiceAccount במכונה הווירטואלית
    • כדי ליצור דיסק חדש למכונה הווירטואלית: compute.disks.create בפרויקט
    • כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה: compute.disks.use בדיסק
    • כדי לצרף דיסק קיים במצב קריאה-בלבד: compute.disks.useReadOnly בדיסק
  • כדי לחשוף את מזהה המארח כשיוצרים תבנית של הגדרות מכונה:
  • כדי לחשוף או להסתיר את מזהה המארח במכונה קיימת: compute.instances.update

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

הצגה או הסתרה של מזהה המארח

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

כדי לחשוף או להסתיר את מזהה המארח במכונה של Compute Engine, אפשר להשתמש באחת מהשיטות הבאות:

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

הצגה או הסתרה של מזהה המארח במופע קיים של מחשוב

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

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

  • אם מופע החישוב משתמש בסוג מכונה H4D או בסוג מכונה A3 High עם 8 יחידות GPU (או דורות מאוחרים יותר), ‏ Compute Engine מתעלם מהבקשה.

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

gcloud

כדי לחשוף או להסתיר את מזהה המארח של מכונה קיימת של Compute Engine, משתמשים בפקודה gcloud compute instances update עם אחד מהדגלים הבאים:

  • כדי לחשוף את מזהה המארח, צריך לכלול את הדגל --expose-host-topology:

    gcloud compute instances update INSTANCE_NAME \
        --expose-host-topology \
        --zone=ZONE
    
  • כדי להסתיר את מזהה המארח, מוסיפים את הדגל --no-expose-host-topology:

    gcloud compute instances update INSTANCE_NAME \
        --no-expose-host-topology \
        --zone=ZONE
    

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

  • ‫INSTANCE_NAME: השם של המכונה הווירטואלית.

  • ‫ZONE: האזור שבו נמצאת המכונה של Compute Engine.

REST

  1. כדי להציג את המאפיינים של מכונת Compute קיימת, שולחים בקשת GET אל ה-method‏ instances.get:

    GET https://compute./compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
    

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

    • ‫PROJECT_ID: מזהה הפרויקט שבו יצרתם את מופע Compute.

    • ‫ZONE: האזור שבו קיימת מכונת ה-Compute.

    • ‫INSTANCE_NAME: השם של מכונת ה-Compute.

  2. כדי לעדכן מכונת Compute כך שתחשוף או תסתיר את מזהה המארח, שולחים בקשת PUT אל ה-method‏ instances.update. בגוף הבקשה, משתמשים בGET בקשת הפלט מהשלב הקודם. עם זאת, בשדה scheduling צריך להוסיף את השדה exposeHostTopology כדי לחשוף או להסתיר את מזהה המארח. אם השדה scheduling לא קיים בפלט של הבקשה, צריך להוסיף גם אותו.

    בקשת PUT דומה לבקשה הבאה:

    PUT https://compute./compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=REFRESH
    
    {
      "scheduling": {
        "exposeHostTopology": EXPOSE_HOST_ID
      },
      ...
    }
    

    מחליפים את EXPOSE_HOST_ID באחד מהערכים הבאים:

    • כדי לחשוף את מזהה המארח: true

    • כדי להסתיר את מזהה המארח: false

חשיפת מזהה המארח במופע חדש של מחשוב

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

gcloud

כדי לחשוף את מזהה המארח בזמן יצירת מכונת Compute, משתמשים בפקודה gcloud compute instances create עם הדגל --expose-host-topology:

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --expose-host-topology \
    --zone=ZONE

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

  • ‫INSTANCE_NAME: השם של מכונת ה-Compute.

  • ‫MACHINE_TYPE: סוג המכונה שרוצים שמכונת ה-Compute תשתמש בו.

  • ‫ZONE: האזור שבו רוצים ליצור את מכונת ה-Compute.

REST

כדי לחשוף את מזהה המארח בזמן שיוצרים מכונת חישוב, שולחים בקשת POST אל ה-method‏ instances.insert. בגוף הבקשה, כוללים את השדה scheduling.exposeHostTopology שמוגדר לערך true.

POST https://compute./compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "exposeHostTopology": true
  }
}

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

  • ‫PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מכונת ה-Compute.

  • ‫ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית.

  • ‫INSTANCE_NAME: השם של מכונת ה-Compute.

  • ‫MACHINE_TYPE: סוג המכונה שרוצים שמכונת ה-Compute תשתמש בו.

  • ‫IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמה debian-cloud. מידע נוסף על פרויקטים של קובצי אימג' של מערכת ההפעלה נתמכים זמין במאמר קובצי אימג' של מערכות הפעלה ציבוריות.

  • ‫IMAGE: מציינים אחת מהאפשרויות הבאות:

    • גרסה ספציפית של קובץ האימג' של מערכת ההפעלה, לדוגמה debian-12-bookworm-v20240617.

    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. הערך הזה מציין את קובץ אימג' של מערכת ההפעלה העדכני ביותר שלא הוצא משימוש. לדוגמה, אם מציינים family/debian-12, המערכת משתמשת בגרסה העדכנית במשפחת תמונות Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.

חשיפת מזהה המארח במכונות Compute חדשות בכמות גדולה

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

gcloud

כדי לחשוף את מזהה המארח כשיוצרים כמות גדולה של מכונות Compute Engine, מריצים את הפקודה gcloud compute instances bulk create עם הדגל --expose-host-topology.

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

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --expose-host-topology \
    --zone=ZONE

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

  • ‫COUNT: מספר מופעי Compute שרוצים ליצור.

  • ‫MACHINE_TYPE: סוג המכונה שרוצים שמופעי Compute ישתמשו בו.

  • NAME_PATTERN: תבנית השם של המכונות הווירטואליות של Compute. כדי להחליף רצף של מספרים בשם של מופע חישוב, משתמשים ברצף של תווים מסוג גיבוב (#). לדוגמה, אם משתמשים ב-instance-# בתבנית השם, נוצרים מכונות Compute עם שמות שמתחילים ב-instance-1, instance-2 וכן הלאה, עד למספר המכונות שצוין ב-COUNT.

  • ‫ZONE: האזור שבו רוצים ליצור מכונות Compute בכמות גדולה.

REST

כדי לחשוף את מזהה המארח כשיוצרים כמות גדולה של מכונות וירטואליות, שולחים בקשת POST אל ה-method‏ instances.bulkInsert. בגוף הבקשה, כוללים את השדה instanceProperties.scheduling.exposeHostTopology ונותנים לו את הערך true.

לדוגמה, כדי ליצור מכונות Compute Engine בכמות גדולה באזור אחד ולציין שרוצים לחשוף את מזהה המארח שלהן, שולחים בקשת POST באופן הבא:

POST https://compute./compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "exposeHostTopology": true
    }
  }
}

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

  • ‫PROJECT_ID: מזהה הפרויקט שבו ייצרו את מופעי ה-Compute.

  • ‫ZONE: האזור שבו רוצים ליצור את מכונות ה-Compute.

  • ‫COUNT: מספר מופעי Compute שרוצים ליצור.

  • ‫NAME_PATTERN: תבנית השם של מכונות Compute. כדי להחליף רצף של מספרים בשם של מופע חישוב, משתמשים ברצף של תווים מסוג גיבוב (#). לדוגמה, שימוש ב-instance-# בתבנית השם יוצר מכונות וירטואליות עם שמות שמתחילים ב-instance-1, instance-2 וממשיכים עד למספר המכונות הווירטואליות שצוין על ידי COUNT.

  • ‫MACHINE_TYPE: סוג המכונה שרוצים שמופעי Compute ישתמשו בו.

  • ‫IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמה debian-cloud. מידע נוסף על פרויקטים של קובצי אימג' נתמכים זמין במאמר קובצי אימג' ציבוריים של מערכת ההפעלה.

  • ‫IMAGE: מציינים אחת מהאפשרויות הבאות:

    • גרסה ספציפית של קובץ האימג' של מערכת ההפעלה, לדוגמה debian-12-bookworm-v20240617.

    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. הערך הזה מציין את קובץ אימג' של מערכת ההפעלה העדכני ביותר שלא הוצא משימוש. לדוגמה, אם מציינים family/debian-12, המערכת משתמשת בגרסה העדכנית במשפחת תמונות Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.

חשיפת מזהה המארח בתבנית של הגדרות מכונה חדשה

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

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

gcloud

כדי לחשוף את מזהה המארח בזמן שיוצרים תבנית של הגדרות מכונה, משתמשים בפקודה gcloud compute instance-templates create עם הדגל --expose-host-topology.

לדוגמה, כדי ליצור תבנית של הגדרות מכונה אזורית, משתמשים בפקודה הבאה: כדי ליצור תבנית גלובלית של הגדרות מכונה, משתמשים באותה פקודה בלי הדגל --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --expose-host-topology \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE

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

  • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.

  • ‫REGION: האזור שבו רוצים ליצור את תבנית הגדרות המכונה.

  • ‫MACHINE_TYPE: סוג המכונה שרוצים שמופעי Compute ישתמשו בו.

REST

כדי לחשוף את מזהה המארח בזמן שיוצרים תבנית של הגדרות מכונה, שולחים POST בקשה לאחת מהשיטות הבאות. בגוף הבקשה, כוללים את השדה properties.scheduling.exposeHostTopology עם הערך true.

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

POST https://compute./compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "exposeHostTopology": true
    }
  }
}

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

  • ‫PROJECT_ID: מזהה הפרויקט שבו יוצרים את התבנית של הגדרות המכונה.

  • ‫REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה.

  • ‫INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.

  • ‫IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמה debian-cloud. מידע נוסף על פרויקטים של קובצי אימג' של מערכת ההפעלה נתמכים זמין במאמר קובצי אימג' של מערכות הפעלה ציבוריות.

  • ‫IMAGE: מציינים אחת מהאפשרויות הבאות:

    • גרסה ספציפית של קובץ אימג' של מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240617.

    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. הערך הזה מציין את קובץ אימג' של מערכת ההפעלה העדכני ביותר שלא הוצא משימוש. לדוגמה, אם מציינים את הערך family/debian-12, המערכת משתמשת בגרסה העדכנית במשפחת קובצי האימג' של Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.

  • ‫MACHINE_TYPE: סוג המכונה שרוצים שמופעי ה-Compute ישתמשו בו.

אימות המיקום הפיזי של מכונת Compute

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

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

אימות המיקום הפיזי באמצעות מסוף Google Cloud , ה-CLI של gcloud או REST

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

המסוף

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

    כניסה לדף VM instances

  2. בעמודה Name (שם), לוחצים על השם של מופע החישוב שרוצים לראות את הפרטים שלו. מוצג דף עם פרטי המופע, והכרטיסייה Details מסומנת.

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

gcloud

כדי לראות את המיקום הפיזי של מכונה פעילה ב-Compute Engine, משתמשים בפקודה gcloud compute instances describe עם הדגל --flatten=resourceStatus.physicalHostTopology:

gcloud compute instances describe INSTANCE_NAME \
    --flatten=resourceStatus.physicalHostTopology \
    --zone=ZONE

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

  • ‫INSTANCE_NAME: השם של מכונת ה-Compute.

  • ‫ZONE: האזור שבו קיימת מכונת ה-Compute.

הפלט אמור להיראות כך:

  • אם אתם יכולים לראות את המזהה של האשכול, הבלוק, תת-הבלוק והמארח של מכונה ב-Compute Engine, הפלט אמור להיראות כך:

    ---
    block: 3e3056e23cf91a5cb4a8621b6a52c100
    cluster: europe-west1-cluster-jfhb
    host: 1215168a4ecdfb434fd4d28056589059
    subBlock: 0fc09525cbd5abd734342893ca1c083f
    
  • אם אפשר לראות את המזהה של המארח רק אחרי החשיפה, הפלט ייראה בערך כך:

    ---
    block: null
    cluster: null
    host: 1215168a4ecdfb434fd4d28056589059
    subBlock: null
    

REST

כדי לראות את המיקום הפיזי של מכונות ה-Compute שפועלות, שולחים את אחת מבקשות ה-GET הבאות. כששולחים בקשה, צריך לכלול את פרמטר השאילתה fields ולהגביל את הפלט לשדות name, machineType ו-physicalHostTopology של מופע Compute. צריך גם לכלול את פרמטר השאילתה filter ולהגביל את התוצאות למופעי מחשוב פעילים.

  • כדי לראות רשימה של המופעים בכל האזורים: ‫instances.aggregatedList method

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    
  • כדי לראות רשימה של המכונות שלכם באזור מסוים: שיטת instances.list

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    

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

  • ‫PROJECT_ID: מזהה הפרויקט שבו קיימים מופעי Compute.

  • ‫ZONE: האזור שבו קיימות מכונות ה-Compute.

הפלט אמור להיראות כך:

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

    {
      "items": [
        {
          "name": "vm-01",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": "3e3056e23cf91a5cb4a8621b6a52c100",
              "cluster": "europe-west1-cluster-jfhb",
              "host": "1215168a4ecdfb434fd4d28056589059",
              "subBlock": "0fc09525cbd5abd734342893ca1c083f"
            }
          }
        },
        {
          "name": "vm-02",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": "3e3056e23cf91a5cb4a8621b6a52c100",
              "cluster": "europe-west1-cluster-jfhb",
              "host": "2326279b5ecdfc545fd5e39167698168",
              "subBlock": "1fc18636cbd4abd623553784ca2c174e"
            }
          }
        },
        ...
      ]
    }
    
  • אם אפשר לראות את המזהה של המארח רק אחרי החשיפה, הפלט ייראה בערך כך:

    {
      "items": [
        {
          "name": "vm-01",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": null,
              "cluster": null,
              "host": "1215168a4ecdfb434fd4d28056589059",
              "subBlock": null
            }
          }
        },
        {
          "name": "vm-02",
          "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
          "resourceStatus": {
            "physicalHostTopology": {
              "block": null,
              "cluster": null,
              "host": "2326279b5ecdfc545fd5e39167698168",
              "subBlock": null
            }
          }
        },
        ...
      ]
    }
    

אם רוצים לצמצם את רשימת המכונות הווירטואליות, עורכים את ביטוי הסינון בפרמטר השאילתה filter.

אימות המיקום הפיזי באמצעות שאילתה על מפתח המטא-נתונים

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

מכונות Linux

  1. מתחברים למופע של Linux.

  2. שולחים שאילתה למפתח המטא-נתונים physical_host_topology באמצעות curl:

    user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology
    

    הפלט אמור להיראות כך:

    • אם אתם יכולים לראות את המזהה של האשכול, הבלוק, הבלוק המשני והמארח של מכונת המחשוב, הפלט אמור להיראות כך:

      {
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "cluster": "europe-west1-cluster-jfhb",
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": "1fc18636cbd4abd623553784ca2c174e"
      }
      
    • אם אפשר לראות רק את המזהה של המארח אחרי שחושפים אותו, הפלט ייראה כך:

      {
        "block": null,
        "cluster": null,
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": null
      }
      

מכונות של Windows

  1. מתחברים למופע Windows.

  2. שולחים שאילתה למפתח המטא-נתונים physical_host_topology באמצעות הפקודה Invoke-RestMethod:

    PS C:\> 
    $value = (Invoke-RestMethod `
            -Headers @{'Metadata-Flavor' = 'Google'} `
            -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology")
    $value
    

    הפלט אמור להיראות כך:

    • אם אתם יכולים לראות את המזהה של האשכול, הבלוק, הבלוק המשני והמארח של מכונת המחשוב, הפלט אמור להיראות כך:

      {
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "cluster": "europe-west1-cluster-jfhb",
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": "1fc18636cbd4abd623553784ca2c174e"
      }
      
    • אם אפשר לראות רק את המזהה של המארח אחרי שחושפים אותו, הפלט ייראה כך:

      {
        "block": null,
        "cluster": null,
        "host": "2326279b5ecdfc545fd5e39167698168",
        "subBlock": null
      }
      

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