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

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

כדי להוסיף או להסיר מכונות וירטואליות בקבוצת MIG, אפשר לבצע את הפעולות הבאות:

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

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

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

    המסוף

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

    gcloud

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

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.

      אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

    REST

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

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

הגדרת גודל היעד של הקבוצה

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

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

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

מידע נוסף זמין במאמר בנושא קבוצות של מופעים עם שינוי גודל אוטומטי.

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

אתם יכולים להשתמש בבקשות לשינוי גודל כדי להוסיף מכונות וירטואליות עם GPU ל-MIG בבת אחת. התכונה הזו עוזרת לכם להימנע מחיובים על קיבולת חלקית בזמן ש-Compute Engine מקצה את כל המשאבים. בקשות לשינוי גודל של MIG משתמשות במודלים של הקצאת משאבים מסוג flex-start או reservation-bound. המודלים האלה מאפשרים לכם לקבל מעבדי CPU ו-GPU וירטואליים במחיר מוזל.

מידע נוסף זמין במאמר מידע על בקשות לשינוי כמות בקבוצת MIG.

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

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

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

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

המסוף

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

    כניסה לדף Instance groups

  2. בעמודה Name ברשימה, לוחצים על השם של קבוצת המופעים שרוצים לשנות את הגודל שלה.

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

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

  5. בשדה Number of instances (מספר המכונות), מציינים את מספר המכונות שרוצים לכלול בקבוצת מופעי מכונה מנוהלים זו.

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

  6. לוחצים על שמירה כדי להחיל את התבנית החדשה.

gcloud

משתמשים בפקודה resize.

gcloud compute instance-groups managed resize INSTANCE_GROUP_NAME \
    --size NEW_SIZE \
    --zone ZONE

REST

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resize?size=NEW_SIZE

אם קבוצת המכונות היא קבוצת מופעי מכונה מנוהלים אזורית, מחליפים את zones/ZONE ב-regions/REGION.

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

השבתה של מצב הניסיונות החוזרים ליצירה במהלך פעולת שינוי גודל

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

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

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

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

מגבלות

כדי להשבית את מצב הניסיונות החוזרים ליצירה בזמן שינוי הגודל של קבוצת MIG, משתמשים ב-Google Cloud CLI או ב-REST.

gcloud

משתמשים בפקודה beta resize עם הדגל --no-creation-retries.

gcloud beta compute instance-groups managed resize INSTANCE_GROUP_NAME \
    --size NEW_SIZE \
    --no-creation-retries \
    [--region REGION | --zone ZONE]

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_GROUP_NAME: השם של קבוצת המכונות המנוהלת שרוצים לשנות את הגודל שלה.
  • ‫NEW_SIZE: מספר היעד של המכונות הפועלות בקבוצת מכונות מנוהלת.
  • ‫ZONE: ב-MIG אזורי, האזור שבו נמצא ה-MIG.
  • ‫REGION: במקרים של קבוצות אזוריות של מכונות מנוהלות, האזור שבו נמצאת הקבוצה.

REST

אם מדובר ב-MIG אזורי, משתמשים בשיטה beta instanceGroupManagers.resizeAdvanced. אם מדובר ב-MIG אזורי, משתמשים בשיטה beta regionInstanceGroupManagers.resizeAdvanced. מציינים את הגודל החדש של הקבוצה ואת השדה noCreationRetries בגוף הבקשה.

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

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeAdvanced

