אתם יכולים להשתמש בשיטות שבדף הזה כדי להציג מידע על קבוצות של מופעי מכונה מנוהלים (MIG) ועל המכונות הווירטואליות (VM) שבכל MIG.
לפני שמתחילים
- קוראים את המגבלות ויוצרים קבוצה.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-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 נפרד.
מדיניות התאמה אוטומטית לעומס
אם לקבוצה מצורף מגדיר קנה מידה אוטומטי, המשאב של מגדיר קנה המידה האוטומטי מופיע בשדה status.autoscaler של הקבוצה.
כדי לקבל מידע על ההתאמה האוטומטית לעומס, מפעילים את ה-method autoscalers.get לקבוצת MIG אזורית או את ה-method regionAutoscalers.get לקבוצת MIG בכמה אזורים. כתובת ה-URL של משאב ההתאמה האוטומטית לעומס כוללת את השם שלו, שהוא כברירת מחדל השם של הקבוצה שאליה מצורפת ההתאמה האוטומטית לעומס. לדוגמה, אפשר לשלוח את הבקשה הבאה למגדיר קנה מידה של קבוצת MIG אזורית:
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/regionAutoscalers/mig_name
בדיקה אם קבוצת 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 עצמה משתנה.
אם status.isStable מוגדר ל-true, זה מציין את הדברים הבאים:
- אף אחד מהמופעים ב-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: אם בוחרים באפשרות הזו, כשאי אפשר לתקן מכונה וירטואלית באזור המקורי, קבוצת המכונות המנוהלת מתקנת את המכונה הווירטואלית באחד מהאזורים האחרים שנבחרו בקבוצה.
gcloud
משתמשים בשיטה describe באופן הבא:
gcloud compute instance-groups managed describe instance-group \
--format="(instanceLifecyclePolicy)" \
--zone=zone
מחליפים את מה שכתוב בשדות הבאים:
-
instance-group: השם של ה-MIG. -
zone: לאזור של קבוצת MIG, מציינים את האזור. בשביל קבוצת MIG אזורית, משתמשים בדגל--region=region.
בפלט, בודקים את הערכים הבאים:
-
defaultActionOnFailure: אם הערך הואDO_NOTHING, התיקונים האוטומטיים של מכונות וירטואליות שנכשלו מושבתים. -
onFailedHealthCheck: אם הערך הוא אחד מהבאים, תיקון התוכנה האוטומטי מושבת.-
DEFAULT_ACTION, בתנאי שהערך של השדהdefaultActionOnFailureהואDO_NOTHING DO_NOTHING
-
-
allowChangingZone: אם הערך הואYESוכשאי אפשר לתקן מכונה וירטואלית באזור המקורי, קבוצת ה-MIG מתקנת את המכונה הווירטואלית באחד מהאזורים האחרים שנבחרו בקבוצת ה-MIG.
הדוגמה הבאה היא של פלט שמתקבל כשתיקוני מכונות וירטואליות שנכשלו או לא תקינות מושבתים ב-MIG:
instanceLifecyclePolicy:
defaultActionOnFailure: DO_NOTHING
forceUpdateOnRepair: NO
onFailedHealthCheck: DEFAULT_ACTION
onRepair:
allowChangingZone: YES
REST
לקבוצת MIG אזורית, משתמשים בשיטה instanceGroupManagers.get, ולקבוצת MIG אזורית משתמשים בשיטה regionInstanceGroupManagers.get.
כדי לראות את הפעולה של 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:
...
"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 .
בוחרים את השם של ה-MIG. ייפתח דף עם המאפיינים של קבוצת המכונות ורשימה של המכונות שכלולות בקבוצה.
לוחצים על הכרטיסייה פרטים כדי לראות את הגדרות הקבוצה.
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, סימן שהן ממתינות להקצאת משאבים.
כברירת מחדל, ה-CLI של gcloud מציג ערכים מקודדים לפי צבע בחלונות טרמינל אינטראקטיביים שתומכים בפלט צבעים של ANSI. במאמר הסבר על צבעי הסטטוס ב-CLI של gcloud מוסבר על ערכת הצבעים ואיך משביתים את הצביעה.
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 תהיה ריקה, אלא אם הגדרתם בדיקת תקינות.
בטרמינלים אינטראקטיביים שתומכים בפלט צבעוני של ANSI, כברירת מחדל ה-CLI של gcloud מקודד בצבע את הערכים בעמודות STATUS, HEALTH_STATE ו-ACTION. במאמר הסבר על צבעי הסטטוס ב-CLI של gcloud מוסבר על ערכת הצבעים ואיך להשבית את הצבעים.
מכונה מנוהלת ספציפית
כדי לבדוק את הסטטוס ואת הפעולה הנוכחית של מכונה ספציפית בקבוצה, משתמשים בפקודה 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
מפעילים את השיטה 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.
אם מכונה עוברת שינוי כלשהו, קבוצת המכונות המנוהלת מגדירה את השדה currentAction של המכונה לאחת מהפעולות הבאות כדי לעזור לכם לעקוב אחרי התקדמות השינוי. אחרת, השדה currentAction מוגדר ל-NONE.
הערכים האפשריים של currentAction הם:
-
ABANDONING. המכונה מוסרת מה-MIG. -
CREATING. המכונה בתהליך יצירה. CREATING_WITHOUT_RETRIES. המכונה נוצרת בלי ניסיונות חוזרים. אם המכונה לא נוצרת בניסיון הראשון, קבוצת המכונות המנוהלת לא מנסה להחליף את המכונה שוב.-
DELETING. המכונה בתהליך מחיקה. -
RECREATING. המכונה מוחלפת. -
REFRESHING. המכונה מוסרת ממאגרי היעד הנוכחיים שלה ומתווספת מחדש לרשימת מאגרי היעד הנוכחיים (הרשימה הזו עשויה להיות זהה למאגרי היעד הקיימים או שונה מהם). -
RESTARTING. המכונה בתהליך הפעלה מחדש באמצעות השיטותstopו-start. -
RESUMING. המכונה בתהליך של המשך פעולה אחרי שהושעתה. -
STARTING. המכונה בתהליך הפעלה אחרי שהיא הופסקה. -
STOPPING. המכונה נעצרת. -
SUSPENDING. המכונה מושעית. VERIFYING. המכונה נוצרה והיא בתהליך אימות.NONE. לא מתבצעות פעולות במכונה.
כדי לבדוק אם הקבוצה כולה יציבה או שהיא עוברת שינויים, אפשר לעיין בקטע בדיקת הסטטוס של הקבוצה.
בדיקת מצבי התקינות
אם הגדרתם תיקון תוכנה אוטומטי (autohealing) לקבוצת ה-MIG, אתם יכולים לבדוק את מצב התקינות של כל מכונה וירטואלית. בדיקת סטטוס התקינות
הסבר על צבעי הסטטוס ב-CLI של gcloud
כשמציגים רשימה של מכונות, ה-CLI של gcloud עוזר לזהות בעיות במבט חטוף על ידי קידוד צבעים של העמודות STATUS, HEALTH_STATE ו-ACTION כברירת מחדל.
הצבעים תואמים למצבים הבאים:
- ירוק: מצב תקין ופעיל.
- אדום: מצב של כשל, מצב לא תקין או מצב עצירה שדורש טיפול.
- צהוב: מצב שבו המכונה עוברת למצב לא פעיל או לא מציג.
- כחול: מצב שבו המכונה עוברת למצב תקין או פעיל.
- צבע ברירת המחדל של טקסט הטרמינל: מצב לא פעיל צפוי, או מצב שבו אין פעולות שמתבצעות.
השבתת הסטטוסים שמסומנים בצבעים
ה-CLI של gcloud משבית את הצבעים באופן אוטומטי אם מבצעים אחת מהפעולות הבאות:
- מפנים את הפלט לקובץ (
>). - מעבירים את הפלט לפקודה אחרת (
|). - פורמט הפלט כנתונים מובְנים (
--format=json,--format=yaml,--format=csv). - משתמשים בדגל
--no-color.
כדי להשבית באופן ידני את הצביעה בכל הסשנים של הטרמינל, משתמשים באחת מהאפשרויות הבאות:
מגדירים את משתנה הסביבה
NO_COLORלערך כלשהו:export NO_COLOR=value
מגדירים את משתנה הסביבה
CLOUDSDK_CORE_DISABLE_COLORלערךtrue:export CLOUDSDK_CORE_DISABLE_COLOR=true
משתמשים בפקודה
gcloud config setכדי להגדיר אתcore/disable_colorsלערךtrue:gcloud config set core/disable_colors true
הפעלה מחדש של סטטוסים עם קוד צבע
אחרי שהשבתתם את הצבעים בכל הסשנים בטרמינל, אתם יכולים להפעיל אותם מחדש על ידי שינוי משתני הסביבה וההגדרות הרלוונטיים באופן הבא:
אם הגדרתם בעבר את משתנה הסביבה
NO_COLORלערך כלשהו, בטלו את ההגדרה של המשתנה.unset NO_COLOR
אם הגדרתם בעבר את משתנה הסביבה
CLOUDSDK_CORE_DISABLE_COLORלערךtrue, צריך להגדיר אותו לערךfalse.export CLOUDSDK_CORE_DISABLE_COLOR=false
אם הגדרתם בעבר את
core/disable_colorsל-true, הגדירו אותו ל-false:gcloud config set core/disable_colors false
כדי לבדוק את הערכים הנוכחיים של משתני הסביבה האלה, משתמשים בפקודה echo:
echo $NO_COLOR echo $CLOUDSDK_CORE_DISABLE_COLOR gcloud config list core/disable_color
רשימת שגיאות במכונות
אם נתקלתם בשגיאות במכונות המנוהלות, אתם יכולים להציג את השגיאות כדי לאבחן את הסיבה ולטפל בה.
כדי להציג רשימה של השגיאות, אפשר להשתמש במסוף 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. - נשלחו יותר מדי בקשות למחיקה בו-זמנית, והייתה חריגה ממגבלות הקצב.
- לחשבון השירות שבו הקבוצה משתמשת אין את ההרשאה
- אי אפשר להוסיף מכונה למאגר יעד כי מאגר היעד נמחק.
אחרי שבודקים את השגיאות האלה, אפשר לפתור אותן. לדוגמה:
- להעביר את עומס העבודה לאזור אחר שיש בו קיבולת של מכונות שניתנות להפסקה לפני הזמן.
- לבקש להגדיל את המכסה באזור מסוים.
- מוסיפים את ההרשאה
compute.instances.deleteלחשבון השירות שמשמש את הקבוצה.
אם פעולה שמופעלת על ידי MIG נכשלת (לדוגמה, אם מתרחשת שגיאה ב-autoscaler כשמנסים להגדיל את הקבוצה), יכול להיות שהקבוצה תנסה לבצע את הפעולה שוב באופן מיידי. אם ניסיון הניסיון החוזר המיידי האחרון נכשל, קבוצת ה-MIG מתעדת את השגיאה ואפשר לראות אותה ברשימת השגיאות של המכונות. אחרי זמן השהיה מסוים, הקבוצה מנסה שוב לבצע את הפעולה שנכשלה. אם השגיאה נמשכת, יכול להיות שהיא תתועד כמה פעמים.
ב-Compute Engine נשמרות 500 השגיאות האחרונות מ-8 הימים האחרונים, גם אם המכונות הבסיסיות כבר לא קיימות או שלא ניתן ליצור אותן.
איך בודקים אם מכונה וירטואלית היא חלק מ-MIG
כדי לבדוק אם מכונה וירטואלית ספציפית היא חלק מקבוצה, אפשר להשתמש במסוף, ב-CLI של gcloud או ב-REST.
המסוף
- נכנסים לדף VM instances במסוף Google Cloud .
- לוחצים על מכונה כדי לגשת ל-VM instance details שלה.
- אם המכונה הווירטואלית היא חלק מקבוצת מכונות מנוהלת, השם של קבוצת המכונות המנוהלת מופיע בכותרת In use by. אם המכונה הווירטואלית לא שייכת לקבוצה, הכותרת In use by לא תופיע בדף הפרטים של המכונה.
gcloud
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).