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

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

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

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

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

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

    המסוף

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

    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) והסרה אוטומטית שלהן ממנה

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

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

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

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

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

הגדרה ידנית של הגודל של MIG

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

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

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

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

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

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

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

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

מגבלות

כדי לשנות את הגודל של קבוצת מופעים מנוהלת כשמצב ניסיונות חוזרים ליצירה מושבת, משתמשים ב-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 regionInstanceGroupManagers.resizeAdvanced.instanceGroupManagers.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 ומציינים את האזור. מידע נוסף זמין במאמר מידע על קבוצות אזוריות של מכונות וירטואליות לניהול מקרים (MIG).
  • INSTANCE_GROUP_NAME: השם של קבוצת המכונות המנוהלת שרוצים לשנות את הגודל שלה.
  • NEW_SIZE: מספר היעד של מופעי מכונה פעילים בקבוצת המופעים המנוהלת.

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

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

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

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

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

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

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

מגבלות

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

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

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

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

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

המסוף

  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
}

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

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

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

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

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

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

המסוף

  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]. התוצאה היא שמות של מכונות VM: ‏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:
    • כדי להשתמש בשמות רציפים, צריך לכלול תו גיבוב (hash) אחד או יותר (#) בשם – לדוגמה, PREFIX-### כמו instance-###.
    • כדי להשתמש בקידומת מותאמת אישית עם סיומת אקראית, צריך להשתמש בשם שלא כולל תווי סולמית – לדוגמה, my-vm.
  • REGION: במקרה של MIG אזורי, האזור שבו ה-MIG ממוקם.
  • ZONE: ב-MIG אזורי, האזור שבו נמצא ה-MIG.

REST

כדי להגדיר שמות של מופעים כשיוצרים קבוצת מופעים מנוהלת, כוללים את השדה 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:
    • כדי להשתמש בשמות רציפים, צריך לכלול תו גיבוב (hash) אחד או יותר (#) בשם – לדוגמה, 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 (תוצאות של קריאות ל-API של רשימת מכונות מנוהלות), בוחרים באפשרות Paginated (עם חלוקה לדפים).

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

gcloud

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

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

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

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