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

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

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

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

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

    המסוף

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

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

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

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

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

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

הצגת רשימה של קבוצות MIG

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

המסוף

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

    כניסה לדף Instance groups.

    אם יש לכם קבוצות מופעים קיימות, הן יופיעו בדף, כולל קבוצות 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

כדי להפעיל קריאה ל-regionInstanceGroupManagers.list עבור קבוצות אזוריות של מכונות וירטואליות,

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers

הצגת המאפיינים של קבוצת מופעים מנוהלת

כדי לראות מידע על קבוצת MIG ספציפית, כולל המדיניות שלה (לדוגמה, מדיניות התיקון האוטומטי והעדכון של הקבוצה), משתמשים במסוף, ב-ה-CLI של gcloud או ב-REST.

כדי לראות את הערך של id בקבוצה, צריך להשתמש ב-CLI של gcloud או ב-Compute Engine API.

המסוף

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

    כניסה לדף Instance groups.

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

  2. בעמודה שם ברשימה, לוחצים על השם של קבוצת ה-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 אזורי, מבצעים קריאה ל-instanceGroupManagers.get. כדי להפעיל קריאה ל-regionInstanceGroupManagers.get עבור קבוצות אזוריות של מכונות וירטואליות,

GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group

התשובה כוללת פרטים על הקבוצה, כולל מדיניות מצורפת, למעט מדיניות ההתאמה האוטומטית לעומס של הקבוצה. למרות שהתאמה אוטומטית לעומס (automatic scaling) היא תכונה של קבוצות MIG, היא משאב REST נפרד.

מדיניות התאמה אוטומטית לעומס

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

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

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

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

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

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

המסוף

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

    כניסה לדף Instance groups

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

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

    • אם בדיקת התקינות נכשלת:

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

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

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

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

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

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

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

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

איך צופים בסטטוס של פרוסת TPU

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

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

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

המסוף

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

    כניסה לדף 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 slice, שולחים בקשת 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 אזורי, משתמשים בשיטה 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 מספקת את המופעים ומפעילה את הקישוריות בין השבבים. גודל היעד של ה-MIG שווה לגודל הפרוסה.
ACTIVE הפרוסה פועלת באופן מלא. ל-MIG יש את המספר הנדרש של מופעים במצב RUNNING.
REACTIVATING הפרוסה נכשלה בגלל בעיה במארח או בחיבור בין השבבים. ‫Compute Engine מנסה להפעיל מחדש את טופולוגיית המאיץ. גודל ה-MIG הוא גודל הפרוסה וכל המופעים נמצאים במצב REPAIRING.
DEACTIVATING הפרוסה עוברת דפורמציה כי Compute Engine מבטל את ההקצאה של המכונות. הגודל של קבוצת ה-MIG נקבע כ-0, ולפחות מופע אחד נמצא במצב STOPPING, STOPPED או TERMINATED.
FAILED הפילוח נכשל. המצב הזה מתרחש בתרחישים הבאים:
  • אם מוחקים או מפסיקים מופע, או מפסיקים מופע מתוך מערכת ההפעלה.
  • ב-MIG שמשתמש במודל הקצאת משאבים של מכונות Spot, כש-VM במודל Spot נדחקת וערך המשתנה automaticRestart מוגדר ל-false.
ה-MIG לא מפעיל מחדש באופן אוטומטי פרוסה שנכשלה. כדי ליצור מחדש את הפרוסה, צריך למחוק את ה-MIG וליצור אותו מחדש, או לשנות את הגודל של ה-MIG ל-0 ואז להגדיל אותו.

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

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

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

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

המסוף

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

    כניסה לדף Instance groups.

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

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

הצגת רשימה של שגיאות במכונות

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

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

המסוף

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

    כניסה לדף Instance groups

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

רשימת השגיאות האפשריות כוללת, בין היתר, את הדוגמאות הבאות:

  • אי אפשר ליצור מכונה חדשה בגלל:
    • הקיבולת שניתן לקטוע לא זמינה.
    • מכסה לא מספיקה, למשל למעבדים באזור מסוים.
    • הגעתם למגבלה על מספר מכונות ה-VM ברשת שמשויכת לקבוצה.
    • תמונת הדיסק שצוינה בשדה properties.disks[].initializeParams.sourceImage בתבנית המופע נמחקה, או שההרשאות שלה השתנו.
    • כרטיס האשראי בחשבון לחיוב שמשויך לפרויקט דחה תשלום.
  • אי אפשר למחוק מופע קיים כי:
    • לחשבון השירות שבו הקבוצה משתמשת אין הרשאה compute.instances.delete.
    • הוגשו יותר מדי בקשות מחיקה בו-זמנית, מעבר למגבלות הקצב.
  • אי אפשר להוסיף מופע למאגר יעד כי מאגר היעד נמחק.

אחרי שבודקים את השגיאות האלה, אפשר לצמצם אותן. לדוגמה:

  • מעבירים את עומס העבודה לאזור אחר שיש בו קיבולת שניתנת להפסקת פעולה.
  • שליחת בקשה להגדלת המכסה באזור מסוים.
  • מוסיפים את ההרשאה compute.instances.delete לחשבון השירות שבו משתמשת הקבוצה.

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

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

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

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

המסוף

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

    כניסה לדף VM instances

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

REST

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

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

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

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

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

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

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