הצגת מידע על קבוצות של מכונות מנוהלות (MIG) ועל מופעים מנוהלים

בדף הזה מוסבר איך להשתמש בשיטות שונות כדי לראות מידע על קבוצות של מופעי מכונה מנוהלים (MIG) ועל המכונות הווירטואליות (VM) בכל קבוצת MIG.

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

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

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

    המסוף

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

    gcloud

    1. התקינו את ה-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.

המסוף

  1. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups.

    אם יש לכם קבוצות מופעים קיימות, הן יופיעו בדף, כולל קבוצות MIG וקבוצות מופעים לא מנוהלות.

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

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.

המסוף

  1. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups.

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

  2. בעמודה Name (שם) ברשימה, לוחצים על השם של ה-MIG שרוצים לבדוק. נפתח דף עם המאפיינים של ה-MIG ורשימה של המופעים שנכללים בקבוצה.

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

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 של הקבוצה.

כדי לקבל מידע על קנה המידה האוטומטי, צריך להפעיל את השיטה autoscalers.get עבור MIG אזורי או את השיטה regionAutoscalers.get עבור MIG אזורי. כתובת ה-URL של משאב ה-Autoscaler כוללת את השם שלו, שהוא כברירת מחדל השם של הקבוצה שאליה מצורף ה-Autoscaler. לדוגמה, אפשר לשלוח את הבקשה הבאה לשינוי של קנה מידה אוטומטי של קבוצת 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.
  • משאב autohealer מחליף מופע אחד או יותר לא תקינים בקבוצת ה-MIG.
  • ב-MIG אזורי, חלק מהמופעים מופצים מחדש.

ברגע שכל הפעולות יסתיימו, הערך של status.isStable ישתנה שוב ל-true עבור ה-MIG הזה.

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

בדיקת הגדרות התיקון ב-MIG

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

המסוף

  1. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת המכונות המנוהלת שרוצים להציג. ייפתח דף עם המאפיינים של ה-MIG ורשימה של מכונות וירטואליות שנמצאות בקבוצה.
  3. לוחצים על הכרטיסייה פרטים.
  4. בקטע מחזור החיים של מכונת VM, בודקים את הערכים של השדות הבאים:

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

    • במקרה של בדיקת תקינות שנכשלה:

      • אם הערך הוא No action (ללא פעולה), התיקון האוטומטי מושבת.
      • אם הערך הוא פעולת ברירת מחדל והערך בשדה פעולת ברירת מחדל במקרה של כשל הוא ללא פעולה, אז גם התיקון האוטומטי מושבת.
    • שינוי אזור במהלך תיקון של מכונת VM: אם האפשרות הזו נבחרה, וכשקבוצת ה-MIG לא מצליחה לתקן מכונת VM באזור המקורי, היא מתקנת את מכונת ה-VM באחד מהאזורים האחרים שנבחרו של קבוצת ה-MIG.

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 במקרים של כשלים במכונות וירטואליות ב-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).

צפייה בפעולות היסטוריות של תיקון אוטומטי

אם הגדרתם תיקון אוטומטי, תוכלו לראות אירועים קודמים של תיקון אוטומטי.

מעקב אחרי עדכונים בהדרגה (rolling)

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

צפייה בהגדרה עם שמירת מצב

אם הגדרתם MIG עם שמירת מצב ואתם רוצים לבדוק את ההגדרה, תוכלו לעיין במאמר בנושא הצגת הגדרות של MIG עם שמירת מצב.

הצגת הסטטוס של פרוסת TPU

כשיוצרים MIG עם מכונות וירטואליות של TPU או מגדילים את הגודל של ה-MIG, ה-MIG יוצר מכונות וירטואליות של TPU במצב PENDING. כשהקיבולת הופכת לזמינה ותואמת להגדרת מדיניות עומס העבודה, מכונות ה-VM עוברות דרך הסטטוסים PROVISIONING ו-STAGING לפני שהן מגיעות לסטטוס RUNNING. המעבר הזה יכול לקחת זמן, בהתאם למספר המקרים בקבוצה.

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

כדי לראות את השדות currentInstanceStatuses ו-appliedAcceleratorTopologies, אפשר לבחור באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups

  2. בוחרים את השם של קבוצת ה-MIG. נפתח דף עם המאפיינים של קבוצת המופעים ורשימה של המופעים שנכללים בקבוצה.

  3. בוחרים בכרטיסייה פרטים כדי לראות את ההגדרה של הקבוצה.

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>
    
  • בשביל קבוצות אזוריות של מכונות וירטואליות, משתמשים ב-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 slice. הערך יכול להיות אחד מהערכים הבאים:

מדינה תיאור
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

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

  • כל ההזמנות במצב 'קיבולת':
    • כשל במארח. במקרה הזה, המופע המושפע עובר למצב REPAIRING.
    • כשל ב-ICI. במקרה כזה, המופעים נשארים במצב RUNNING.
  • הזמנות על פי דרישה, הזמנות עם תאריך התחלה גמיש, הזמנות של שטחי פרסום נקודתיים והזמנות (לא כולל הזמנות במצב 'כל הקיבולת'):
    • מחיקה ידנית או עצירה של מופע, כולל מתוך מערכת ההפעלה.
    • הפסקת פעולה של VM במודל Spot.

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

  • מוחקים את קבוצת ה-MIG ויוצרים אותה מחדש.
  • משנים את הגודל של ה-MIG ל-0, ואז מגדילים אותו לגודל הנדרש.

