במאמר הזה מוסבר איך לראות את המיקום הפיזי של מכונות Compute Engine שפועלות בארגון Google Cloud .
אחרי שיוצרים מכונות וירטואליות ומפעילים אותן, אפשר לראות באיזה מארח פיזי כל מכונה וירטואלית פועלת באזור. אפשר להשתמש במיקום הפיזי של מופעי החישוב באשכול כדי:
צמצום זמן האחזור ברשת: התאמת האפליקציה או עומס העבודה כדי להריץ משימות שרגישות לזמן האחזור במכונות הווירטואליות של Compute Engine שהכי קרובות זו לזו.
שיפור האמינות של עומסי העבודה: פיזור של מכונות ה-Compute בין מארחים פיזיים נפרדים כדי להגביל את ההשפעה של שגיאות במארחים על האפליקציה.
כדי לבדוק אילו מכונות וירטואליות של Compute פועלות בפרויקט, צופים ברשימת המכונות הווירטואליות של Compute.
מגבלות
אתם יכולים לראות את המזהה של האשכול, הבלוק, תת-הבלוק והמארח של מופעי מחשוב שעומדים באחת או יותר מהדרישות הבאות:
מופע ה-Compute משתמש באחד מסוגי המכונות הבאים:
A4X Max
A4X
A4
A3 Ultra
A3 Mega
A3 High עם 8 מעבדי GPU
A3 Edge
H4D
במופע של Compute מוגדרת מדיניות למיקום קומפקטי.
מופע ה-Compute שייך לקבוצת מופעי מכונה מנוהלים (MIG) שבה מוגדרת מדיניות עומס עבודה עם סוג של תפוקה גבוהה (
HIGH_THROUGHPUT).
אם מכונה של Compute Engine לא עומדת באחת מהדרישות הקודמות, אפשר לראות את מזהה המארח שלה אחרי שחושפים אותו, כמו שמתואר במסמך הזה.
הסבר על הטופולוגיה של מופעי מחשוב
כל מכונת חישוב פועלת בשרת פיזי, מארח, שקיים בבלוק שרתים. כל בלוק שייך לאשכול בתחום. כשמציגים את הפרטים של מופעי מחשוב שעומדים בדרישות ספציפיות, אפשר להבין את הטופולוגיה שלהם ביחס למופעי מחשוב אחרים שעומדים באותן דרישות.
Compute Engine חושף את שדות המשנה הבאים בשדה physicalHostTopology של כל מופע של מחשוב. ככל שיש יותר שדות משנה משותפים בין שני מופעי מחשוב פעילים, כך הם קרובים יותר זה לזה.
Cluster (
cluster): השם הגלובלי של האשכול שבו קיים מופע המחשוב. אשכול הוא קיבוץ לוגי ברמה גבוהה של כמה מארחים, שיכולים להתפרס על פני כמה בלוקים, שפועלים יחד כמאגר משאבים אחד.חסימה (
block): המזהה הספציפי לארגון של החסימה שבה קיים מופע המחשוב. בלוק הוא אוסף של כמה מארחים שמקובצים יחד.Sub-block (
subBlock): המזהה הספציפי לארגון של הבלוק המשני שבו נמצא המכונה שלכם. בלוק משנה הוא חלוקת משנה פיזית בבלוק, שמקבצת מארחים בתוך מארז פיזי אחד.Host (
host): המזהה הספציפי לארגון או לפרויקט של המארח שבו פועל מופע Compute. מזהה המארח משתנה באופן הבא:אם במופע של Compute מוגדרת מדיניות למיקום קומפקטי או מדיניות עומס עבודה, מזהה המארח ספציפי לפרויקט שלכם.
אם במכונה מצוין סדרת מכונות נתמכת או אם חושפים את מזהה המארח שלה, מזהה המארח יהיה ספציפי לארגון שלכם.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
-
מתקינים את ה-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
כדי להציג את המאפיינים של מכונת Compute קיימת, שולחים בקשת
GETאל ה-methodinstances.get:GET https://compute./compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAMEמחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו יצרתם את מופע Compute.
ZONE: האזור שבו קיימת מכונת ה-Compute.
INSTANCE_NAME: השם של מכונת ה-Compute.
כדי לעדכן מכונת Compute כך שתחשוף או תסתיר את מזהה המארח, שולחים בקשת
PUTאל ה-methodinstances.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. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.
חשיפת מזהה המארח בתבנית של הגדרות מכונה חדשה
אחרי שיוצרים תבנית של הגדרות מכונה שמציינת שצריך לחשוף את מזהה המארח, אפשר להשתמש בתבנית כדי:
חשיפת מזהה המארח במופעי המחשוב של קבוצת מופעי מכונה מנוהלים (MIG) כשמבצעים את הפעולות הבאות:
כדי לחשוף את מזהה המארח בזמן שיוצרים תבנית של הגדרות מכונה, בוחרים באחת מהאפשרויות הבאות:
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.
כדי ליצור תבנית של הגדרות מכונה גלובלית:
instanceTemplates.insertmethod.כדי ליצור תבנית של הגדרות מכונה אזורית:
regionInstanceTemplates.insertmethod.
לדוגמה, כדי ליצור תבנית של הגדרות מכונה אזורית שחושפת את מזהה המארח, שולחים בקשת 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. אחרת, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
בעמודה Name (שם), לוחצים על השם של מופע החישוב שרוצים לראות את הפרטים שלו. מוצג דף עם פרטי המופע, והכרטיסייה Details מסומנת.
בקטע מידע בסיסי, בודקים את הערך בשדה מארח פיזי.
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.aggregatedListmethodGET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNINGכדי לראות רשימה של המכונות שלכם באזור מסוים: שיטת
instances.listGET 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
מתחברים למופע של Linux.
שולחים שאילתה למפתח המטא-נתונים
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
מתחברים למופע Windows.
שולחים שאילתה למפתח המטא-נתונים
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 }