{
 "targetSize": NEW_SIZE,
 "noCreationRetries": true
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫ZONE: האזור שבו נמצאת קבוצת ה-MIG. בשביל קבוצת MIG אזורית, מחליפים את zones/ZONE ב-regions/REGION ומציינים את האזור. מידע נוסף זמין במאמר מידע על קבוצות אזוריות של מכונות וירטואליות לניהול מופעים.
  • ‫INSTANCE_GROUP_NAME: השם של קבוצת המכונות המנוהלת שרוצים לשנות את הגודל שלה.
  • ‫NEW_SIZE: מספר היעד של המכונות הפעילות בקבוצת המכונות המנוהלת.

    כדי לראות אילו מופעים נוצרים ובאיזה מצב, אפשר להשתמש ב-method‏ listManagedInstances. כשמשביתים את מצב הניסיונות החוזרים ליצירה, למופעים שיוצרים יש currentAction של CREATING_WITHOUT_RETRIES.

הוספה, הסרה או ביטול של מופעים ספציפיים

בקטעים הבאים מוסבר איך להוסיף, להסיר או לבטל מופעים ספציפיים ב-MIG.

יצירת מכונות עם שמות ספציפיים ב-MIG

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

השמות שאתם מקצים למופעים האלה נשמרים אם ה-MIG יוצר אותם מחדש. מידע נוסף על שמירת הסטטוס של מופעי MIG זמין במאמר בנושא קבוצות MIG עם שמירת סטטוס.

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

מגבלות

אם יוצרים מכונות עם שמות ספציפיים:

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

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

gcloud

משתמשים בפקודה instance-groups managed create-instance.

gcloud compute instance-groups managed create-instance INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    [--region REGION | --zone ZONE]

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_GROUP_NAME הוא השם של ה-MIG האזורי או האזורי שאליו רוצים להוסיף מופע חדש.
  • ‫INSTANCE_NAME הוא השם שרוצים להקצות למופע החדש.

REST

שליחת בקשת POST ל-method‏ regionInstanceGroupManagers.createInstances. כדי להשתמש בקבוצה של מופעי מכונה מנוהלים אזוריים, משתמשים בשיטה instanceGroupManagers.createInstances. בגוף הבקשה, כוללים את השדה instances עם שמות של מופע אחד או יותר.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/createInstances
{
  "instances": [
    {
      "name": "INSTANCE_NAME_1"
    },
    {
      "name": "INSTANCE_NAME_2"
    }
  ]
}

מחיקת מקרים ספציפיים מקבוצה

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

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

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

המסוף

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

    כניסה לדף Instance groups

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

  3. בקטע VM instances, בוחרים מכונה אחת או יותר שרוצים למחוק.

  4. לוחצים על Delete.

  5. בתיבת הדו-שיח לאישור המחיקה, מקלידים delete ולוחצים על מחיקה.

    ה-MIG מוחק את המופעים שנבחרו.

gcloud

כדי למחוק מכונה באמצעות ה-CLI של gcloud, משתמשים בפקודה instance-groups managed delete-instances.

gcloud compute instance-groups managed delete-instances INSTANCE_GROUP_NAME \
    --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \ 
    [--region REGION | --zone ZONE]

הפקודה מחזירה את סטטוס הפעולה לכל מופע:

  • הערך SUCCESS מוחזר אם ה-CLI של gcloud מחק את המכונה.
  • הערך FAIL מוחזר לכל המקרים אם יש מופע שציינתם בבקשה שלא נכלל בקבוצה, אם יש חבר שכבר נמצא בתהליך של מחיקה או הסרה, או אם הבקשה נכשלת מסיבה אחרת.
  • ‫SKIPPED מוחזר רק אם משתמשים בדגל --skip-instances-on-validation-error והמופע לא חבר בקבוצה או שהוא כבר נמחק או ננטש.
  • הערך MEMBER_NOT_FOUND מוחזר רק לקבוצות אזוריות אם ה-CLI של gcloud לא הצליח לפענח את האזור משם המכונה.

אם אתם צופים שהבקשה למחיקה עלולה להתנגש עם פעולות מקבילות, השתמשו בדגל --skip-instances-on-validation-error. הדגל הזה מציין אם הבקשה צריכה להתבצע גם אם היא כוללת מקרים שלא שייכים לקבוצה או שכבר נמצאים בתהליך של מחיקה או ביטול – לדוגמה, מקרים שנמחקים על ידי קנה מידה אוטומטי. כברירת מחדל, אם משמיטים את הדגל הזה ומציינים מופע כזה בבקשה, הפעולה נכשלת. הפעולה תמיד נכשלת אם הבקשה מכילה שם מכונה בפורמט לא תקין או הפניה למכונה שקיימת באזור או באזור אחר מלבד האזור או האזור של הקבוצה.

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

gcloud compute instance-groups managed delete-instances example-mig \
    --instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \
    --region=us-central1 \
    --skip-instances-on-validation-error

בדוגמה הזו, שלוש דוגמאות לא עברו את האימות, ולכן הן דולגו, ואילו example-instance-3 נמחק:

Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig].
PROJECT          ZONE           INSTANCE               STATUS   VALIDATION_ERROR
example-project  us-central1-a  example-instance-1     SKIPPED  Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-1 that was already deleted.
example-project  us-central1-a  example-instance-2     SKIPPED  Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-2 that was already abandoned.
example-project  us-central1-a  example-instance-3     SUCCESS
example-project  us-central1-a  example-instance-4     SKIPPED  Cannot find instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-4.

