יש כמה בעיות שיכולות למנוע מקבוצת מופעי מכונה מנוהלים (MIG) ליצור או ליצור מחדש מכונות וירטואליות.
אם נוצרים יומנים לקבוצת MIG שנמחקה
יכול להיות שהבעיה קשורה למצבים הבאים.
ההגדרה המצורפת של התאמה אוטומטית לעומס עדיין קיימת
אם מחקתם קבוצת MIG באמצעות Compute Engine API ולא שלחתם בקשה נפרדת למחיקת ה-autoscaler המצורף, יכול להיות שיופיעו ב-Logs Explorer יומנים עם ההודעה הבאה.
The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/DELETED_INSTANCE_GROUP_NAME' was not found.
פתרון:
כדי לפתור את הבעיה, צריך למחוק את המידרוג האוטומטי המצורף באמצעות השיטות של Compute Engine API:
- כדי להגדיר התאמה אוטומטית של קבוצת מכונות וירטואליות מנוהלת באזור, משתמשים ב-
autoscalers.deletemethod. - למידרוג אוטומטי של MIG אזורי, השתמשו ב-
regionAutoscalers.deletemethod.
אם קבוצת ה-MIG לא יכולה ליצור או ליצור מחדש מכונות
יכול להיות שהבעיה קשורה למצבים הבאים.
דיסק האתחול כבר קיים
כברירת מחדל, כשיוצרים מכונה נוצר דיסק אחסון מתמיד (persistent disk) חדש לאתחול.
השם של דיסק האתחול זהה לשם של המכונה הווירטואלית. אם נותנים למכונה הווירטואלית את השם my-instance, גם הדיסק מקבל את השם my-instance. אם כבר קיים דיסק אחסון מתמיד (persistent disk) בשם הזה, הבקשה תיכשל. כדי לפתור את הבעיה, אפשר ליצור קובץ snapshot ואז למחוק את הדיסק הקיים מסוג persistent disk.
התבנית של הגדרות המכונה לא תקינה
אם עדכנתם לאחרונה את תבנית המכונה, יכול להיות שיש מאפיין לא תקין שגורם לכך שקבוצת המכונות המנוהלות לא מצליחה ליצור את המכונה הווירטואלית. בודקים את המאפיינים כדי לראות אם יש בהם את השגיאות הנפוצות הבאות:
- ציינתם משאב שלא קיים, כמו תמונת מקור.
- אייתתם את שם המשאב באופן שגוי.
- ניסיתם לצרף דיסק אחסון מתמיד (persistent disk) קיים שאינו דיסק אתחול (non-boot) במצב קריאה/כתיבה, אבל הקבוצה שלכם מכילה יותר ממכונה וירטואלית אחת. בקבוצות עם יותר ממכונה וירטואלית אחת, אפשר לצרף דיסקים נוספים שרוצים לשתף בין כל המכונות הווירטואליות בקבוצה רק במצב קריאה בלבד.
חריגה מהמגבלה של סוג המשאב
השגיאה הבאה מתרחשת כשמנסים ליצור יותר מ-2,000 מכונות וירטואליות ב-MIG אזורי, או יותר מ-1,000 מכונות וירטואליות ב-MIG של אזור. הגעת למגבלת הגודל של קבוצת המכונות.
הודעת שגיאה:
ERROR: (gcloud.compute.<INSTANCE_GROUP_TYPE>.<METHOD>) Could not fetch resource: - Exceeded limit 'MAX_INSTANCES_IN_INSTANCE_GROUP' on resource 'PROJECT_ID'. Limit: NUMBER
פתרון:
כדי לפתור את הבעיה תוכלו לנסות אחד מהפתרונות הבאים:
- אם אתם משתמשים ב-MIG אזורי, השתמשו במקום זאת ב-MIG אזורי.
- יוצרים כמה קבוצות MIG ומפצלים את עומס העבודה ביניהן, למשל על ידי שינוי ההגדרות של איזון העומסים.
- אם אתם עדיין צריכים קבוצה גדולה יותר, אתם יכולים להגדיל את מגבלת הגודל של ה-MIG או לפנות לתמיכה כדי לשלוח בקשה.
אם לא מצליחים למחוק את ה-MIG או את המכונות שלו
יכול להיות שהבעיה קשורה למצב הבא.
המשאב לא נמצא באזור או במחוז
השגיאה הבאה מתקבלת כשמנסים למחוק קבוצת MIG אזורית ומציינים את הדגל --zone, לא מציינים אזור או מציינים אזור שגוי.
שגיאה דומה יכולה להתרחש אם מנסים למחוק קבוצת MIG אזורית ומציינים את הדגל --region.
הודעת שגיאה:
ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed: ‐ The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed: ‐ The resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
פתרון:
כדי לפתור את הבעיה תוכלו לנסות אחד מהפתרונות הבאים:
- מוסיפים לפקודה את הדגל המתאים,
--regionאו--zone. - הגדרת אזור ותחום כברירת מחדל
המשאב נמצא בשימוש של שירות לקצה העורפי
אי אפשר להסיר קבוצת מכונות אם היא משמשת שירות לקצה העורפי של מאזן עומסים. כדי למחוק את קבוצת המכונות, צריך להסיר את המכונה מהשירות לקצה העורפי.
הודעת שגיאה:
ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed: ‐ The instance_group_manager resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE
ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed: ‐ The instance_group_manager resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE
פתרון:
אופציונלי: מרוקנים את קבוצת השרתים העורפיים.
רק במאזני עומסים של שרתי proxy, אפשר להגדיר את מגדיל הקיבולת לערך
0.0לפני שמסירים את קבוצת המכונות משירות לקצה העורפי. אפשר להגדיר את קנה המידה של הקיבולת לאפס באמצעות הפקודהgcloud compute backend-services edit.במאזני עומסים מסוג proxy ו-pass-through, אם מפעילים זמן להשלמת תהליך (connection draining) בשירות לקצה העורפי, Google Cloud מנסה לאפשר לחיבורים הקיימים להמשיך, להסתיים ולהתרוקן בכל פעם שקבוצת מכונות מוסרת משירות לקצה העורפי.
מסירים את קבוצת ה-MIG מהשירות לקצה העורפי האזורי או הגלובלי.
לקבוצת MIG אזורית, מריצים את הפקודה הבאה:
gcloud compute backend-services remove-backend BACKEND_SERVICE \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=ZONE \ [--region=REGION | --global]לקבוצת MIG אזורית, מריצים את הפקודה הבאה:
gcloud compute backend-services remove-backend BACKEND_SERVICE \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-region=REGION \ [--region=REGION | --global]
מוחקים את ה-MIG:
gcloud compute instance-groups managed delete INSTANCE_GROUP_NAME
אם קבוצת ה-MIG מנסה ליצור מחדש מכונות באופן רציף
יכול להיות שהבעיה קשורה למצב הבא.
בדיקות התקינות לא יכולות להגיע למכונה
אם הגדרתם מדיניות של תיקון תוכנה אוטומטי אבל לא הגדרתם את כלל חומת האש שמאפשר לבדיקות התקינות להגיע לאפליקציה, או שהגדרתם אותו בצורה שגויה, המכונות הווירטואליות יופיעו כלא תקינות וקבוצת ה-MIG תנסה ליצור אותן מחדש באופן רציף. במאמר דוגמה להגדרה של בדיקת תקינות מוסבר איך מגדירים כלל של חומת אש לבדיקת תקינות.
אם קבוצת ה-MIG לא מפוזרת באופן שווה בין האזורים או אם היא משתמשת בסוגי מכונות לא צפויים
אם קבוצת ה-MIG האזורית או קבוצת ה-MIG עם הפעלה גמישה של מכונות פועלת, אבל אתם חושדים שהמכונות לא מפוזרות בין האזורים כמו שצריך, או שהקבוצה מסתמכת על סוגי מכונות חלופיים, אתם יכולים לעקוב אחרי הפיזור בפועל של המכונות שהוקצו בהצלחה.
אתם יכולים לראות את התפלגות המכונות בזמן הריצה של קבוצת MIG ספציפית או נתונים נצברים של כמה קבוצות MIG. חשוב לזכור שמעקב אחרי התפלגות המכונות מאפשר לראות את המכונות שהוקצו, אבל לא לזהות את הסיבות הבסיסיות לכשלים ביצירה או למגבלות הקיבולת. במאמר מעקב אחרי התפלגות המכונות בקבוצות MIG מוסבר איך לראות את התפלגות המכונות.
אם חסרים יומנים של חוסרים במלאי או שהם מופיעים באופן לא צפוי בקבוצת MIG עם הפעלה גמישה של מכונות
אם אתם לא רואים ב-Cloud Logging את יומני החוסרים במלאי שציפיתם לראות, או אם הם מופיעים באופן לא צפוי בקבוצת MIG עם הפעלה גמישה של מכונות, כדאי לבדוק את ההתנהגויות הבאות:
דירוגים שדילגתם עליהם לא מתועדים כשגיאות חוסר זמינות: לפני שקבוצת MIG יוצרת מכונות וירטואליות, היא בודקת את הקיבולת בכל בחירות המכונות. אם סוגי המכונות בעדיפות גבוהה יותר לא זמינים, קבוצת ה-MIG מדלגת עליהם ומקצה מכונות באמצעות האפשרויות הזמינות בעדיפות נמוכה יותר. מכיוון ש-Compute Engine מתעד ביומן שגיאות
ZONE_RESOURCE_POOL_EXHAUSTEDרק כשלא מצליחים ליצור מכונה וירטואלית, לא תראו שגיאות חוסר זמינות ב-Logging לסוגי מכונות בעדיפות גבוהה יותר שדילגתם עליהם במהלך בדיקות הקיבולת.תיקוני VM עשויים לתעד שגיאות חוסר זמינות עבור סוג המכונה המקורי: אם האפשרות עדכון בתיקון מופעלת, קבוצת MIG מנסה ליצור מחדש מכונה וירטואלית שנכשלה באמצעות סוג המכונה המקורי שלה, תוך בדיקת הזמינות של סוגי מכונות חלופיים. כתוצאה מכך, יכול להיות שתראו שגיאות חוסר זמינות של סוג המכונה המקורי, למרות שקבוצת ה-MIG בודקת או משתמשת בסוגי מכונות חלופיים.
למידע נוסף, ראו הערכת קיבולת ורישום שגיאות ביומן.