אתם יכולים להשתמש בשיטות שבדף הזה כדי להציג מידע על קבוצות של מופעי מכונה מנוהלים (MIG) ועל המכונות הווירטואליות (VM) שבכל MIG.
לפני שמתחילים
- קוראים את המגבלות ויוצרים קבוצה.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי 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 .
הצגת מידע על קבוצות MIG
אתם יכולים לאחזר מידע על הקבוצות עצמן, למשל כדי לבדוק את כללי המדיניות שמצורפים לקבוצה ולבדוק אם הקבוצה יציבה או שהיא עוברת שינויים. למידע על מכונות וירטואליות בתוך קבוצת מכונות מנוהלת (MIG), קראו את המאמר הצגת מידע על מכונות מנוהלות.
הצגת רשימה של קבוצות MIG
כדי לקבל רשימה של קבוצות ה-MIG, אפשר להשתמש במסוף, ב-CLI של gcloud או ב-REST.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
אם יש לכם קבוצות של מכונות, הן מופיעות בדף, כולל קבוצות MIG וקבוצות לא מנוהלות של מכונות.
בעמודה Group type מצוין אם הקבוצה מנוהלת, עם שמירת מצב או לא מנוהלת. גם סוגי הקבוצות עם שמירת מצב הם קבוצות מנוהלות של מכונות.
gcloud
הצגת רשימה של כל קבוצות ה-MIG בפרויקט:
gcloud compute instance-groups managed list
REST
לקבוצות MIG אזוריות, מפעילים את ה-method instanceGroupManagers.list:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers
לקבוצות MIG אזוריות, מפעילים את ה-method regionInstanceGroupManagers.list.
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers
הצגת המאפיינים של קבוצת MIG
כדי להציג מידע על קבוצת MIG ספציפית, כולל כללי המדיניות שלה (לדוגמה, מדיניות תיקון התוכנה האוטומטי ומדיניות העדכון של הקבוצה), משתמשים במסוף, ב-ה-CLI של gcloud או ב-REST.
כדי לראות את הערך של id בקבוצה, צריך להשתמש ב-CLI של gcloud או ב-Compute Engine API.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
אם יש לכם קבוצות של מכונות, הן יופיעו בדף. בדף מופיעות גם קבוצות לא מנוהלות של מכונות.
בעמודה Name של הרשימה, לוחצים על השם של קבוצת ה-MIG שרוצים לבדוק. נפתח דף עם המאפיינים של קבוצת ה-MIG ורשימה של המכונות שכלולות בקבוצה.
לוחצים על פרטים כדי לראות את הגדרות הקבוצה.
gcloud
כדי לקבל מידע על קבוצה ספציפית:
gcloud compute instance-groups managed describe instance-group \
[--zone zone | --region region]הפקודה מחזירה פרטים על הקבוצה, כולל כללי המדיניות שמצורפים אליה.
משתמשים בדגל --format כדי להגביל את הפלט. לדוגמה, הפקודה הבאה מחזירה רק את הגדרת ההתאמה האוטומטית לעומס של הקבוצה, אם היא קיימת.
gcloud compute instance-groups managed describe instance-group --format="(autoscaler)"
REST
לקבוצת MIG אזורית, מפעילים את ה-method instanceGroupManagers.get.
לקבוצות MIG אזוריות, מפעילים את ה-method regionInstanceGroupManagers.get.
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group
התשובה כוללת פרטים על הקבוצה, כולל כללי המדיניות שמצורפים אליה, חוץ ממדיניות ההתאמה האוטומטית לעומס של הקבוצה. למרות שהתאמה אוטומטית לעומס היא תכונה של קבוצות MIG, היא משאב REST נפרד.
מדיניות התאמה אוטומטית לעומס (autoscaling)
אם לקבוצה מצורף מגדיר קנה מידה אוטומטי, המשאב של מגדיר קנה המידה האוטומטי מופיע בשדה status.autoscaler של הקבוצה.
כדי לקבל מידע על ההתאמה האוטומטית של קבוצת המכונות, מפעילים את השיטה autoscalers.get לקבוצת מכונות מנוהלת אזורית או את השיטה regionAutoscalers.get לקבוצת מכונות מנוהלת אזורית. כתובת ה-URL של משאב ההתאמה האוטומטית לעומס כוללת את השם שלו, שהוא כברירת מחדל השם של הקבוצה שאליה מצורפת ההתאמה האוטומטית לעומס. לדוגמה, אפשר לשלוח את הבקשה הבאה ל-autoscaler של קבוצת MIG אזורית:
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/regionAutoscalers/mig_name
בדיקה אם קבוצת MIG יציבה
קבוצת MIG נחשבת יציבה כשאין מכונות שעוברות שינויים או מתוזמנות לשינויים, וכשקבוצת ה-MIG עצמה לא משתנה.
לפני שמתחילים משימה שקשורה לאפליקציה ותלויה בכך שכל המכונות תקינות ופועלות, כדאי לבדוק את היציבות של קבוצת ה-MIG. לדוגמה, יכול להיות שתרצו לוודא שקבוצת ה-MIG יציבה לפני שתתחילו לתזמן משימות, לשלוח תנועה או להקצות טווחי מפתחות למכונות הווירטואליות.
כדי לוודא שכל המכונות בקבוצת מופעי מכונה מנוהלים פועלות ותקינות, בודקים את הערך בשדה status.isStable של הקבוצה.
gcloud
משתמשים בפקודה describe:
gcloud compute instance-groups managed describe instance-group-name \
[--zone zone | --region region]ה-CLI של gcloud מחזיר מידע מפורט על קבוצת ה-MIG, כולל השדה status.isStable.
כדי להשהות סקריפט עד שה-MIG יהיה יציב, משתמשים בפקודה wait-until עם הדגל --stable. לדוגמה:
gcloud compute instance-groups managed wait-until instance-group-name \
--stable \
[--zone zone | --region region]
Waiting for group to become stable, current operations: deleting: 4
Waiting for group to become stable, current operations: deleting: 4
...
Group is stable
הפקודה חוזרת אחרי ש-status.isStable מוגדר ל-true עבור ה-MIG.
REST
בקבוצת MIG אזורית, שולחים בקשת GET ל-method instanceGroupManagers.get:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/get
בקבוצה אזורית של מופעי מכונה מנוהלים, מחליפים את zones/zone ב-regions/region:
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group-name/get
הבקשות האלה מחזירות מידע מפורט על ה-MIG כולל השדה status.isStable.
אם הערך של status.isStable הוא false, סימן שהשינויים פעילים, בהמתנה או שקבוצת ה-MIG עצמה משתנה.
הערך true בשדה status.isStable מציין את הדברים הבאים:
- אף אחד מהמופעים ב-MIG לא עובר שינוי כלשהו, והערך של
currentActionבכל המופעים הואNONE. - אין שינויים בהמתנה למכונות ב-MIG.
- ה-MIG עצמו לא משתנה.
חשוב לזכור שהיציבות של קבוצת MIG תלויה בגורמים רבים, כי אפשר לשנות קבוצת MIG בדרכים רבות. לדוגמה:
- אתם שולחים בקשה להשיק תבנית חדשה של הגדרות מכונה.
- אתם שולחים בקשה ליצור, למחוק, לשנות את הגודל או לעדכן מכונות ב-MIG.
- מנגנון התאמה לעומס (autoscaler) שולח בקשה לשנות את הגודל של קבוצת ה-MIG.
- משאב לתיקון תוכנה אוטומטי (autohealing) מחליף מכונה אחת או יותר שלא תקינות ב-MIG.
- בקבוצת MIG אזורית, חלק מהמכונות מופצות מחדש.
ברגע שכל הפעולות מסתיימות, הערך של status.isStable מוגדר שוב כ-true בקבוצת ה-MIG הזו.
למכונות וירטואליות ספציפיות, ראו בדיקת הסטטוס של מכונות מנוהלות.
בדיקת הגדרת התיקון ב-MIG
כדי לבדוק את הגדרת התיקון ב-MIG, בוחרים באחת מהאפשרויות הבאות:
המסוף
- נכנסים לדף Instance groups במסוף Google Cloud .
- לוחצים על השם של קבוצת המכונות שרוצים לראות. ייפתח דף עם המאפיינים של ה-MIG ורשימה של המכונות הווירטואליות שבקבוצה.
- לוחצים על הכרטיסייה פרטים.
בקטע VM instance lifecycle, בודקים את הערכים של השדות הבאים:
Default action on failure: אם הערך הוא No action, התיקונים האוטומטיים של מכונות וירטואליות שנכשלו מושבתים.
אם בדיקת התקינות נכשלת:
- אם הערך הוא No action, תיקון התוכנה האוטומטי מושבת.
- אם הערך הוא Default action והערך של השדה Default action on failure הוא No action, גם אז תיקון התוכנה האוטומטי מושבת.
Change zone during VM instance repair: אם בוחרים באפשרות הזו, כשאי אפשר לתקן מכונה וירטואלית באזור המקורי, ה-MIG מתקן אותה באחד מהאזורים האחרים שנבחרו.
gcloud
משתמשים בשיטה describe באופן הבא:
gcloud compute instance-groups managed describe instance-group \
--format="(instanceLifecyclePolicy)" \
--zone=zone
מחליפים את מה שכתוב בשדות הבאים:
-
instance-group: השם של קבוצת המכונות המנוהלת. -
zone: לאזור של קבוצת MIG, מציינים את האזור. בשביל קבוצת MIG אזורית, משתמשים בדגל--region=region.
בפלט, בודקים את הערכים הבאים:
-
defaultActionOnFailure: אם הערך הואDO_NOTHING, התיקונים האוטומטיים של מכונות וירטואליות שנכשלו מושבתים. -
onFailedHealthCheck: אם הערך הוא אחד מהבאים, תיקון התוכנה האוטומטי מושבת.-
DEFAULT_ACTION, בתנאי שהערך של השדהdefaultActionOnFailureהואDO_NOTHING DO_NOTHING
-
-
allowChangingZone: אם הערך הואYESוכשקבוצת ה-MIG לא יכולה לתקן מכונה וירטואלית באזור המקורי, קבוצת ה-MIG מתקנת את המכונה הווירטואלית באחד מהאזורים האחרים שנבחרו בקבוצת ה-MIG.
הדוגמה הבאה היא של פלט שמתקבל כשתיקונים של מכונות וירטואליות שנכשלו ולא תקינות מושבתים ב-MIG:
instanceLifecyclePolicy:
defaultActionOnFailure: DO_NOTHING
forceUpdateOnRepair: NO
onFailedHealthCheck: DEFAULT_ACTION
onRepair:
allowChangingZone: YES
REST
לקבוצת MIG אזורית, משתמשים בשיטה instanceGroupManagers.get, ולקבוצת MIG אזורית משתמשים בשיטה regionInstanceGroupManagers.get.
כדי לראות את הפעולה של MIG במקרה של כשלים במכונות וירטואליות ב-MIG אזורי, מבצעים את הקריאה הבאה:
GET https://compute.googleapis.com/compute/v1/projects/project_ID/zones/zone/instanceGroupManagers/instance_group
בגוף התגובה, בודקים את הערכים של השדות הבאים:
-
defaultActionOnFailure: אם הערך הואDO_NOTHING, התיקונים האוטומטיים של מכונות וירטואליות שנכשלו מושבתים. -
onFailedHealthCheck: אם הערך הוא אחד מהבאים, תיקון התוכנה האוטומטי מושבת.-
DEFAULT_ACTION, בתנאי שהערך של השדהdefaultActionOnFailureהואDO_NOTHING DO_NOTHING
-
-
allowChangingZone: אם הערך הואYESוכשקבוצת ה-MIG לא יכולה לתקן מכונה וירטואלית באזור המקורי, קבוצת ה-MIG מתקנת את המכונה הווירטואלית באחד מהאזורים האחרים שנבחרו בקבוצת ה-MIG.
הדוגמה הבאה היא של פלט שמתקבל כשתיקונים של מכונות וירטואליות שנכשלו או לא תקינות מושבתים ב-MIG:
...
"instanceLifecyclePolicy": {
"forceUpdateOnRepair": "NO",
"defaultActionOnFailure": "DO_NOTHING",
"onFailedHealthCheck": "DEFAULT_ACTION",
"onRepair": {
"allowChangingZone": "YES"
}
}
...
אם התיקונים מושבתים ואתם רוצים להפעיל אותם מחדש, קראו את המאמר הפעלת תיקונים או תיקון תוכנה אוטומטי (autohealing).
הצגת פעולות היסטוריות של תיקון תוכנה אוטומטי (autohealing)
אם הגדרתם תיקון תוכנה אוטומטי, אתם יכולים לצפות באירועי תיקון תוכנה אוטומטי קודמים.
מעקב אחרי עדכונים בהדרגה (rolling)
אם הפעלתם עדכון בהדרגה (rolling) ואתם רוצים לדעת מתי הוא יסתיים, קראו את המאמר מעקב אחרי עדכונים.
הצגת ההגדרה של שמירת המצב
אם הגדרתם קבוצת MIG עם שמירת מצב ואתם רוצים לבדוק את ההגדרות, קראו את המאמר הצגת הגדרות עם שמירת מצב.
הצגת התפלגות המופעים
כדי לראות איך המכונות מפוזרות בין אזורים וסוגי מכונות, אתם יכולים להציג את התפלגות המכונות של קבוצת MIG ספציפית או נתונים נצברים של כמה קבוצות MIG. הוראות מפורטות מופיעות במאמר מעקב אחרי הפצת מכונות ב-MIG.
הצגת הסטטוס של פרוסת TPU
כשיוצרים קבוצת MIG עם מכונות וירטואליות של TPU או מגדילים את קבוצת ה-MIG, קבוצת ה-MIG יוצרת מכונות וירטואליות של TPU במצב PENDING. כשהקיבולת תהיה זמינה ותתאים להגדרות המדיניות של עומס העבודה, המכונות הווירטואליות יעברו לסטטוסים PROVISIONING ו-STAGING לפני שיגיעו לסטטוס RUNNING. המעבר הזה יכול לקחת זמן, בהתאם למספר המכונות בקבוצה.
כדי לעקוב אחרי ההתקדמות של יצירת הפרוסה, אתם יכולים לראות את הסטטוס של מכונות וירטואליות של TPU ואת הטופולוגיה באמצעות השדות הבאים בפרטי ה-MIG.
בשדה
currentInstanceStatusesמוצג מספר המכונות בכל מצב במחזור החיים של המכונה. במאמר מחזור החיים של מכונות וירטואליות תוכלו לקרוא על המצבים השונים של מחזור החיים.כדי לראות את המצב של מכונה ספציפית, קראו את המאמר הצגת רשימה של מכונות מנוהלות ב-MIG.
בשדה
appliedAcceleratorTopologiesמוצג המצב של יצירת הפרוסה. רשימה של ערכים חוקיים לשדה הזה מופיעה בקטע מצבי טופולוגיה של מאיצים במסמך הזה.
כדי לראות את השדות currentInstanceStatuses ו-appliedAcceleratorTopologies, אפשר להשתמש באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בוחרים את השם של קבוצת המכונות המנוהלת. ייפתח דף עם המאפיינים של קבוצת המכונות ורשימה של המכונות שכלולות בקבוצה.
לוחצים על הכרטיסייה פרטים כדי לראות את הגדרות הקבוצה.
gcloud
כדי לראות את הסטטוס של פרוסת TPU, משתמשים בפקודה gcloud compute instance-groups managed describe.
בפלט, מחפשים את השדות currentInstanceStatuses ו-acceleratorTopologyState.
לקבוצת MIG אזורית, מריצים את הפקודה הבאה:
gcloud compute instance-groups managed describe MIG_NAME \ --zone=ZONEלקבוצת MIG אזורית, מריצים את הפקודה הבאה:
gcloud compute instance-groups managed describe MIG_NAME \ --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של ה-MIG. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. -
REGION: האזור שבו נמצאת קבוצת ה-MIG.
REST
כדי לראות את הסטטוס של פרוסת TPU, שולחים בקשת GET באחת מהשיטות הבאות:
כדי להשתמש ב-MIG אזורי, משתמשים בשיטה
instanceGroupManagers.getבאופן הבא:GET https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/zones/<var>ZONE</var>/instanceGroupManagers/<var>MIG_NAME</var>לקבוצות MIG אזוריות, משתמשים ב-method
regionInstanceGroupManagers.get.GET https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/regions/<var>REGION</var>/instanceGroupManagers/<var>MIG_NAME</var>
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. -
REGION: האזור שבו נמצאת קבוצת ה-MIG. -
MIG_NAME: השם של קבוצת ה-MIG.
פלט לדוגמה
הפלט אמור להיראות כך:
{
...
"name": "example-mig",
...
"currentActions": {
"none": 0,
"creating": 2,
"creatingWithoutRetries": 0,
"verifying": 0,
"recreating": 0,
"deleting": 0,
"abandoning": 0,
"restarting": 0,
"refreshing": 0,
"suspending": 0,
"resuming": 0,
"stopping": 0,
"starting": 0
},
...
"bulkInstanceOperation": {
"inProgress": true,
"lastProgressCheck": {
"error": {
"errors": [
{
"code": "ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS",
"message": "Waiting for resources. Currently there are not enough resources available to fulfill the request."
}
]
},
"timestamp": "2026-03-18T18:35:32.720925Z"
}
},
"appliedAcceleratorTopologies": [
{
"state": "ACTIVATING"
}
],
"currentInstanceStatuses": {
"pending": 2
},
"targetSize": 2,
"targetSizePolicy": {
"mode": "BULK"
},
...
}
אם בשדה bulkInstanceOperation.lastProgressCheck.error מדווחת השגיאה ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS, סימן שאין מספיק משאבי TPU זמינים באזור כדי ליצור את הפרוסה, וה-MIG ממתין שמשאבים יהיו זמינים.
מצבי טופולוגיה של מאיצים
השדה acceleratorTopologyState מציין את הסטטוס הנוכחי של פרוסת ה-TPU. הוא יכול לקבל את הערכים הבאים:
| מדינה | תיאור |
|---|---|
INCOMPLETE |
הפרוסה עדיין לא נוצרה. גודל היעד של ה-MIG הוא 0. |
ACTIVATING |
הפרוסה נוצרת. קבוצת ה-MIG מקצה את המכונות ומפעילה את הקישוריות בין הצ'יפים (ICI). גודל היעד של ה-MIG שווה לגודל הפרוסה. |
ACTIVE |
הפרוסה פועלת באופן מלא. לקבוצת ה-MIG יש את מספר המכונות הנדרש במצב RUNNING. |
REACTIVATING |
הפרוסה נכשלה בגלל בעיה במארח או בחיבור בין השבבים (ICI). Compute Engine מנסה להפעיל מחדש את הטופולוגיה של המאיץ. גודל היעד של ה-MIG שווה לגודל הפרוסה וכל המכונות נמצאות במצב REPAIRING. למידע נוסף על התאוששות מכשל, ראו זמינות פרוסות והתאוששות מכשל. |
DEACTIVATING |
הפרוסה מתעוותת כי Compute Engine מבטל את ההקצאה של המכונות. גודל היעד של MIG מוגדר כ-0, ולפחות מכונה אחת נמצאת במצב STOPPING, STOPPED או TERMINATED. |
FAILED |
הפרוסה נכשלה בגלל אחד מהתנאים הבאים, בהתאם למודל ההקצאה או למצב ההזמנה שבהם השתמשתם.
אם הפרוסה עוברת למצב
|
הצגת פרטים על המכונות הווירטואליות המנוהלות בתוך קבוצת מכונות מנוהלת (MIG)
בקטע הזה מוסבר איך להציג פרטים שונים על מכונות מנוהלות ב-MIG.
הצגת רשימה של המכונות המנוהלות ב-MIG
כדי להציג רשימה של המכונות המנוהלות בקבוצה, כולל המצבים והתבניות שלהן, משתמשים במסוף, ב-ה-CLI של gcloud או ב-REST.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
אם יש לכם קבוצות של מכונות, הן יופיעו בדף. בדף מופיעות גם קבוצות לא מנוהלות של מכונות.
בעמודה Name של הרשימה, לוחצים על השם של קבוצת ה-MIG שרוצים לבדוק. נפתח דף עם המאפיינים של קבוצת ה-MIG ורשימה של המכונות שכלולות בקבוצה.
gcloud
משתמשים בפקודת המשנה list-instances של ה-CLI של gcloud.
gcloud compute instance-groups managed list-instances instance-group \
[--zone zone | --region region]
הפקודה מחזירה רשימה של מכונות ופרטים שלהן, כולל הסטטוס הנוכחי, תבנית של הגדרות המכונה והשגיאה האחרונה.
הפלט לדוגמה:
NAME: example-mig-cmx0
ZONE: us-central1-a
STATUS: RUNNING
HEALTH_STATE:
ACTION: NONE
INSTANCE_TEMPLATE: example-instance-template
VERSION_NAME:
LAST_ERROR:
NAME: example-mig-qdwq
ZONE: us-central1-b
STATUS: PENDING
HEALTH_STATE:
ACTION: CREATING
INSTANCE_TEMPLATE: example-instance-template
VERSION_NAME:
LAST_ERROR: Error ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS: Waiting for resources. Currently there are not enough resources available to fulfill the request.
...
אם המכונות נמצאות במצב PENDING עם השגיאה ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS, סימן שהן ממתינות להקצאת משאבים.
REST
בקבוצת MIG אזורית, שולחים בקשת GET ל-method instanceGroupManagers.listManagedInstances וכוללים את שם קבוצת ה-MIG:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group
בקבוצת MIG אזורית (עם כמה אזורים), משתמשים ב-method regionInstanceGroupManagers.listManagedInstances.
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group
התשובה כוללת רשימה של מכונות ופרטים שלהן, כולל הסטטוס הנוכחי ותבנית של הגדרות המכונה.
זוהי דוגמה לתשובה:
{
"managedInstances": [
{
"instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-mig-cmx0",
"instanceStatus": "RUNNING",
"currentAction": "NONE",
"id": "2605978238927153426",
"version": {
"instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-instance-template"
},
"name": "example-mig-cmx0"
},
{
"instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-b/instances/example-mig-qdwq",
"instanceStatus": "PENDING",
"currentAction": "CREATING",
"lastAttempt": {
"errors": {
"errors": [
{
"code": "ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS",
"message": "Waiting for resources. Currently there are not enough resources available to fulfill the request."
}
]
}
}
"id": "334721596325800210",
"version": {
"instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-instance-template"
},
"name": "example-mig-qdwq"
}
]
}
אם המכונות נמצאות במצב PENDING עם השגיאה ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS, סימן שהן ממתינות להקצאת משאבים.
בדיקת הסטטוס של מכונות מנוהלות
כשיוצרים, מוחקים או משנים מכונות ב-MIG, הפעולה מחזירה סטטוס DONE אחרי שהקבוצה מתזמנת את הפעולות. הסטטוס DONE לא אומר שהמכונות נוצרו, נמחקו או עודכנו באופן מלא. כדי לאשר את המצב בפועל של המכונות, צריך לאמת את הסטטוס שלהן או לבדוק את הסטטוס של הקבוצה.
כדי לראות פרטים על מכונות ב-MIG, כולל הסטטוס שלהן וכל הפעולות הנוכחיות שמבוצעות על ידי הקבוצה, צריך להשתמש ב-Google Cloud CLI או ב-REST.
gcloud
כל המופעים המנוהלים
כדי לבדוק את הסטטוס ואת הפעולות הנוכחיות בכל המכונות בקבוצה, משתמשים בפקודה list-instances.
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \
[--zone=ZONE | --region=REGION]הפקודה מחזירה רשימה של מכונות בקבוצה, כולל הסטטוס שלהן, הפעולות הנוכחיות ופרטים נוספים:
NAME: vm-instances-9pk4 ZONE: us-central1-f STATUS: HEALTH_STATE: ACTION: CREATING INSTANCE_TEMPLATE: my-new-template VERSION_NAME: LAST_ERROR: NAME: vm-instances-h2r1 ZONE: us-central1-f STATUS: STOPPING HEALTH_STATE: ACTION: DELETING INSTANCE_TEMPLATE: my-old-template VERSION_NAME: LAST_ERROR:
העמודה HEALTH_STATE תופיע ריקה, אלא אם הגדרתם בדיקת תקינות.
מכונה מנוהלת ספציפית
כדי לבדוק את הסטטוס ואת הפעולה הנוכחית של מכונה ספציפית בקבוצה, משתמשים בפקודה describe-instance.
gcloud compute instance-groups managed describe-instance INSTANCE_GROUP_NAME \
--instance INSTANCE_NAME \
[--zone=ZONE | --region=REGION]הפקודה מחזירה פרטים על המכונה, כולל סטטוס המכונה, הפעולה הנוכחית, ובקבוצות MIG עם שמירת מצב, המצב שנשמר:
currentAction: NONE
id: '6789072894767812345'
instance: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-mig-hz41
instanceStatus: RUNNING
name: example-mig-hz41
preservedStateFromConfig:
metadata:
example-key: example-value
preservedStateFromPolicy:
disks:
persistent-disk-0:
autoDelete: NEVER
mode: READ_WRITE
source: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-mig-hz41
version:
instanceTemplate: https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template
REST
מפעילים את ה-method listManagedInstances במשאב MIG אזורי או תחום. לדוגמה, כדי לראות פרטים על המכונות במשאב של קבוצת MIG אזורית, אפשר לשלוח את הבקשה הבאה:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/listManagedInstances
הקריאה מחזירה רשימה של מכונות ל-MIG, כולל instanceStatus ו-currentAction של כל מכונה.
{
"managedInstances": [
{
"instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-prvp",
"instanceStatus": "RUNNING",
"currentAction": "REFRESHING",
"id": "5317605642920955957",
"version": {
instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template"
},
"name": "vm-instances-prvp"
},
{
"instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-w2t5",
"instanceStatus": "RUNNING",
"currentAction": "REFRESHING",
"id": "2800161036826218547",
"version": {
"instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template"
},
"name": "vm-instances-w2t5"
}
]
}
אם מגדירים בדיקת תקינות, התשובה כוללת גם את השדה instanceHealth.
במאמר מחזור החיים של מכונות וירטואליות תוכלו למצוא רשימה של ערכים תקינים לשדה instanceStatus.
אם מכונה עוברת שינוי כלשהו, קבוצת המכונות המנוהלת (MIG) מגדירה את השדה currentAction של המכונה לאחת מהפעולות הבאות, כדי לעזור לכם לעקוב אחרי התקדמות השינוי. אחרת, השדה currentAction מוגדר ל-NONE.
הערכים האפשריים של currentAction הם:
-
ABANDONING. המכונה מוסרת מה-MIG. -
CREATING. המכונה בתהליך יצירה. -
CREATING_WITHOUT_RETRIES. המכונה נוצרת בלי ניסיונות חוזרים. אם המכונה לא נוצרת בניסיון הראשון, קבוצת ה-MIG לא מנסה להחליף את המכונה שוב. -
DELETING. המכונה בתהליך מחיקה. -
RECREATING. המכונה מוחלפת. -
REFRESHING. המכונה מוסרת ממאגרי היעד הנוכחיים שלה ומתווספת מחדש לרשימת מאגרי היעד הנוכחיים (הרשימה הזו עשויה להיות זהה למאגרי היעד הקיימים או שונה מהם). -
RESTARTING. המכונה בתהליך הפעלה מחדש באמצעות השיטותstopו-start. -
RESUMING. המכונה בתהליך של המשך פעולה אחרי השעיה. -
STARTING. המכונה בתהליך הפעלה אחרי שהיא הופסקה. STOPPING. המכונה נעצרת.-
SUSPENDING. המכונה מושעית. VERIFYING. המכונה נוצרה והיא בתהליך אימות.NONE. לא מתבצעות פעולות במכונה.
כדי לבדוק אם הקבוצה כולה יציבה או שהיא עוברת שינויים, עיינו בקטע בדיקת הסטטוס של הקבוצה.
בדיקת מצבי התקינות
אם הגדרתם תיקון תוכנה אוטומטי (autohealing) לקבוצת ה-MIG, אתם יכולים לבדוק את מצב התקינות של כל מכונה וירטואלית. בדיקת סטטוס התקינות
רשימת שגיאות במכונות
אם אירעו שגיאות במכונות המנוהלות, אתם יכולים להציג את השגיאות כדי לאבחן את הסיבה ולצמצם את ההשפעה שלה.
כדי להציג את רשימת השגיאות, אפשר להשתמש במסוף Google Cloud , ב-CLI של gcloud או ב-REST.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בעמודה Name של הרשימה, לוחצים על השם של קבוצת ה-MIG שרוצים לבדוק. נפתח דף עם המאפיינים של קבוצת ה-MIG ורשימה של המכונות שכלולות בקבוצה.
לוחצים על שגיאות.
gcloud
משתמשים בפקודה instance-groups managed list-errors כדי להציג את רשימת השגיאות האחרונות בקבוצה.
gcloud compute instance-groups managed list-errors instance-group-name \
[--zone zone | --region region]לדוגמה:
gcloud compute instance-groups managed list-errors example-group \
--region us-west1INSTANCE_URL ACTION ERROR_CODE ERROR_MESSAGE TIMESTAMP INSTANCE_TEMPLATE VERSION_NAME https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/igm-1-v0hl CREATING QUOTA_EXCEEDED Instance 'igm-1-v0hl' creation failed: Quota 'CPUS' exceeded. Limit: 1.0 in zone us-central1-a. 2019-07-11T07:44:40.156-07:00 https://www.googleapis.com/compute/v1/projects/my-project/global/instanceTemplates/instance-template-1 https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/igm-1-qp3d CREATING QUOTA_EXCEEDED Instance 'igm-1-qp3d' creation failed: Quota 'CPUS' exceeded. Limit: 1.0 in zone us-central1-a. 2019-07-11T07:44:40.081-07:00 https://www.googleapis.com/compute/v1/projects/my-project/global/instanceTemplates/instance-template-1 ...
REST
יוצרים בקשת GET ל-method listErrors בשביל MIG אזורי או MIG של אזור.
לדוגמה:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/listErrors&maxResults=100
התגובה לבקשה תיראה בערך כך:
{
"items": [
{
"error": {
"code": "QUOTA_EXCEEDED",
"message": "Instance 'example-mig-m1sz' creation failed: Quota 'CPUS' exceeded. Limit: 50.0 in zone us-central1-c."
},
"timestamp": "2019-01-03T18:47:28.457-08:00",
"instanceDetails" : {
"instance": "zones/us-central1-c/instances/example-mig-m1sz",
"action": "CREATING",
"version": {
"name": "example-version-name",
"instanceTemplate": "global/instanceTemplates/example-template",
}
}
}
],
...
"nextPageToken": "Ch0yMDE5LTA3LTI5VDExOjA4OjA2LjYxMi0wNzowMBJ5aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vY29tcHV0ZS9zdGFnaW5nX2FscGhhL3Byb2plY3RzL215cnpha2VyZXltcy1zdGFnaW5nL3pvbmVzL3VzLWNlbnRyYWwxLWlyMS9pbnN0YW5jZXMvaWdtLTEtcXAzZA=="
}
listErrors API תומך בעימוד רשימות.
כדי לקבל את דף התוצאות הבא, משתמשים בשדה nextPageToken מתגובה אחת בבקשה הבאה. לדוגמה:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/listErrors&maxResults=100&nextPageToken=next-page-token,
כאשר מחליפים את next-page-token בטוקן שהתקבל מהתגובה הקודמת.
רשימת השגיאות האפשריות כוללת, בין היתר, את הדוגמאות הבאות:
- אי אפשר ליצור מופע חדש בגלל:
- חוסר זמינות של קיבולת שניתנת להפסקה לפני הזמן.
- מכסה לא מספיקה, למשל למעבדים (CPU) באזור מסוים.
- הגעתם למספר המקסימלי של מכונות וירטואליות ברשת שמשויכת לקבוצה.
- קובץ האימג' שצוין בשדה
properties.disks[].initializeParams.sourceImageשל תבנית המכונה נמחק, או שההרשאות שלו השתנו. - כרטיס האשראי בחשבון לחיוב שמשויך לפרויקט דחה את התשלום.
- אי אפשר למחוק מופע קיים כי:
- לחשבון השירות שמשמש את הקבוצה אין את ההרשאה
compute.instances.delete. - נשלחו יותר מדי בקשות למחיקה בו-זמנית, והייתה חריגה ממגבלות הקצב.
- לחשבון השירות שמשמש את הקבוצה אין את ההרשאה
- אי אפשר להוסיף מכונה למאגר יעד כי מאגר היעד נמחק.
אחרי שבודקים את השגיאות האלה, אפשר לפתור אותן. לדוגמה:
- להעביר את עומס העבודה לאזור אחר שיש בו קיבולת של מכונות VM שניתנות להפסקה לפני הזמן.
- לבקש להגדיל את המכסה באזור מסוים.
- מוסיפים את ההרשאה
compute.instances.deleteלחשבון השירות שמשמש את הקבוצה.
אם פעולה שמופעלת על ידי MIG נכשלת (לדוגמה, אם מתרחשת שגיאה ב-autoscaler כשמנסים להגדיל את הקבוצה), יכול להיות שהקבוצה תנסה לבצע שוב את הפעולה באופן מיידי. אם ניסיון הניסיון החוזר המיידי האחרון נכשל, קבוצת ה-MIG מתעדת את השגיאה ואפשר לראות אותה ברשימת השגיאות של המכונות. אחרי זמן המתנה מסוים, הקבוצה מנסה שוב לבצע את הפעולה שנכשלה. אם השגיאה נמשכת, יכול להיות שהיא תתועד כמה פעמים.
Compute Engine שומר את 500 השגיאות האחרונות מ-8 הימים האחרונים, גם אם המכונות הבסיסיות כבר לא קיימות או שלא ניתן היה ליצור אותן.
איך בודקים אם מכונה וירטואלית היא חלק מ-MIG
כדי לבדוק אם מכונה וירטואלית ספציפית היא חלק מקבוצה, אפשר להשתמש במסוף או ב-REST.
המסוף
- נכנסים לדף VM instances במסוף Google Cloud .
- לוחצים על מכונה כדי לגשת לדף VM instance details שלה.
- אם המכונה הווירטואלית שייכת ל-MIG, השם של ה-MIG יופיע בכותרת In use by. אם המכונה הווירטואלית לא שייכת לקבוצה, הכותרת In use by לא מופיעה בדף הפרטים של המכונה.
REST
לחלופין, כדי לזהות אם מכונה וירטואלית היא או הייתה חברה ב-MIG, חפשו את שני מפתחות המטא-נתונים האלה במטא-נתונים של המכונה:
-
instance-templateמציין את התבנית שממנה נוצרה המכונה הווירטואלית. -
created-byמציין את קבוצת ה-MIG שיצרה את המכונה הווירטואלית.
גם אם תנטשו את המכונה, למכונה הווירטואלית עדיין יהיו רשומות המטא-נתונים האלה, אלא אם תסירו אותן באופן ידני.
לדוגמה, אם יש מכונה וירטואלית בשם random-instance-biy ואתם רוצים לדעת אם היא נוצרה על ידי קבוצת MIG, אתם יכולים לתאר את המכונה ולחפש את מפתחות המטא-נתונים. לדוגמה:
gcloud compute instances describe random-instance-biy \
--zone us-central1-f
ה-CLI של gcloud מחזיר תשובה שדומה לזו:
canIpForward: false
cpuPlatform: Intel Ivy Bridge
creationTimestamp: '2016-08-24T14:11:38.012-07:00'
...
metadata:
items:
- key: instance-template
value: projects/123456789012/global/instanceTemplates/example-it
- key: created-by
value: projects/123456789012/zones/us-central1-f/instanceGroupManagers/igm-metadata
הצגת המצב השמור של מכונה מנוהלת
אם הגדרתם MIG עם שמירת מצב ואתם רוצים לראות את המצב השמור של כל מכונה מנוהלת, קראו את המאמר הצגת ההגדרה עם שמירת המצב והמצב השמור.
המאמרים הבאים
- מידע נוסף על קבוצות MIG
- יוצרים תבנית של הגדרות מכונה שאפשר להשתמש בה כדי ליצור קבוצת מכונות מנוהלת (MIG).