במאמר הזה מוסבר איך לראות את המיקום הפיזי של המכונות הפועלות של Compute Engine בארגון ב- Google Cloud .
אחרי שיוצרים ומפעילים מכונות, אפשר לראות באיזה מארח פיזי כל מכונה פועלת באזור מסוים. אתם יכולים להשתמש במיקום הפיזי של המכונות באשכול כדי:
צמצום זמן האחזור ברשת: התאמת האפליקציה או עומס העבודה כדי להריץ משימות שרגישות לזמן האחזור במכונות שהכי קרובות זו לזו.
שיפור האמינות של עומסי העבודה: פיזור של מכונות בין מארחים פיזיים נפרדים כדי להגביל את ההשפעה של שגיאות מארח באפליקציה.
כדי לבדוק אילו מכונות פועלות בפרויקט, מציגים רשימה של מכונות.
מגבלות
אתם יכולים לראות את המזהה של האשכול, הבלוק, בלוק המשנה והמארח של מכונות שעומדות באחת או יותר מהדרישות הבאות:
המכונה משתמשת באחד מסוגי המכונות הבאים:
A4X Max
A4X
A4
A3 Ultra
A3 Mega
A3 High עם 8 מעבדי GPU
A3 Edge
H4D
המכונה מציינת מדיניות למיקום קומפקטי.
מופע המכונה שייך לקבוצת מופעי מכונה מנוהלים (MIG) שמציינת מדיניות עומסי עבודה עם סוג של תפוקה גבוהה (
HIGH_THROUGHPUT).
אם מכונה לא עומדת באחת מהדרישות הקודמות, אפשר לראות את מזהה המארח שלה אחרי שחושפים אותו, כמו שמתואר במסמך הזה.
הסבר על הטופולוגיה של מכונות וירטואליות
כל מכונה פועלת בשרת פיזי, מארח, שנמצא בבלוק שרתים. כל בלוק שייך לאשכול באזור. כשאתם צופים בפרטים של מכונות שעומדות בדרישות ספציפיות, אתם יכולים להבין את הטופולוגיה שלהן ביחס למכונות אחרות שעומדות באותן דרישות.
ב-Compute Engine, שדות המשנה הבאים מופיעים בשדה physicalHostTopology של כל מכונה. ככל שיש יותר שדות משנה משותפים לשתי מכונות פעילות, כך הן קרובות יותר זו לזו.
Cluster (
cluster): השם הגלובלי של האשכול שבו נמצאת המכונה. אשכול הוא קיבוץ לוגי ברמה גבוהה של כמה מארחים, שיכולים להתפרס על פני כמה בלוקים, שפועלים יחד כמאגר משאבים אחד.Block (
block): המזהה הספציפי לארגון של הבלוק שבו נמצאת המכונה. בלוק הוא אוסף של כמה מארחים שמקובצים יחד.Sub-block (
subBlock): המזהה הספציפי לארגון של הבלוק המשני שבו נמצאת המכונה. בלוק משנה הוא חלוקת משנה פיזית בבלוק, שמקבצת מארחים בתוך מארז פיזי אחד.Host (
host): המזהה הספציפי לארגון או לפרויקט של המארח שבו פועלת המכונה. מזהה המארח משתנה באופן הבא:אם במכונה מוגדרת מדיניות למיקום קומפקטי או מדיניות לעומס עבודה, מזהה המארח הוא ספציפי לפרויקט שלכם.
אם המכונה מציינת סדרת מכונות נתמכת או אם חושפים את מזהה המארח שלה, מזהה המארח הוא ספציפי לארגון שלכם.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לאימות הטופולוגיה של המכונות, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין של Compute (
roles/compute.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות כדי לאמת את הטופולוגיה של המכונות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לאמת את הטופולוגיה של המכונות, צריך את ההרשאות הבאות:
- כדי לראות את הפרטים של מכונה: 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.instanceTemplates.create
- כדי לחשוף או להסתיר את מזהה המארח במכונה קיימת: compute.instances.update
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הצגה או הסתרה של מזהה המארח
אם מכונה לא עומדת בדרישות ספציפיות, מזהה המארח שלה מוסתר כברירת מחדל. אתם יכולים לחשוף את מזהה המארח כשאתם יוצרים או מעדכנים מכונות Compute. כשאתם צופים בפרטים של המכונות, אתם יכולים לראות את מזהי המארחים הספציפיים לארגון שלכם ב- Google Cloud . אי אפשר לראות את המזהים של הבלוק, תת-הבלוק או האשכול של המכונות.
כדי לחשוף או להסתיר את מזהה המארח במכונה, משתמשים באחת מהשיטות הבאות:
אם אתם רוצים למנוע את החשיפה של מזהה המארח בפרויקט אחד או יותר בארגון, אתם יכולים ליצור אילוץ בהתאמה אישית. האילוץ הזה שימושי, למשל, כשרוצים להריץ עומסי עבודה שרגישים מבחינת אבטחה. מידע נוסף מופיע במאמר אילוצים בהתאמה אישית.
חשיפה או הסתרה של מזהה המארח במכונה קיימת
אפשר לחשוף או להסתיר את מזהה המארח במכונה קיימת בלי להפעיל אותה מחדש. אם משביתים את ההגדרה שחושפת את מזהה המארח של מכונה שמציגה את מזהה המארח כברירת מחדל, קורה אחד מהמקרים הבאים:
אם במכונה מוגדרת מדיניות למיקום קומפקטי או מדיניות לעומסי עבודה, יוצג מזהה המארח הספציפי לפרויקט ופרטי המיקום הפיזי שקשורים אליו.
אם המכונה משתמשת בסוג מכונה H4D או בסוג מכונה A3 High עם 8 יחידות GPU (או דורות מאוחרים יותר), אז Compute Engine מתעלם מהבקשה.
כדי לחשוף או להסתיר את מזהה המארח של מכונה קיימת, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי לחשוף או להסתיר את מזהה המארח של מכונה קיימת, משתמשים בפקודה
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: האזור שבו נמצאת המכונה.
REST
כדי לראות את המאפיינים של מכונה קיימת, שולחים בקשת
GETאל ה-methodinstances.get:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAMEמחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו יצרתם את המכונה.
ZONE: האזור שבו נמצאת המכונה.
INSTANCE_NAME: השם של המכונה.
כדי לעדכן מכונה כך שמזהה המארח יוצג או יוסתר, שולחים בקשת
PUTאל ה-methodinstances.update. בגוף הבקשה, משתמשים בפלט של הבקשהGETמהשלב הקודם. עם זאת, בשדהschedulingצריך להוסיף את השדהexposeHostTopologyכדי לחשוף או להסתיר את מזהה המארח. אם השדהschedulingלא קיים בפלט של הבקשה, צריך להוסיף גם אותו.בקשת ה-
PUTדומה לבקשה הבאה:PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=REFRESH { "scheduling": { "exposeHostTopology": EXPOSE_HOST_ID }, ... }מחליפים את
EXPOSE_HOST_IDבאחד מהערכים הבאים:כדי לחשוף את מזהה המארח:
trueכדי להסתיר את מזהה המארח:
false
חשיפת מזהה המארח במכונה חדשה
כדי לחשוף את מזהה המארח כשיוצרים מכונה, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי לחשוף את מזהה המארח כשיוצרים מכונה, משתמשים בפקודה
gcloud compute instances createעם הדגל--expose-host-topology:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --expose-host-topology \ --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
INSTANCE_NAME: השם של המכונה.
MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה כמכונה.
ZONE: האזור שבו רוצים ליצור את המכונה.
REST
כדי לחשוף את מזהה המארח כשיוצרים מכונה, שולחים בקשת
POSTאל ה-methodinstances.insert. בגוף הבקשה, כוללים את השדהscheduling.exposeHostTopologyוקובעים את הערךtrue.POST https://compute.googleapis.com/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: מזהה הפרויקט שבו רוצים ליצור את המכונה.
ZONE: האזור שבו רוצים ליצור את המכונה.
INSTANCE_NAME: השם של המכונה.
MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה כמכונה.
IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמהdebian-cloud. למידע נוסף על פרויקטים של קובצי אימג' נתמכים, ראו קובצי אימג' של מערכת ההפעלה ציבוריים.
IMAGE: מציינים אחת מהאפשרויות הבאות:גרסה ספציפית של קובץ האימג' של מערכת ההפעלה, לדוגמה
debian-12-bookworm-v20240617.משפחת תמונות, בפורמט
family/IMAGE_FAMILY. כך מציינים את קובץ אימג' של מערכת ההפעלה העדכני ביותר, שלא הוצא משימוש. לדוגמה, אם מציינים אתfamily/debian-12, המערכת משתמשת בגרסה העדכנית במשפחת קובצי האימג' של Debian 12. למידע נוסף על השימוש במשפחות של קובצי אימג', קראו את המאמר שיטות מומלצות למשפחות של קובצי אימג'.
חשיפת מזהה המארח במכונות חדשות בכמות גדולה
כדי לחשוף את מזהה המארח כשיוצרים מכונות בכמות גדולה, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי לחשוף את מזהה המארח כשיוצרים כמות גדולה של מכונות, מריצים את הפקודה
gcloud compute instances bulk createעם הדגל--expose-host-topology.לדוגמה, כדי ליצור מכונות בכמות גדולה באזור אחד ולציין שרוצים לחשוף את מזהה המארח שלהן, מריצים את הפקודה הבאה:
gcloud compute instances bulk create \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --expose-host-topology \ --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
COUNT: מספר המכונות שרוצים ליצור.
MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה במכונות ה-Compute.
NAME_PATTERN: תבנית השם של המכונות. כדי להחליף רצף של מספרים בשם של מכונה, משתמשים ברצף של תווי סולמית (#). לדוגמה, אם משתמשים ב-instance-#בתבנית השם, נוצרות מכונות עם שמות שמתחילים ב-instance-1,instance-2וכן הלאה, עד למספר המכונות שצוין ב-COUNT.
ZONE: האזור שבו רוצים ליצור מכונות בכמות גדולה.
REST
כדי לחשוף את מזהה המארח כשיוצרים כמות גדולה של מכונות, שולחים בקשת
POSTאל ה-methodinstances.bulkInsert. בגוף הבקשה, כוללים את השדהinstanceProperties.scheduling.exposeHostTopologyומוגדר ל-true.לדוגמה, כדי ליצור מכונות בכמות גדולה באזור אחד ולציין שרוצים לחשוף את מזהה המארח שלהן, שולחים בקשת
POSTבאופן הבא:POST https://compute.googleapis.com/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: מזהה הפרויקט שבו רוצים ליצור את המכונות.
ZONE: האזור שבו רוצים ליצור את המכונות.
COUNT: מספר המכונות שרוצים ליצור.
NAME_PATTERN: תבנית השם של המכונות. כדי להחליף רצף של מספרים בשם של מכונה, משתמשים ברצף של תווי סולמית (#). לדוגמה, אם משתמשים ב-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.כדי ליצור תבנית של הגדרות מכונה גלובלית: ה-method
instanceTemplates.insert.כדי ליצור תבנית של הגדרות מכונה אזורית: ה-method
regionInstanceTemplates.insert.
לדוגמה, כדי ליצור תבנית של הגדרות מכונה אזורית שחושפת את מזהה המארח, שולחים בקשת
POSTבאופן הבא:POST https://compute.googleapis.com/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.
אימות המיקום הפיזי של המכונה
אתם יכולים לראות את המיקום הפיזי של המכונות הפועלות רק אם הן עומדות בדרישות ספציפיות או אם אתם חושפים את מזהי המארחים שלהן.
כדי לאמת את המיקום הפיזי של המכונות שפועלות בארגון, אתם יכולים להשתמש באחת מהשיטות הבאות:
אימות המיקום הפיזי באמצעות מסוף Google Cloud , ה-CLI של gcloud או REST
כדי לראות את המיקום הפיזי של כמה מכונות בו-זמנית, משתמשים ב-API בארכיטקטורת REST. אחרת, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
בעמודה Name, לוחצים על השם של המכונה שרוצים לראות את הפרטים שלה. מופיע דף עם פרטי המכונה, והכרטיסייה Details נבחרת.
בקטע Basic information, בודקים את הערך בשדה Physical host.
gcloud
כדי לראות את המיקום הפיזי של מכונה שפועלת, משתמשים בפקודה
gcloud compute instances describeעם הדגל--flatten=resourceStatus.physicalHostTopology:gcloud compute instances describe INSTANCE_NAME \ --flatten=resourceStatus.physicalHostTopology \ --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
INSTANCE_NAME: שם המכונה.
ZONE: האזור שבו נמצאת המכונה.
הפלט אמור להיראות כך:
אם אתם יכולים לראות את המזהה של האשכול, הבלוק, תת-הבלוק והמארח של מכונה, הפלט אמור להיראות כך:
--- block: 3e3056e23cf91a5cb4a8621b6a52c100 cluster: europe-west1-cluster-jfhb host: 1215168a4ecdfb434fd4d28056589059 subBlock: 0fc09525cbd5abd734342893ca1c083fאם אתם יכולים לראות רק את המזהה של המארח אחרי שחשפתם אותו, הפלט אמור להיראות כך:
--- block: null cluster: null host: 1215168a4ecdfb434fd4d28056589059 subBlock: null
REST
כדי לראות את המיקום הפיזי של המכונות הפועלות, שולחים אחת מבקשות ה-
GETהבאות. כששולחים בקשה, צריך לכלול את הפרמטרfieldsשל השאילתה ולהגביל את הפלט לשדותname,machineTypeו-physicalHostTopologyשל מכונה. צריך גם לכלול את הפרמטרfilterשל השאילתה ולהגביל את התוצאות למכונות פועלות.כדי לראות רשימה של המכונות בכל האזורים: השיטה
instances.aggregatedListGET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNINGכדי להציג רשימה של המכונות באזור ספציפי: ה-method
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: מזהה הפרויקט שבו נמצאות המכונות.
ZONE: האזור שבו נמצאות המכונות.
הפלט אמור להיראות כך:
אם אתם יכולים לראות את המזהה של האשכול, הבלוק, תת-הבלוק והמארח של מכונה, הפלט אמור להיראות כך: בדוגמה הבאה, המכונות
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 }
המאמרים הבאים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה: