אחרי שיוצרים קבוצת מופעי מכונה מנוהלים (MIG), יכול להיות שתרצו להוסיף או להסיר מכונות וירטואליות מהקבוצה כדי לענות על הצרכים של עומס העבודה. אם הגעתם למגבלה שמוגדרת כברירת מחדל למספר המקסימלי של מכונות וירטואליות שאפשר להוסיף לקבוצת MIG, ואתם צריכים עוד מכונות וירטואליות, אתם יכולים להגדיל את מגבלת הגודל של קבוצת ה-MIG.
כדי להוסיף או להסיר מכונות וירטואליות ב-MIG, אתם יכולים:
- כדי להוסיף או להסיר מכונות וירטואליות באופן אוטומטי, מגדירים את גודל היעד של ה-MIG:
- שימוש בהתאמה אוטומטית לעומס (autoscaling) באפליקציות ללא שמירת מצב (stateless)
- יוצרים בקשה לשינוי כמות ב-MIG.
- הגדרה ידנית של הגודל של ה-MIG
- הוספה, הסרה או נטישה של מופעים ספציפיים באופן ידני:
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי בחשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
הגדרת גודל היעד של הקבוצה
אתם יכולים להגדיר את גודל היעד של קבוצת MIG באופן אוטומטי באמצעות התאמה לעומס (autoscaler), או להגדיר את הגודל באופן ידני.
הוספה והסרה אוטומטית של מכונות וירטואליות ב-MIG
אתם יכולים להגדיר קבוצות מופעי מכונה מנוהלים כך שיוסיפו או יסירו מכונות וירטואליות באופן אוטומטי, בהתאם לעומסי העבודה שלהן. האפליקציות שלכם יכולות להתמודד בצורה חלקה עם עליות בתנועה, ואתם יכולים להפחית את העלויות כשהצורך במשאבי מחשוב נמוך יותר. כדי להתחיל לשנות את קבוצות המכונות המנוהלות, קראו את המאמר יצירת קבוצת מופעי מכונה מנוהלים (MIG) עם התאמה לעומס (autoscaling).
מידע נוסף מופיע במאמר התאמה אוטומטית לעומס (scaling) של קבוצות מכונות.
יצירת בקשה לשינוי כמות
אתם יכולים להשתמש בבקשות לשינוי כמות כדי להוסיף בבת אחת מכונות וירטואליות של GPU לקבוצת MIG. התכונה הזו עוזרת לכם להימנע מחיובים על קיבולת חלקית בזמן ש-Compute Engine מקצה את כל המשאבים. בבקשות לשינוי כמות ב-MIG משתמשים במודלים של הקצאה מסוג "התחלה גמישה" או "מבוסס-הזמנה". המודלים האלה מאפשרים לכם לקבל מעבדי vCPU ו-GPU במחיר מוזל.
מידע נוסף זמין במאמר מידע על בקשות לשינוי כמות ב-MIG.
הגדרה ידנית של הגודל של קבוצת MIG
אם קבוצת ה-MIG לא מוגדרת להתאמה אוטומטית לעומס (automatic scaling), אתם יכולים לשנות את הגודל של הקבוצה באופן ידני כדי לשנות את מספר המכונות שבה. אם מגדילים את הגודל, קבוצת ה-MIG משתמשת בתבנית הנוכחית של הגדרות המכונה כדי להוסיף מכונות חדשות. אם מקטינים את הגודל, ה-MIG מוחק מכונות מהקבוצה על סמך כמה גורמים. מידע נוסף זמין במאמר גורמים שמשפיעים על מחיקת מכונות וירטואליות.
כשמגדירים ידנית את הגודל של קבוצת MIG, חשוב לשים לב לנקודות הבאות:
- אם הקבוצה היא חלק משירות לקצה העורפי שמופעל בו זמן להשלמת תהליך (connection draining), יכול להיות שיעברו עד 60 שניות נוספות אחרי סיום הזמן להשלמת התהליך, לפני שהמכונה תוסר או תימחק.
אם הפעלתם כיבוי מבוקר בתבנית של הגדרות המכונה שבה משתמשת קבוצת ה-MIG, המכונות בקבוצת ה-MIG יכבו באופן מבוקר כשהקבוצה תמחק אותן.
כשמגדירים באופן ידני את הגודל של קבוצת MIG, כברירת מחדל הקבוצה יוצרת את המכונות הווירטואליות באופן עצמאי ברגע שהמשאבים זמינים. כדי לקבל את כל המכונות הווירטואליות הנדרשות בבת אחת, צריך להגדיר את מצב המדיניות של גודל היעד ל-BULK כשיוצרים את ה-MIG. מידע נוסף על מצב Bulk זמין במאמר מידע על יצירת מכונות בכמות גדולה ב-MIG.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בעמודה Name של הרשימה, לוחצים על השם של קבוצת המכונות שרוצים לשנות את הגודל שלה.
לוחצים על Edit כדי לשנות את קבוצת מופעי המכונה המנוהלים.
לוחצים על Group size & autoscaling כדי להרחיב את הקטע.
בשדה Number of instances, מציינים את מספר המופעים שרוצים לכלול בקבוצת מופעי מכונה מנוהלים.
אם האפשרות Autoscaling מופעלת, הקבוצה מוסיפה או מסירה מכונות באופן אוטומטי לפי הצורך. עם זאת, אתם יכולים לשנות את הערכים של Minimum number of instances ו-Maximum number of instances כדי לשנות באופן עקיף את גודל הקבוצה באמצעות ההתאמה האוטומטית לעומס.
לוחצים על שמירה כדי להחיל את התבנית החדשה.
gcloud
משתמשים בפקודה resize.
gcloud compute instance-groups managed resize INSTANCE_GROUP_NAME \
--size NEW_SIZE \
--zone ZONEREST
מפעילים את ה-method 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 עד שהיא מצליחה. עם זאת, אם אתם לא רוצים ניסיונות חוזרים אוטומטיים ליצירה, אתם יכולים להשבית את מצב הניסיונות החוזרים ליצירה כשאתם משנים את הגודל של קבוצת המכונות. במצב הזה, קבוצת מופעי מכונה מנוהלים מנסה ליצור את כל המכונות רק פעם אחת. אם מתרחשת שגיאה במהלך יצירת מופע מכונה, קבוצת מופעי מכונה מנוהלים מוותרת על מופע המכונה הזה, מסירה אותו מרשימת מופעי המכונה המנוהלים של הקבוצה ומקטינה את גודל היעד של קבוצת מופעי מכונה מנוהלים.
המצב הזה רלוונטי רק בניסיון הראשון ליצור מכונה וירטואלית. אם נוצרת מכונה וירטואלית בהצלחה כשהמצב הזה מופעל, המכונה הווירטואלית מתנהגת כמו כל המכונות הווירטואליות האחרות שנוצרו באמצעות בקשה רגילה לשינוי כמות. באופן ספציפי, אם מכונה וירטואלית פועלת נסגרת באופן בלתי צפוי בשלב מאוחר יותר וצריך ליצור אותה מחדש, המצב הזה לא משפיע על אופן היצירה מחדש בתרחיש הזה.
השבתת המצב של ניסיונות חוזרים ליצירה שימושית במיוחד בתרחישים שבהם יש לכם מערכות שיוצרות באופן אוטומטי קבוצות של מכונות וירטואליות, שבהן לא נדרש מספר מדויק של מכונות וירטואליות. יכול להיות שתעדיפו להתייצב במהירות על הגודל של קבוצת מופעי מכונה מנוהלים ולהיות גמישים במספר המכונות הווירטואליות בקבוצה, במקום להמתין ללא הגבלת זמן עד שכל המכונות המבוקשות ייווצרו, דבר שעלול להתעכב באופן זמני או קבוע בגלל שגיאות במכסות או בעיות אחרות שלא קשורות.
מגבלות
אי אפשר להשבית את ניסיונות היצירה החוזרים בקבוצת MIG עם ההגדרות הבאות:
- התאמה אוטומטית לעומס (Autoscaling)
EVENצורת התפלגות היעד בקבוצות MIG אזוריות- מצב Bulk של מדיניות גודל היעד
בקבוצות MIG אזוריות עם צורת התפלגות יעד
BALANCEDאוANY_SINGLE_ZONE, צריך להשבית את ההפצה מחדש היזומה של המכונות לפני שמשביתים את מצב ניסיונות היצירה החוזרים.
כדי לשנות את הגודל של קבוצת מכונות מנוהלת כשמצב ניסיונות היצירה מושבת, צריך להשתמש ב-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: השם של קבוצת ה-MIG שרוצים לשנות את הגודל שלה. -
NEW_SIZE: מספר היעד של המופעים שפועלים בקבוצת מופעי מכונה מנוהלים. -
ZONE: בקבוצות MIG אזוריות, האזור שבו נמצאת קבוצת ה-MIG. -
REGION: האזור שבו נמצאת קבוצת ה-MIG (בקבוצות MIG אזוריות).
REST
לקבוצת MIG אזורית, משתמשים ב-method instanceGroupManagers.resizeAdvanced בגרסת בטא, ולקבוצת MIG רגיונלית משתמשים ב-method 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ומציינים את האזור. מידע נוסף זמין במאמר מידע על קבוצות MIG אזוריות. -
INSTANCE_GROUP_NAME: השם של קבוצת ה-MIG שרוצים לשנות את הגודל שלה.
NEW_SIZE: מספר היעד של המכונות הפועלות בקבוצת המכונות המנוהלת.כדי לראות אילו מכונות נוצרות ובאיזה מצב, אפשר להשתמש ב-method
listManagedInstances. כשהמצב הזה מושבת, למכונות שיוצרים ישcurrentActionשלCREATING_WITHOUT_RETRIES.
הוספה, הסרה או נטישה של מופעים ספציפיים
בקטעים הבאים מוסבר איך להוסיף, להסיר או לנטוש מכונות ספציפיות ב-MIG.
יצירת מכונות עם שמות ספציפיים בקבוצות MIG
אם עומס העבודה או מערכת התזמור דורשים שמות ספציפיים למכונות, אתם יכולים להוסיף את המכונות האלה לקבוצת MIG קיימת. בקטע הזה מוסבר איך להוסיף מכונות על סמך הזמינות. אם המשאבים לא זמינים, קבוצת ה-MIG מוסיפה חלק מהמכונות ויוצרת את המכונות הנותרות כשהמשאבים הופכים לזמינים. כדי להוסיף בבת אחת לקבוצת MIG מכונות GPU עם שמות ספציפיים, עיינו בקטע יצירת בקשה לשינוי כמות במאמר הזה.
השמות שאתם מקצים למכונות האלה נשארים גם אם קבוצת ה-MIG יוצרת אותן מחדש. למידע נוסף על שמירת המצב של מכונות MIG, קראו את המאמר קבוצות MIG עם שמירת מצב (stateful).
כדי להשתמש בתבניות ספציפיות של שמות למכונות ב-MIG, עיינו בקטע הגדרת שמות למכונות וירטואליות ב-MIG במאמר הזה.
מגבלות
אם יוצרים מכונות עם שמות ספציפיים:
- צריך להשבית את ההתאמה האוטומטית לעומס במהלך תהליך יצירת המכונה.
- צריך להגדיר את מדיניות העדכון של קבוצת המכונות המנוהלת ל-opportunistic.
- אם מעדכנים קבוצת 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 האזורית או של קבוצת ה-MIG באזור מסוים שרוצים להוסיף לה מכונה חדשה.
- INSTANCE_NAME הוא השם שרוצים להקצות למכונה החדשה.
REST
שולחים בקשת POST ל-method regionInstanceGroupManagers.createInstances. לקבוצת מופעי מכונה מנוהלים באזור, משתמשים ב-method 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"
}
]
}
מחיקת מופעים ספציפיים מקבוצה
אתם יכולים למחוק מכונות ספציפיות ב-MIG. מחיקת מכונות Compute Engine מקטינה את הערך שצוין ב-targetSize של קבוצת המכונות, ומסירה את המכונה מכל מאגרי היעד שהיא חברה בהם.
כשמוחקים מכונות ספציפיות מ-MIG, חשוב לזכור:
- אם הקבוצה היא חלק משירות לקצה העורפי שמופעל בו זמן להשלמת תהליך (connection draining), יכול להיות שיעברו עד 60 שניות נוספות אחרי סיום הזמן להשלמת התהליך, לפני שהמכונה תוסר או תימחק.
אם הפעלתם כיבוי מבוקר בתבנית של הגדרות המכונה שבה משתמשת קבוצת ה-MIG, המכונות בקבוצת ה-MIG יכבו באופן מבוקר כשהקבוצה תמחק אותן.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בעמודה Name שברשימה, לוחצים על השם של קבוצת המכונות שבה רוצים למחוק מכונות ספציפיות. ייפתח דף עם המאפיינים של קבוצת המכונות ורשימה של המכונות שכלולות בקבוצה.
בקטע VM instances, בוחרים מכונה אחת או יותר שרוצים למחוק.
לוחצים על Delete.
בתיבת הדו-שיח שמופיעה:
- אופציונלי: כדי למחוק את המכונות בלי כיבוי מבוקר, או כדי לסיים כיבוי מבוקר שמתבצע, בוחרים בתיבת הסימון דילוג על כיבוי מבוקר (אם רלוונטי).
- מזינים את הערך
deleteולוחצים על 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]הפקודה מחזירה את סטטוס הפעולה לכל מכונה:
- אם ה-CLI של gcloud מחק את המכונה, יוחזר הערך
SUCCESS. - השגיאה
FAILמוחזרת לכל המכונות אם אחת מהמכונות שציינתם בבקשה לא שייכת לקבוצה, אם אחת מהמכונות כבר נמחקה או ננטשה, או אם הבקשה נכשלה מכל סיבה אחרת. - הערך
SKIPPEDמוחזר רק אם משתמשים בדגל--skip-instances-on-validation-errorוהמכונה לא שייכת לקבוצה, או שהיא כבר נמחקה או ננטשה. - הערך
MEMBER_NOT_FOUNDמוחזר רק לקבוצות אזוריות, כשה-CLI של gcloud לא הצליח לזהות את האזור משם המכונה.
אם אתם צופים שבקשת המחיקה עלולה להתנגש עם פעולות בו-זמניות, השתמשו בדגל --skip-instances-on-validation-error. הדגל הזה מציין אם הבקשה צריכה להמשיך גם אם היא כוללת מכונות שלא שייכות לקבוצה, או שכבר נמחקו או ננטשו – למשל, מכונות שנמחקות על ידי התאמה לעומס (autoscaler). כברירת מחדל, אם משמיטים את הדגל הזה ומציינים מכונה כזו בבקשה, הפעולה נכשלת. הפעולה תמיד נכשלת אם הבקשה מכילה שם מכונה בפורמט שגוי, או הפניה למכונה שקיימת באזור או במחוז שונים מהאזור או מהמחוז של הקבוצה.
לדוגמה, הפקודה הבאה מבקשת למחוק ארבעה מכונות, אבל שלוש מהן כבר לא בקבוצה:
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
אם רוצים למחוק מכונות ב-MIG בלי כיבוי מבוקר, או לסיים כיבוי מבוקר שמתבצע, משתמשים באותה פקודה עם הדגל --no-graceful-shutdown:
gcloud compute instance-groups managed delete-instances INSTANCE_GROUP_NAME \
--instances INSTANCE_NAME_1,INSTANCE_NAME_2 \
--no-graceful-shutdown \
[--region REGION | --zone ZONE]REST
שולחים בקשת POST ל-method regionInstanceGroupManagers.deleteInstances. לקבוצת מופעי מכונה מנוהלים באזור, משתמשים ב-method 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. השדה הזה מציין אם הבקשה צריכה להמשיך גם אם היא כוללת מכונות שלא שייכות לקבוצה, או מכונות שכבר נמחקו או ננטשו – למשל, מכונות שנמחקות על ידי התאמה אוטומטית לעומס (autoscaler). כברירת מחדל, אם משמיטים את הדגל הזה ומציינים מכונה כזו בבקשה, הפעולה נכשלת. הפעולה תמיד נכשלת אם הבקשה מכילה שם מכונה בפורמט שגוי, או הפניה למכונה שקיימת באזור או במחוז שונים מהאזור או מהמחוז של הקבוצה.
לדוגמה, הבקשה הבאה למחיקת 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 אזוריות, משתמשים ב-method regionOperations.get.
בקבוצות MIG אזוריות, משתמשים ב-zoneOperations.get method.
האזהרות מופיעות בשדה האזהרה של הפעולה.
אם רוצים למחוק מכונות ב-MIG בלי כיבוי מבוקר או לסיים כיבוי מבוקר שמתבצע, צריך לכלול את הפרמטר של השאילתה noGracefulShutdown שמוגדר ל-true בכתובת ה-URL של הבקשה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/deleteInstances?noGracefulShutdown=true
{
"instances": [
"zones/ZONE/instances/INSTANCE_NAME_1",
"zones/ZONE/instances/INSTANCE_NAME_2"
]
}אחרי ששולחים בקשה למחוק מופעי מכונה בקבוצת מופעי מכונה מנוהלים, מופעי המכונה מפסיקים לפעול ברגע שהמערכת יכולה למחוק אותם. התהליך הזה יכול להימשך זמן רב, בהתאם למספר המכונות שמוחקים מהקבוצה. מאמתים את הסטטוס של הקבוצה או מאמתים את הסטטוס של המכונות המנוהלות.
נטישת מכונות מקבוצת MIG
אתם יכולים להפריד מכונה וירטואלית מקבוצת מכונות מנוהלת כדי לנפות באגים בבעיות במכונות ספציפיות, בלי להשפיע על הקבוצה כולה. כשמוציאים מופע מכונה מקבוצה, הוא גם מוסר ממאזני העומסים שהוקצו לקבוצת מופעי המכונה המנוהלים. מאגרי יעדים שהוקצו באופן ידני למכונות ספציפיות לא יוסרו.
אי אפשר להוסיף לקבוצה מכונת VM שננטשה.
נטישת מכונות מקטינה את הערך שצוין ב-targetSize של קבוצת המכונות, אבל לא משנה את ההגדרות שצוינו למידרוג אוטומטי. קבוצות מופעי מכונה מנוהלים עם מידרוג אוטומטי ממשיכות להוסיף או להסיר מופעים באופן אוטומטי לפי הצורך. בקבוצת MIG אזורית שמוגדרת להתאמה אוטומטית לעומס במצב ONLY_SCALE_OUT, אם נוטשים מכונה וירטואלית כדי להקטין את גודל היעד של קבוצת ה-MIG לגודל המומלץ של המידרוג האוטומטי, יכול להיות שהמידרוג האוטומטי ייצור מכונה וירטואלית חדשה באותו תחום של המכונה הווירטואלית שננטשה. במקרים כאלה, כדי להימנע מיצירת מכונה וירטואלית חדשה, נסו לנטוש מכונה וירטואלית מאזור אחר.
אם הקבוצה היא חלק משירות לקצה העורפי שמופעל בו זמן להשלמת תהליך (connection draining), יכול להיות שיעברו עד 60 שניות נוספות אחרי סיום הזמן להשלמת התהליך, לפני שהמכונה תוסר או תימחק.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בעמודה Name שברשימה, לוחצים על השם של קבוצת המכונות שרוצים להסיר ממנה מכונות. ייפתח דף עם המאפיינים של קבוצת המכונות ורשימת המכונות שכלולות בקבוצה.
בקטע VM instances, בוחרים מכונה אחת או יותר שרוצים להסיר מהקבוצה.
לוחצים על הסרה מהקבוצה.
בתיבת הדו-שיח לאישור הסרת המכונות שנבחרו, מקלידים
removeולוחצים על 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. לקבוצת מופעי מכונה מנוהלים באזור, משתמשים ב-method 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-###" - שמות ה-VM שנוצרו:
instance-000, instance-001, instance-002. - כדי להשתמש במספר התחלתי אחר לרצף, מציינים את המספר בסוגריים אחרי תווי הסולמית – לדוגמה,
PREFIX-###[100]כמוinstance-###[100]. התוצאה היא שמות של מכונות וירטואליות:instance-100,instance-101ו-instance-102.
- דוגמה:
קידומת בהתאמה אישית: מגדירים את
baseInstanceNameלמחרוזת שלא כוללת תווי סולמית (#). המערכת של Compute Engine משתמשת במחרוזת כקידומת, ומוסיפה מקף וארבעה תווים אקראיים.- דוגמה:
"baseInstanceName": "my-vm" - שמות המכונות הווירטואליות שנוצרו:
my-vm-p4k1,my-vm-n2hr.
- דוגמה:
תחילית ברירת המחדל: אם לא מגדירים את
baseInstanceName, המערכת של Compute Engine משתמשת בשם של קבוצת ה-MIG בתור התחילית, ומוסיפה מקף וארבעה תווים אקראיים.- דוגמה לשם של MIG:
my-mig - שמות המכונות הווירטואליות שנוצרו:
my-mig-xz8d,my-mig-4ran.
- דוגמה לשם של MIG:
אפשר להגדיר את baseInstanceName כשיוצרים קבוצת MIG או כשמעדכנים קבוצה קיימת.
gcloud
כדי להגדיר שמות של מכונות כשיוצרים MIG, משתמשים בפקודה 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: השם של קבוצת המכונות המנוהלת. -
INSTANCE_TEMPLATE: השם של תבנית של הגדרות מכונה שמשמשת ליצירת מכונות וירטואליות. -
SIZE: מספר המכונות הווירטואליות ב-MIG. -
BASE_INSTANCE_NAME: פורמט השם הבסיסי של המכונות שנוצרו ב-MIG:- כדי להשתמש בשמות עוקבים, צריך לכלול תו סולמית (
#) אחד או יותר בשם – לדוגמה,PREFIX-###כמוinstance-###. - כדי להשתמש בקידומת מותאמת אישית עם סיומת אקראית, משתמשים בשם שלא כולל תווים של סולמית, למשל
my-vm.
- כדי להשתמש בשמות עוקבים, צריך לכלול תו סולמית (
-
REGION: בקבוצת 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: השם של קבוצת המכונות המנוהלת. -
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 או פנו לתמיכה.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בעמודה Name של הרשימה, לוחצים על השם של קבוצת המכונות שרוצים להגדיל את מגבלת הגודל שלה.
לוחצים על Edit כדי לשנות את קבוצת המכונות.
לוחצים על הקטע אפשרויות מתקדמות כדי להרחיב אותו.
בקטע Managed instance list API call results, בוחרים באפשרות Paginated.
לוחצים על שמירה כדי להחיל את השינויים.
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=PAGINATEDTerraform
כדי להגדיל את מגבלת הגודל של קבוצת MIG, מגדירים את הארגומנט list_managed_instances_results לערך PAGINATED.
הדוגמה הבאה מגדילה את מגבלת הגודל של קבוצת MIG אזורית. למידע נוסף על המשאב שנעשה בו שימוש בדוגמה, ראו המשאב google_compute_instance_group_manager.
לקבוצת MIG אזורית, משתמשים במשאב google_compute_region_instance_group_manager.
כדי ללמוד איך להחיל הגדרות ב-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 חדשה ברמת האזור, משתמשים ב-methodinstanceGroupManagers.insert, ולקבוצת MIG ברמת המחוז משתמשים ב-methodregionInstanceGroupManagers.insert.
אם רוצים לחזור לתוצאות רשימה ללא דפים, צריך גם לחזור למגבלת הגודל שמוגדרת כברירת מחדל לקבוצה. כדי לחזור להגדרת ברירת המחדל, קודם צריך לוודא שהקבוצה לא חורגת ממגבלת הגודל שמוגדרת כברירת מחדל, ואז להגדיר את השדה listManagedInstancesResults לערך PAGELESS.
המאמרים הבאים
- מידע ולמידה על עבודה עם מכונות מנוהלות, למשל, איך למחוק, לנטוש וליצור מחדש מכונות מנוהלות.
- מידע על קבוצות מופעי מכונה מנוהלים ומופעי מכונה מנוהלים.
- פתרון בעיות בקבוצות מופעי מכונה מנוהלים