אם לא מציינים את הדגל --skip-instances-on-validation-error ואם מופע כלשהו לא עובר אימות, לא נמחק אף מופע:

gcloud compute instance-groups managed delete-instances example-mig \
    --instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \
    --region=us-central1

Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig].
PROJECT          ZONE             INSTANCE              STATUS
example-project  us-central1-a    example-instance-1    FAIL
example-project  us-central1-a    example-instance-2    FAIL
example-project  us-central1-a    example-instance-3    FAIL
example-project  us-central1-a    example-instance-4    FAIL

REST

שליחת בקשת POST ל-method‏ regionInstanceGroupManagers.deleteInstances. כדי להשתמש בקבוצה של מופעי מכונה מנוהלים אזוריים, משתמשים בשיטה instanceGroupManagers.deleteInstances.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/deleteInstances

{
  "instances": [
    "zones/ZONE/instances/INSTANCE_NAME_1",
    "zones/ZONE/instances/INSTANCE_NAME_2"
   ]
}

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

לדוגמה, הבקשה הבאה למחיקת 2 מכונות תצליח גם אם אחת מהמכונות כבר נמחקה או נמצאת בתהליך מחיקה:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/deleteInstances

{
 "instances": [
  "zones/ZONE/instances/INSTANCE_NAME_1",
  "zones/ZONE/instances/INSTANCE_NAME_2"
 ],
 "skipInstancesOnValidationError": true
}

כדי לראות את המקרים שבהם המערכת דילגה על פעולות, אפשר לעיין בפעולה. בשביל קבוצות אזוריות של מכונות וירטואליות, משתמשים ב-method ‏regionOperations.get. ב-MIG אזורי, משתמשים בשיטה zoneOperations.get. האזהרות מפורטות בשדה האזהרה של הפעולה.

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

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

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

אי אפשר להוסיף מחדש לקבוצה מופע VM שהוצא ממנה. ביטול מופעים מקטין את הערך של targetSize של קבוצת המופעים שצוין, אבל לא משנה את ההגדרות של קנה המידה האוטומטי. קבוצות מנוהלות של מופעי מכונה עם קנה מידה אוטומטי ממשיכות להוסיף או להסיר מופעים באופן אוטומטי לפי הצורך. אם יש לכם קבוצת MIG אזורית עם התאמה אוטומטית לעומס שהוגדרה למצב ONLY_SCALE_OUT, ואתם מבטלים הקצאה של מכונה וירטואלית כדי להקטין את גודל היעד של קבוצת ה-MIG לגודל המומלץ של הכלי להתאמה אוטומטית לעומס, יכול להיות שהכלי להתאמה אוטומטית לעומס ייצור מכונה וירטואלית חדשה באותו אזור של המכונה הווירטואלית שבוטלה ההקצאה שלה. במקרים כאלה, כדי להימנע מיצירה של מכונה וירטואלית חדשה, כדאי לנסות לבטל את המכונה הווירטואלית מאזור אחר.

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

המסוף

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

    כניסה לדף Instance groups

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

  3. בקטע VM instances (מופעי מכונות וירטואליות), בוחרים מופע אחד או יותר שרוצים להסיר מהקבוצה.

  4. לוחצים על הסרה מהקבוצה.

  5. בתיבת הדו-שיח לאישור ההסרה של המופעים שנבחרו, מקלידים remove ולוחצים על הסרה.

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

gcloud

כדי להסיר מכונה וירטואלית מקבוצת מכונות בלי למחוק אותה, משתמשים בפקודה instance-groups managed abandon-instances.