הצגת פרטים על מופעי מכונות וירטואליות מנוהלים בקבוצת MIG

בקטע הזה מוסבר איך לראות פרטים שונים על מופעים מנוהלים ב-MIG.

הצגת רשימה של מופעי מכונה מנוהלים בקבוצת MIG

כדי לראות רשימה של המכונות המנוהלות בקבוצה, כולל המצבים והתבניות שלהן, משתמשים במסוף, ב-ה-CLI של gcloud או ב-REST.

המסוף

  1. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups.

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

  2. בעמודה 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 אזורי (עם כמה אזורים), משתמשים בשיטה 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]

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

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 מופיעה במאמר מחזור החיים של מכונות VM.

אם מופעל שינוי כלשהו במופע, ה-MIG מגדיר את השדה currentAction של המופע לאחת מהפעולות הבאות כדי לעזור לכם לעקוב אחרי התקדמות השינוי. אחרת, השדה currentAction מוגדר ל-NONE.

הערכים האפשריים של currentAction הם:

  • ‫ABANDONING. המופע יוסר מקבוצת ה-MIG.
  • ‫CREATING. המכונה בתהליך יצירה.
  • ‫CREATING_WITHOUT_RETRIES. המופע נוצר ללא ניסיונות חוזרים. אם המופע לא נוצר בניסיון הראשון, ה-MIG לא מנסה להחליף את המופע שוב.
  • ‫DELETING. המכונה נמצאת בתהליך של מחיקה.
  • RECREATING. המופע מוחלף.
  • ‫REFRESHING. המופע מוסר ממאגרי היעדים הנוכחיים שלו ומתווסף מחדש לרשימת מאגרי היעדים הנוכחיים (הרשימה הזו יכולה להיות זהה למאגרי היעדים הקיימים או שונה מהם).
  • ‫RESTARTING. המכונה נמצאת בתהליך של הפעלה מחדש באמצעות השיטות stop ו-start.
  • ‫RESUMING. המופע נמצא בתהליך של הפעלה מחדש אחרי שהושעה.
  • ‫STARTING. המופע נמצא בתהליך של הפעלה אחרי שהוא הופסק.
  • ‫STOPPING. המכונה מופסקת.
  • ‫SUSPENDING. המכונה מושעית.
  • ‫VERIFYING. המופע נוצר ועובר תהליך אימות.
  • NONE. לא מתבצעות פעולות במופע.

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

בדיקת מצבי התקינות

אם הגדרתם תיקון אוטומטי לקבוצת ה-MIG, תוכלו לבדוק את מצב התקינות של כל מכונה וירטואלית. איך בודקים את סטטוס התקינות

רשימת שגיאות של מופעים

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

אפשר להשתמש במסוף Google Cloud , ב-CLI של gcloud או ב-REST כדי להציג רשימה של שגיאות.

המסוף

  1. נכנסים לדף Instance groups במסוף Google Cloud .

    כניסה לדף Instance groups

  2. בעמודה Name (שם) ברשימה, לוחצים על השם של ה-MIG שרוצים לבדוק. נפתח דף עם המאפיינים של ה-MIG ורשימה של המופעים שנכללים בקבוצה.

  3. לוחצים על שגיאות.

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-west1
INSTANCE_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 לשיטה 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) נכשלת (לדוגמה, אם מנגנון לשינוי גודל קבוצה באופן אוטומטי נתקל בשגיאה בניסיון להגדיל את גודל הקבוצה), יכול להיות שהקבוצה תנסה לבצע את הפעולה הזו שוב באופן מיידי. אם ניסיון החזרה המיידי האחרון נכשל, ה-MIG מתעד את השגיאה, ואפשר לראות את השגיאה על ידי הצגת שגיאות של מופעים. אחרי תקופת השהיה לפני ניסיון חוזר (backoff), הקבוצה מנסה שוב לבצע את הפעולה שנכשלה. אם השגיאה נמשכת, יכול להיות שהיא תתועד כמה פעמים.

‫Compute Engine שומר את 500 השגיאות האחרונות מ-8 הימים האחרונים, גם אם המופעים הבסיסיים כבר לא קיימים או שלא הייתה אפשרות ליצור אותם.

בדיקה אם מכונה וירטואלית היא חלק מקבוצת מופעי מכונה מנוהלים (MIG)

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

המסוף

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

    כניסה לדף VM instances

  2. לוחצים על מופע כדי לגשת לפרטי מופע של מכונה וירטואלית.
  3. אם מכונת ה-VM היא חלק מקבוצת MIG, השם של קבוצת ה-MIG מופיע בכותרת In use by. אם מופעלת מכונה וירטואלית שלא שייכת לקבוצה, הכותרת בשימוש על ידי לא מופיעה בדף הפרטים של המכונה.

REST

איך צופים במקורות התנועה למכונות וירטואליות

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

  • ‫instance-template מציין את התבנית שממנה נוצרה המכונה הווירטואלית.
  • ‫created-by מציין את קבוצת ה-MIG שיצרה את מכונת ה-VM.

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

לדוגמה, אם יש מכונה וירטואלית בשם 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 עם שמירת מצב ואתם רוצים לראות את המצב שנשמר של כל מכונה מנוהלת, תוכלו לעיין במאמר הצגת ההגדרה עם שמירת מצב והמצב שנשמר.

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