במאמר הזה מתואר איך להחיל עדכוני תצורה באופן סלקטיבי על מופעי מכונה וירטואלית (VM) בקבוצת מופעי מכונה מנוהלים (MIG).
מערכת Compute Engine מתחזקת את המכונות הווירטואליות בקבוצת מופעי מכונה מנוהלים (MIG) על סמך רכיבי ההגדרה שבהם אתם משתמשים: תבנית של הגדרות מכונה, הגדרה אופציונלית של כל המכונות והגדרה אופציונלית עם שמירת מצב.
בכל פעם שמעדכנים את הגדרת ה-VM של קבוצת MIG על ידי שינוי הרכיבים האלה, Compute Engine מחיל באופן אוטומטי את ההגדרה המעודכנת על מכונות וירטואליות חדשות שנוספות לקבוצה.
כדי להחיל הגדרה מעודכנת על מכונות וירטואליות קיימות, אפשר להגדיר עדכון סלקטיבי – שנקרא גם עדכון אופורטוניסטי. לעדכון מסוג זה יש את היתרונות הבאים:
- אפשר לבחור את המכונות הווירטואליות שרוצים לעדכן.
- אתם יכולים לשלוט בתזמון ובסדר של העדכונים.
- אפשר להשתמש ב-CLI של gcloud או ב-REST כדי לעדכן את כל מכונות ה-VM באופן מיידי.
לחלופין, אם רוצים להפוך את הפריסה של הגדרה חדשה לאוטומטית לכל המכונות הווירטואליות בקבוצת MIG או לקבוצת משנה אקראית שלהן, אפשר לעיין במאמר החלת עדכוני הגדרות של מכונות וירטואליות בקבוצת MIG באופן אוטומטי. כדי לעזור לכם להחליט, כדאי לעיין במאמר בנושא שיטות להחלת הגדרה חדשה על מכונות וירטואליות קיימות.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
החלת הגדרות מעודכנות על מכונות וירטואליות נבחרות
כדי למנוע מקבוצת ה-MIG להחיל באופן אוטומטי הגדרת VM חדשה על מכונות וירטואליות קיימות, צריך לוודא שסוג מדיניות העדכון של הקבוצה מוגדר כ'אופורטוניסטי'. למידע נוסף, ראו איך בודקים את סוג מדיניות העדכון של הקבוצה.
לאחר מכן משתמשים ב-CLI של gcloud או ב-REST כדי לעדכן את ההגדרה של ה-MIG ולהחיל את ההגדרה העדכנית על מכונות וירטואליות ספציפיות בקבוצה או על כל המכונות הווירטואליות בקבוצה.
gcloud
כדי להגדיר תבנית חדשה של מכונה לקבוצה, אפשר להשתמש בפקודה set-instance-template.
gcloud compute instance-groups managed set-instance-template INSTANCE_GROUP_NAME \
--template=INSTANCE_TEMPLATE
החלת הגדרה על מכונות וירטואליות ספציפיות
כדי להחיל את ההגדרה המעודכנת על מכונות וירטואליות ספציפיות, משתמשים בפקודה update-instances עם הדגל --instances.
gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
--instances INSTANCE_NAMES \
--most-disruptive-allowed-action DISRUPTION_LEVEL \
--minimal-action DISRUPTION_LEVEL
החלת ההגדרה על כל המכונות הווירטואליות
כדי להחיל את ההגדרה המעודכנת על כל המכונות הווירטואליות, משתמשים בפקודה update-instances עם הדגל --all-instances.
gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
--all-instances \
--most-disruptive-allowed-action DISRUPTION_LEVEL \
--minimal-action DISRUPTION_LEVEL
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_GROUP_NAME: השם של ה-MIG INSTANCE_TEMPLATE: תבנית של הגדרות מכונה-
INSTANCE_NAMES: רשימת מכונות וירטואליות להחלת התבנית עליהן -
DISRUPTION_LEVEL: המינימלי או המקסימלי disruption level:none,refresh,restartאוreplace- פעולת ברירת המחדל המינימלית היא
none - פעולת ברירת המחדל הכי משבשת שמותרת היא
replace
- פעולת ברירת המחדל המינימלית היא
REST
כדי להגדיר תבנית של הגדרות מכונה חדשה לקבוצה, קוראים לשיטה patch ב-MIG אזורי או אזורי ומעדכנים את השדה versions.instanceTemplate. כדי להימנע מהפצה אוטומטית של התבנית החדשה לכל המכונות הווירטואליות בקבוצה, מגדירים את השדה updatePolicy.type לערך OPPORTUNISTIC.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"updatePolicy": {
"type": "OPPORTUNISTIC"
},
"versions": [{
"instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE",
}]
}החלת הגדרה על מכונות וירטואליות ספציפיות
כדי להחיל את ההגדרה המעודכנת על מכונות וירטואליות ספציפיות, קוראים לשיטה applyUpdatesToInstances של MIG אזורי או אזורי ומציינים רשימה של מכונות וירטואליות בבקשה.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances
{
"instances": [
"zones/ZONE/instances/INSTANCE_NAME_1",
"zones/ZONE/instances/INSTANCE_NAME_2"
],
"minimalAction": DISRUPTION_LEVEL,
"mostDisruptiveAllowedAction": DISRUPTION_LEVEL
}החלת ההגדרה על כל המכונות הווירטואליות
כדי להחיל את ההגדרה המעודכנת על כל המכונות הווירטואליות הקיימות, מגדירים את השדה allInstances לערך true:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances
{
"allInstances": true,
"minimalAction": DISRUPTION_LEVEL,
"mostDisruptiveAllowedAction": DISRUPTION_LEVEL
}מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_GROUP_NAME: שם הקבוצה -
NEW_TEMPLATE: השם של התבנית החדשה -
ZONE: האזור של מכונה לעדכון -
INSTANCE_NAME_1ו-INSTANCE_NAME_2: השמות של המכונות הווירטואליות שרוצים לעדכן -
DISRUPTION_LEVEL: המינימלי או המקסימלי disruption level:NONE,REFRESH,RESTARTאוREPLACE- ערך ברירת המחדל
minimalActionהואNONE. - ערך ברירת המחדל
mostDisruptiveAllowedActionהואREPLACE.
- ערך ברירת המחדל
בדומה לשיטות אחרות של קבוצות מופעי מכונה מנוהלים, השיטה applyUpdatesToInstances
מבוססת על כוונות, כלומר היא מחזירה תגובה של פעולה.
יכול להיות שיעבור קצת זמן עד להשלמת הפעולה.
אחרי ששולחים בקשה, אפשר לבדוק את הסטטוס כדי לוודא שהעדכון הושלם.
שליטה ברמת השיבוש במהלך עדכונים סלקטיביים
בהתאם לאופי העדכון, יכול להיות שהוא ישבש את המצב של מופע. לדוגמה, כדי לשנות את דיסק האתחול של מופע, צריך להחליף את המופע. אתם יכולים לשלוט ברמת השיבוש במהלך עדכון סלקטיבי על ידי הגדרת האפשרויות הבאות:
פעולה מינימלית: משתמשים באפשרות הזו כדי למזער את השיבושים ככל האפשר או כדי להחיל פעולה משבשת יותר מהנדרש.
- כדי לצמצם את ההפרעה ככל האפשר, צריך להגדיר את הפעולה המינימלית לערך
NONE. אם העדכון דורש פעולה משבשת יותר, Compute Engine מבצע את הפעולה הנדרשת כדי להפעיל את העדכון. - כדי להחיל פעולה משבשת יותר מהנדרש, מגדירים את הפעולה המינימלית ל-
RESTARTאו ל-REPLACE. לדוגמה, ב-Compute Engine לא צריך להפעיל מחדש מכונה וירטואלית כדי לשנות את המטא-נתונים שלה. אבל אם האפליקציה קוראת את המטא-נתונים של המכונה רק כשמפעילים מחדש מכונה וירטואלית, אפשר להגדיר את הפעולה המינימלית ל-RESTARTכדי לקבל את השינויים במטא-נתונים.
- כדי לצמצם את ההפרעה ככל האפשר, צריך להגדיר את הפעולה המינימלית לערך
הפעולה המותרת הכי משבשת: משתמשים באפשרות הזו כדי למנוע עדכון אם הוא דורש שיבוש גדול יותר ממה שאתם יכולים להרשות לעצמכם. אם העדכון דורש פעולה שגורמת לשיבוש גדול יותר ממה שהגדרתם באמצעות הדגל הזה, בקשת העדכון תיכשל. לדוגמה, אם הפעולה הכי משבשת שמותרת היא
RESTART, אז ניסיון לעדכן את תמונת דיסק האתחול ייכשל כי העדכון הזה דורש יצירה מחדש של המופע, שהיא פעולה יותר משבשת מהפעלה מחדש.
כשמעדכנים מכונות וירטואליות נבחרות, שתי האפשרויות האלה מקבלות את הערכים הבאים:
| ערך | תיאור | אילו מאפייני מופע אפשר לעדכן? |
|---|---|---|
NONE |
לא לשבש את הפעולה של המכונה בכלל. | ללא |
REFRESH |
אל תפסיקו את המופע. | דיסקים נוספים, ממשקי רשת דינמיים (NIC), מטא-נתונים של מופעים, תוויות, תגים |
RESTART |
עוצרים את המופע ומפעילים אותו מחדש. | דיסקים נוספים, כרטיסי רשת דינמיים, מטא-נתונים של מופעים, תוויות, תגים, סוג מכונה |
REPLACE |
מוחקים את המופע ויוצרים אותו מחדש. | כל מאפייני המכונה שמאוחסנים בתבנית של הגדרות מכונה או בהגדרה לכל מכונה |
הפעולה הכי משבשת שמותרת לא יכולה להיות פחות משבשת מהפעולה המינימלית.
כשמעדכנים מכונות וירטואליות באופן סלקטיבי, חלות הגדרות ברירת המחדל הבאות:
- פעולת ברירת המחדל המינימלית היא
NONE, שמגבילה את השיבוש ככל האפשר. - פעולת ברירת המחדל הכי משבשת שמותרת היא
REPLACE. אם אתם לא יכולים לסבול שיבושים כאלה, כדאי להגדיר את הפעולה הכי משבשת שמותרת כפעולה פחות משבשת.
המאמרים הבאים
- מידע נוסף על הצגת פרטים על קבוצות של מכונות וירטואליות מנוהלות (MIG) ומכונות וירטואליות מנוהלות
- מידע נוסף על יצירת תבניות של מופעים
- איך מעדכנים את תמונת מערכת ההפעלה בכל המכונות הווירטואליות ב-MIG באמצעות משפחות של תמונות והחלפה מתגלגלת.