כשיוצרים קבוצה של מופעי מכונה בניהול אזורי (MIG) או מגדילים את גודל היעד שלה, Compute Engine בודק בזמן אמת את זמינות המשאבים כדי לפזר מכונות חדשות בין תחומים וסוגי מכונות. במהלך התהליך הזה, Compute Engine מתעד רשומה ביומן של התפלגות המכונות ב-Cloud Logging.
במאמר הזה מוסבר איך להציג ולפרש את יומני חלוקת המכונות האלה. בנוסף, מוסבר איך להשתמש ביומנים האלה כדי לחקור הקצאות בהמתנה ולהגדיר התראות.
כדי לראות את ההתפלגות בפועל של המכונות הפועלות, קראו את המאמר מעקב אחרי התפלגות המכונות בקבוצות MIG.
מידע על יומני ההפצה של המופעים
יומני חלוקת המכונות מספקים תמונת מצב חד-פעמית של ההקצאות המתוכננות של קבוצת המכונות המנוהלת למכונות. ביומנים האלה, מכונה שהוקצתה היא מכונה שקבוצת ה-MIG מצאה לה קיבולת, והיא מתכננת ליצור את המכונה בסוג המכונה ובאזור הזה. הקצאת גודל לא אומרת שהמכונות כבר נוצרו בהצלחה.
מכיוון שהיומנים מספקים תמונת מצב, Compute Engine לא מעדכן את היומנים האלה כשקבוצת ה-MIG יוצרת את המכונות הנותרות מאוחר יותר. הרשומה ביומן מאפשרת לראות את הפרטים הבאים:
Machine type distribution: מספר המכונות שהוקצו לכל סוג מכונה בקבוצת ה-MIG. המידע הזה מופיע רק בקבוצות MIG אזוריות שמשתמשות בהפעלה גמישה של מכונות.
התפלגות לפי אזור: מספר המכונות שהוקצו לכל אזור בקבוצת המכונות המנוהלת.
Instances awaiting capacity: מספר המכונות שה-MIG לא הצליח להקצות להן קיבולת באופן מיידי, והוא מחפש קיבולת באופן פעיל.
מגבלות
יומני ההפצה של המכונות זמינים רק לקבוצות MIG אזוריות.
בקבוצות MIG אזוריות שמשתמשות בצורת חלוקת היעד
EVENבלי התאמה אוטומטית לעומס, רשומת היומן כוללת רק את השדותoldSize,newSize,deltaSizeו-targetShape, בלי פרטים על חלוקת המכונות.Compute Engine מתעד ביומן את פרטי ההפצה של המכונות רק כשיוצרים קבוצת MIG או מגדילים את גודל היעד שלה. Compute Engine לא מתעד את הפרטים האלה כשהגודל של קבוצת היעד קטן, או במהלך פעולות של תיקון, יצירה מחדש ועדכון של מכונות.
הצגת יומני ההפצה של המכונות בקבוצת MIG ספציפית
כדי לראות את יומני חלוקת המכונות של קבוצת MIG ספציפית, משתמשים באחת מהאפשרויות הבאות:
המסוף
אפשר לראות את היומנים של MIG ספציפי ישירות מדף הפרטים של קבוצת המכונות.
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת המכונות המנוהלת שרוצים להציג.
לוחצים על הכרטיסייה מעקב.
בחלונית הימנית, לוחצים על Logs.
במסנן של תוצאות היומן, מקלידים
instanceDistributionולוחצים על Enter.כדי לראות את נתוני ההתפלגות של המכונות, מרחיבים את הרשומה ביומן ואז מרחיבים את
protoPayload.metadata.details.
gcloud
כדי להציג את יומני חלוקת המכונות של קבוצת MIG ספציפית, משתמשים בפקודה gcloud logging read:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \ protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \ resource.labels.instance_group_manager_name=\"MIG_NAME\""
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.
MIG_NAME: שם ה-MIG.
REST
כדי להציג את יומני חלוקת המכונות של קבוצת MIG ספציפית, שולחים בקשת POST אל ה-method entries.list.
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND resource.labels.instance_group_manager_name=\"MIG_NAME\""
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.
MIG_NAME: שם ה-MIG.
מידע נוסף על כל שדה ביומן מופיע במאמר רשומת יומן של הפצת מכונות.
הצגת כל יומני ההפצה של המכונות בפרויקט
כדי לראות את כל יומני ההפצה של המכונות בפרויקט, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף Logs Explorer במסוף Google Cloud .
מזינים שאילתה. הנה כמה דוגמאות:
כדי לראות את כל יומני ההפצה של המכונות בפרויקט:
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
כדי לראות את יומני ההפצה של המכונות שבהם חלק משינוי הגודל עדיין ממתין לקיבולת:
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution" protoPayload.metadata.details.data.activeSeekDeltaSize > 0
מחליפים את
PROJECT_IDבמזהה הפרויקט.לוחצים על Run query.
בתוצאות, מרחיבים את הרשומה ביומן.
- כדי לראות את הסיכום והנתונים, מרחיבים את
protoPayload.metadata.details. - כדי לראות את הסיכום בכל שורה, לוחצים על
messageובוחרים באפשרות Add field to summary line.
- כדי לראות את הסיכום והנתונים, מרחיבים את
gcloud
כדי לראות את יומני ההפצה של המכונות, משתמשים בפקודה gcloud logging read.
- כדי לראות את כל יומני ההפצה של המכונות בפרויקט:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \ protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
- כדי להציג את כל היומנים בפרויקט מהיום האחרון, מציינים את הדגל
--freshness=1dבאופן הבא:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\"" \
--freshness=1d
- כדי לראות את יומני ההפצה של המכונות שבהם חלק משינוי הגודל עדיין ממתין לקיבולת:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
מחליפים את PROJECT_ID במזהה הפרויקט.
REST
כדי לראות את יומני ההפצה של המכונה, שולחים בקשת POST אל ה-method entries.list.
- כדי לראות את כל יומני ההפצה של המכונות בפרויקט:
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
}
- כדי להציג את כל היומנים בפרויקט מהיום האחרון, מוסיפים תנאי
timestampלמסנן:
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND timestamp >= \"YYYY-MM-DDThh:mm:ssZ\""
}
- כדי לראות את יומני ההפצה של המכונות שבהם חלק משינוי הגודל עדיין ממתין לקיבולת:
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.
YYYY-MM-DDThh:mm:ssZ: חותמת הזמן של שעת ההתחלה לפי RFC 3339. לדוגמה:2024-10-22T00:00:00Z.
מידע נוסף על כל שדה ביומן מופיע במאמר רשומת יומן של הפצת מכונות.
רשומה ביומן של התפלגות המכונות
בהמשך מוצגת רשומה לדוגמה ביומן (protoPayload.metadata.details). מכיוון שהאירוע הזה הוא תמונת מצב חד-פעמית, הרשומה ביומן לא מתעדכנת כשנוצרים המופעים הנותרים בשלב מאוחר יותר. הרשומה ביומן מאפשרת לראות את הפרטים הבאים:
details.data: הצגת הפרטים המובְנים של התפלגות המכונות.
details.message: סיכום של התפלגות המכונות.
בדוגמה הזו, קבוצת MIG אזורית עם הפעלה גמישה של מכונות מתרחבת אופקית מ-0 ל-100. קבוצת ה-MIG מקצה מיד 80 מתוך 100 המכונות החדשות לשתי בחירות של מכונות מדורגות (20 מכונות מסוג c2-standard-4 בבחירה rank2-c2 ו-60 מכונות מסוג n2d-standard-4 בבחירה rank3-n2d). בנוסף, ברשומה מוצג ש-40 מכונות מוקצות ל-us-central1-b ול-us-central1-c, כל אחת. ב-20 המכונות הנותרות (activeSeekDeltaSize), קבוצת המכונות המנוהלת ממשיכה לחפש קיבולת בכל המכונות והאזורים שהוגדרו. בקבוצות MIG אזוריות בלי הפעלה גמישה של מכונות, רשומת היומן לא כוללת את השדה instanceSelections ומוצגת רק ההתפלגות לפי אזור.
"metadata": {
"details": {
"data": {
"oldSize": 0,
"newSize": 100,
"deltaSize": 100,
"targetShape": "BALANCED",
"activeSeekDeltaSize": 20,
"instanceSelections": {
"rank1-n2": {
"rank": 1,
"machineSelections": [
{
"machineType": "n2-standard-4",
"allocatedSize": 0
}
]
},
"rank2-c2": {
"rank": 2,
"machineSelections": [
{
"machineType": "c2-standard-4",
"allocatedSize": 20
}
]
},
"rank3-n2d": {
"rank": 3,
"machineSelections": [
{
"machineType": "n2d-standard-4",
"allocatedSize": 60
}
]
}
},
"zonalDistribution": {
"us-central1-a": {
"allocatedSize": 0
},
"us-central1-b": {
"allocatedSize": 40
},
"us-central1-c": {
"allocatedSize": 40
}
}
},
"message": "Increasing MIG target size from 0 to 100 instances (+100).
Allocated 80 of 100 new instances. Allocated instances across instance
selections: rank2-c2 (rank 2; c2-standard-4: 20); rank3-n2d (rank 3;
n2d-standard-4: 60). Allocated instances across zones based on target
distribution shape BALANCED: us-central1-a: 0, us-central1-b: 40,
us-central1-c: 40. MIG continues to allocate the remaining 20 new instances
across all instance selections and zones. The final distribution across zones
and machine types may differ as instances are created. View the group's
instances for the current distribution."
}
}
בטבלה הבאה מתוארים כל השדות ברשומת יומן.
| שדה | תיאור |
|---|---|
details.data.oldSize |
גודל היעד של קבוצת ה-MIG האזורית לפני פעולת שינוי הגודל. |
details.data.newSize |
גודל היעד המבוקש של ה-MIG האזורי. |
details.data.deltaSize |
השינוי בגודל היעד (newSize - oldSize).
|
details.data.targetShape |
צורת ההתפלגות של קבוצת המכונות המנוהלת האזורית. |
details.data.activeSeekDeltaSize |
מספר המכונות החדשות שקבוצת המכונות המנוהלת (MIG) עדיין מחפשת להן קיבולת, בכל המכונות והאזורים שהוגדרו. השדה הזה מושמט כשהערך שלו הוא 0.
|
details.data.instanceSelections |
בחירות המכונות שהוגדרו, שנבדקו במהלך ההקצאה. השדה הזה מופיע רק בקבוצות MIG שמשתמשות בהפעלה גמישה של מכונות. כל מפתח הוא השם של בחירת מכונה, והערך שלו מכיל את השדות הבאים:
|
details.data.zonalDistribution |
האזורים שהוגדרו והקצאת המכונות ביניהם. כל מפתח הוא שם של אזור, והערך שלו מכיל את מספר המכונות שהוקצו באזור הזה (allocatedSize).
|
details.message |
הודעת סיכום שמתארת את התפלגות המכונות, כולל מספר המכונות שהוקצו ופרטי הקיבולת המבוקשת. |
פירוש יומני ההפצה של המופעים
ביומן חלוקת המכונות מוצגת תמונת מצב של התוכנית של קבוצת ה-MIG ליצירת מכונות וירטואליות. מכיוון שהיומן מציין שקבוצת ה-MIG מקצה מכונות לפני שהן נוצרות, צריך להשתמש בנתוני היומן לצד הסטטוס של המכונה והודעות השגיאה כדי להבין את ההתנהגות בפועל של קבוצת ה-MIG.
אתם יכולים להיעזר בטבלה הבאה כדי לפרש פלטים נפוצים של יומנים ולקבוע אם צריך לבצע פעולה:
| פלט של יומן הרישום | הסבר | הפעולה המומלצת |
|---|---|---|
activeSeekDeltaSize גדול מ-0 |
קבוצת ה-MIG לא הצליחה למצוא מספיק קיבולת כדי למלא את כל הבקשה לשינוי כמות באופן מיידי. קבוצת ה-MIG ממשיכה לנסות ליצור את המכונות שנשארו בכל האפשרויות שהוגדרו. | בודקים את השגיאות במכונות של ה-MIG כדי להבין למה לא נוצרו מכונות. כדאי להוסיף סוגי מכונות ממשפחות מכונות אחרות, להוסיף אזורים או לבדוק את המכסות. |
לבחירה עם עדיפות גבוהה יותר (מספר דירוג נמוך יותר) יש
allocatedSize של 0 |
בזמן קבלת ההחלטה, קבוצת ה-MIG בדקה את סוגי המכונות המועדפים עליכם, אבל לא מצאה מספיק קיבולת. במקום זאת, קבוצת ה-MIG השתמשה בבחירה בעדיפות נמוכה יותר (מספר דירוג גבוה יותר). Compute Engine לא מתעד ביומן שגיאות של מכונות שדילגתם על הבחירה שלהן. | אם קבוצת ה-MIG מדלגת לעיתים קרובות על האפשרות המועדפת, כדאי להוסיף עוד סוגי מכונות לאפשרות המועדפת או להסכים לאפשרויות בעדיפות נמוכה יותר. |
לאזור שהוגדר יש allocatedSize של
0 |
קבוצת ה-MIG לא הקצתה מכונות חדשות באזור הזה. | אם צורת היעד היא ANY או ANY_SINGLE_ZONE, ההתפלגות הלא אחידה הזו היא תקינה.
אחרת, צריך לבדוק את המכסה, את המקומות השמורים ואת התמיכה באזורים של תבנית של הגדרות מכונה. |
סוג מכונה חסר בסיכום של message |
קבוצת ה-MIG לא השתמשה בסוג המכונה הזה להקצאה. | בודקים את הבלוק המובנה של details.data. בהודעת הסיכום לא מופיעות הבחירות וסוגי המכונות שקיבלו 0 מכונות חדשות, אבל בנתונים המובְנים מפורטות כל האפשרויות שנבדקו. |
בדיקת הקצאות של מכונות בהמתנה
אם קבוצת ה-MIG עדיין ממתינה לקיבולת (activeSeekDeltaSize > 0), אפשר לבדוק את הדברים הבאים כדי להבין את הסיבות להקצאות בהמתנה:
בדיקת שגיאות ביצירת מכונות כדי לבדוק אם יצירת המכונה נכשלה אחרי שהוקצתה קיבולת ל-MIG, או אם המכונות עדיין ממתינות לקיבולת, בודקים את השגיאות במכונה. מידע נוסף זמין במאמר רשימת שגיאות של מכונות.
בדיקת סטטוס המכונה כדי לראות את הסטטוס ואת הפעולה הנוכחית של כל מכונה, מציגים את המכונות ב-MIG ובודקים את השדה
instanceStatusשלהן. מידע נוסף זמין במאמר בדיקת הסטטוס של מכונות מנוהלות.בודקים את ההגדרות האישיות. אם הגדרתם מדיניות גמישות של מכונות בקבוצת המכונות המנוהלות, בדקו את המכסות האזוריות של משפחות המכונות במדיניות. בנוסף, צריך לוודא שהאזורים שבחרתם תומכים בסוגי המכונות שביקשתם. למידע נוסף, קראו את המאמרים איך רואים ומנהלים את המכסות? ואזורים זמינים.
יצירת מדיניות התראות על סמך יומנים
כדי לקבל התראה כשפעולות שינוי הגודל של קבוצת MIG ממתינות לקיבולת, אתם יכולים ליצור מדיניות התראות מבוססת-יומנים ב-Logs Explorer. לדוגמה, אפשר להפעיל התראה כש-activeSeekDeltaSize גדול מ-0.
כדי ליצור את ההתראה הזו:
נכנסים לדף Logs Explorer במסוף Google Cloud .
מזינים את השאילתה הבאה:
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution" protoPayload.metadata.details.data.activeSeekDeltaSize > 0
מחליפים את
PROJECT_IDבמזהה הפרויקט.לוחצים על Run query כדי לאמת את השאילתה.
יוצרים את מדיניות ההתראות לפי ההוראות בקטע יצירת מדיניות התראות מבוססת-יומנים במסמכי התיעוד של Cloud Logging.
המאמרים הבאים
- איך קבוצות MIG אזוריות מחלקות את המכונות בין אזורים
- איך בוחרים כמה סוגי מכונות בקבוצות MIG
- הצגת ההגדרות של הפעלה גמישה של מכונות ב-MIG.