gcloud compute instance-groups managed abandon-instances INSTANCE_GROUP_NAME \
    --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \
    [--region REGION | --zone ZONE]

REST

שליחת בקשת POST ל-method‏ regionInstanceGroupManagers.abandonInstances. כדי להשתמש בקבוצה של מופעי מכונה מנוהלים אזוריים, משתמשים בשיטה instanceGroupManagers.abandonInstances.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/abandonInstances

{
 "instances": [
  "zones/ZONE/instances/INSTANCE_NAME_1",
  "zones/ZONE/instances/INSTANCE_NAME_2"
 ]
}

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

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

אפשר להתאים אישית את השמות של מכונות וירטואליות בקבוצת מופעי מכונה מנוהלים (MIG) על ידי הגדרת השדה baseInstanceName. מערכת Compute Engine יוצרת שמות של מכונות על סמך אחד מהדפוסים הבאים:

  • מספור עוקב: מגדירים את baseInstanceName כמחרוזת שכוללת תו סולמית (#) אחד או יותר כדי להגדיר תבנית מספור. ‫Compute Engine מחליף את התווים # במספרים עוקבים, החל מ-0. מספר התווים של הגיבוב קובע את מספר הספרות המינימלי בשם, ואם צריך מוסיפים אפסים מובילים כדי להשלים את האורך.

    • לדוגמה: "baseInstanceName": "instance-###"
    • שמות מכונות וירטואליות שנוצרו: instance-000, ‏ instance-001, ‏ instance-002.
    • כדי להשתמש במספר התחלתי אחר לרצף, מציינים את המספר בסוגריים אחרי התווים של הסולמית – לדוגמה, PREFIX-###[100] כמו instance-###[100]. התוצאה היא שמות של מכונות וירטואליות: instance-100, ‏instance-101 ו-instance-102.
  • קידומת בהתאמה אישית: מגדירים את baseInstanceName למחרוזת שלא כוללת תווי סולמית (#). ‏ Compute Engine משתמש במחרוזת כקידומת, ומוסיף מקף וארבעה תווים אקראיים.

    • לדוגמה: "baseInstanceName": "my-vm"
    • שמות מכונות ה-VM שנוצרו: my-vm-p4k1, my-vm-n2hr.
  • תחילית ברירת המחדל: אם לא מגדירים את baseInstanceName,‏ Compute Engine משתמש בשם ה-MIG כתחילית, ומוסיף מקף וארבעה תווים אקראיים.

    • דוגמה לשם של MIG: my-mig
    • שמות מכונות ה-VM שנוצרו: my-mig-xz8d, my-mig-4ran.

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

gcloud

כדי להגדיר שמות של מכונות כשיוצרים קבוצת מופעים מנוהלת, משתמשים בפקודה create עם הדגל --base-instance-name:

  gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
      --template INSTANCE_TEMPLATE \
      --size SIZE \
      --base-instance-name BASE_INSTANCE_NAME \
      [--region REGION | --zone ZONE]

כדי להגדיר שמות של מכונות בקבוצת MIG קיימת, משתמשים בפקודה update עם הדגל --base-instance-name:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --base-instance-name BASE_INSTANCE_NAME \
    [--region REGION | --zone ZONE]

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_GROUP_NAME: השם של ה-MIG.
  • ‫INSTANCE_TEMPLATE: השם של תבנית של הגדרות מכונה שבה רוצים להשתמש ליצירת מכונות וירטואליות.
  • ‫SIZE: מספר המכונות הווירטואליות ב-MIG.
  • ‫BASE_INSTANCE_NAME: פורמט השם הבסיסי של המופעים שנוצרו ב-MIG:
    • כדי להשתמש בשמות רציפים, צריך לכלול תו גיבוב אחד (#) או יותר בשם – לדוגמה, PREFIX-### כמו instance-###.
    • כדי להשתמש בקידומת מותאמת אישית עם סיומת אקראית, צריך להשתמש בשם שלא כולל תווים של סולמית – לדוגמה, my-vm.
  • ‫REGION: במקרה של MIG אזורי, האזור שבו נמצא ה-MIG.
  • ‫ZONE: ב-MIG אזורי, האזור שבו נמצא ה-MIG.

REST

כדי להגדיר שמות של מכונות כשיוצרים קבוצת מכונות מנוהלת (MIG), צריך לכלול את השדה baseInstanceName בבקשה ל-method‏ instanceGroupManagers.insert או ל-method‏ regionInstanceGroupManagers.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE",
  "targetSize": "SIZE",
  "baseInstanceName": "BASE_INSTANCE_NAME"
}

כדי להגדיר שמות של מכונות בקבוצת MIG קיימת, כוללים את baseInstanceName בבקשה ל-method‏ instanceGroupManagers.patch או ל-method‏ regionInstanceGroupManagers.patch.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "baseInstanceName": "BASE_INSTANCE_NAME"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫ZONE: ב-MIG אזורי, האזור שבו נמצא ה-MIG.
  • ‫INSTANCE_GROUP_NAME: השם של ה-MIG.
  • ‫INSTANCE_TEMPLATE: השם של תבנית של הגדרות מכונה שבה רוצים להשתמש ליצירת מכונות וירטואליות.
  • ‫SIZE: מספר המכונות הווירטואליות ב-MIG.
  • ‫BASE_INSTANCE_NAME: פורמט השם הבסיסי של המופעים שנוצרו ב-MIG:
    • כדי להשתמש בשמות רציפים, צריך לכלול תו גיבוב אחד (#) או יותר בשם – לדוגמה, PREFIX-### כמו instance-###.
    • כדי להשתמש בקידומת מותאמת אישית עם סיומת אקראית, צריך להשתמש בשם שלא כולל תווים של סולמית – לדוגמה, my-vm.

הגדלת המגבלה על גודל הקבוצה

כברירת מחדל, מגבלת הגודל של קבוצת MIG אזורית היא 1,000 מכונות וירטואליות, ומגבלת הגודל של קבוצת MIG אזורית היא 2,000 מכונות וירטואליות. אפשר להגדיל את המגבלות האלה ל-2,000 מכונות וירטואליות עבור MIG אזורי ו-4,000 מכונות וירטואליות עבור MIG אזורי.

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

המסוף

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

    כניסה לדף Instance groups

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

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

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

  5. בקטע Managed instance list API call results, בוחרים באפשרות Paginated.

  6. לוחצים על שמירה כדי להחיל את השינויים.

gcloud

אם כבר יש לכם MIG, משתמשים בפקודה update:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --list-managed-instances-results=PAGINATED

כדי ליצור קבוצת MIG חדשה, משתמשים בפקודה create:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --list-managed-instances-results=PAGINATED

Terraform

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

בדוגמה הבאה מגדילים את מגבלת הגודל של MIG אזורי. מידע נוסף על המשאב שבו נעשה שימוש בדוגמה זמין במאמר בנושא google_compute_instance_group_managerמשאבים. ב-MIG אזורי, משתמשים ב-google_compute_region_instance_group_manager resource.

resource "google_compute_instance_group_manager" "default" {
  name                           = "my-igm"
  base_instance_name             = "test"
  target_size                    = 7
  zone                           = "us-central1-f"
  list_managed_instances_results = "PAGINATED"
  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

REST

כדי להוסיף מופע למערכת MIG אזורית קיימת, משתמשים בשיטה instanceGroupManagers.patch. כדי להוסיף מופע למערכת MIG אזורית, משתמשים בשיטה regionInstanceGroupManagers.patch. למשל:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME

{
  "listManagedInstancesResults": "PAGINATED",
}

כדי ליצור קבוצת MIG אזורית חדשה, משתמשים בשיטה instanceGroupManagers.insert. כדי ליצור קבוצת MIG אזורית, משתמשים בשיטה regionInstanceGroupManagers.insert.

אם רוצים לחזור לתוצאות של רשימה ללא חלוקה לדפים, צריך גם לחזור למגבלת גודל ברירת המחדל של הקבוצה. כדי לחזור להגדרה הקודמת, קודם צריך לוודא שהקבוצה לא חורגת ממגבלת הגודל שמוגדרת כברירת מחדל, ואז להגדיר את השדה listManagedInstancesResults לערך PAGELESS.

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