בדף הזה מוסבר איך משתמשים בהגדרות של כל המכונות כדי להגדיר תוויות ומאפייני מטא-נתונים לכל המכונות הווירטואליות (VM) בקבוצת מופעי מכונה מנוהלים (MIG), בלי ליצור תבנית של הגדרות מכונה.
אתם יכולים להמשיך להשתמש בתבניות של הגדרות מכונה כדי להגדיר מאפייני מכונה ב-MIG. עם זאת, במקרים מסוימים קל יותר להשתמש בהגדרת כל המכונות של קבוצת מכונות מנוהלת, למשל:
אתם צריכים לעדכן את המטא-נתונים או התוויות של המכונה לעיתים קרובות, בלי ליצור תבניות חדשות בכל פעם. חשוב לזכור שתבניות של הגדרות מכונה לא ניתנות לשינוי, כלומר אי אפשר לשנות אותן אחרי שיוצרים אותן.
אתם רוצים ליצור כמה קבוצות MIG שמבוססות על תבנית אחת של הגדרות מכונה, אבל אתם צריכים להגדיר תוויות או מטא-נתונים שונים לכל קבוצת MIG. לדוגמה, אם יש לכם אפליקציה אחת אבל אתם רוצים לתמוך בסביבות שונות לפיתוח, לבדיקה ולייצור. אפשר ליצור תבנית אחת של הגדרות מכונה ולהשתמש בה בכל הסביבות, על ידי הגדרת מטא-נתונים שונים עם הגדרה שונה של כל המכונות לכל סביבה.
יש לכם צוות אחד שאחראי על התשתית ועל קובצי האימג', וצוות אחר שמפעיל אפליקציות שצריך להגדיר. צוות אחד יכול להקצות תשתית באמצעות תבנית של הגדרות מכונה, וצוות האפליקציה יכול לנהל את הגדרות האפליקציה באמצעות הגדרות לכל המכונות.
יש לכם סוכן שפועל במכונות הווירטואליות ואתם רוצים להגדיר אותו באמצעות מטא-נתונים. אתם רוצים לוודא שההגדרות של סוכן ה-VM יישמרו גם אחרי שתבנית של הגדרות מכונה של הקבוצה תשתנה. משתמשים בתבנית של הגדרות המכונה כדי לשלוט בגרסת האפליקציה ולהגדיר את סוכן ה-VM באמצעות הגדרה של כל המכונות.
אם מגדירים את אותו מאפיין גם בתבנית של הגדרות המכונה של ה-MIG וגם בהגדרות של כל המכונות, ה-MIG נותן עדיפות לערך מההגדרות של כל המכונות. לדוגמה, אם המטא-נתונים של enable-guest-attributes מוגדרים כ-FALSE בתבנית של הגדרות המכונה של קבוצת המכונות המנוהלות, וכ-TRUE בהגדרות של כל המכונות בקבוצת המכונות המנוהלות, אז Compute Engine מחיל את TRUE על כל המכונות בקבוצה. כך אפשר להשתמש בהגדרות של כל המכונות כדי לשנות את המאפיינים שמוגדרים בתבנית של הגדרות המכונה.
לפני שמתחילים
- יוצרים קבוצת מופעי מכונה מנוהלים.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להגדרה ולהחלה של הגדרות לכל המכונות, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute (v1) (roles/compute.instanceAdmin.v1) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות כדי להגדיר ולהחיל הגדרה לכל המכונות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להגדיר ולהחיל הגדרה לכל המכונות, צריך את ההרשאות הבאות:
-
כדי לקבל את קבוצת ה-MIG:
compute.instanceGroupManagers.getבפרויקט -
כדי לעדכן את ההגדרות של כל המכונות בקבוצת המכונות המנוהלת:
compute.instanceGroupManagers.updateבפרויקט -
כדי להשתמש בתבנית של הגדרות מכונה כשמעדכנים את קבוצת המכונות המנוהלת:
compute.instanceTemplates.getבפרויקט -
כדי ליצור מכונות עם המאפיינים שצוינו:
compute.instances.createבפרויקט -
כדי להוסיף מטא-נתונים למכונות וירטואליות קיימות:
compute.instances.setMetadataבפרויקט -
כדי להוסיף תוויות למכונות וירטואליות קיימות:
compute.instances.setLabelsבפרויקט
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מגבלות
אפשר לשנות רק את המאפיינים הבאים של תבנית של הגדרות מכונה באמצעות הגדרה של כל המכונות:
- מטא-נתונים
- תוויות
אי אפשר לעדכן בהדרגה הגדרה של כל המכונות. כשמחילים את ההגדרות על הקבוצה, המערכת של Compute Engine מחילה את המאפיינים על כל המכונות החדשות, ועל המכונות הקיימות בהתאם למדיניות העדכון. אם אתם רוצים לקבוע אילו מכונות קיימות יתעדכנו ומתי, אתם יכולים להשתמש בעדכונים סלקטיביים.
אם אתם משתמשים בהגדרה עם שמירת מצב ב-MIG, אתם לא יכולים להגדיר את אותו מאפיין בהגדרה לכל מכונה ובמקביל בהגדרה לכל המכונות של הקבוצה.
הגדרת מאפיינים במערך הגדרות אישיות לכל המכונות
יצירה ועדכון של הגדרת כל המכונות של קבוצת MIG באמצעות ה-CLI של gcloud או REST.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בוחרים את קבוצת ה-MIG שרוצים להגדיר בה את כל המכונות.
לוחצים על Edit.
לוחצים על הקטע תבנית של הגדרות מכונה & שינויים מברירת המחדל כדי להרחיב אותו.
בקטע All-instances configuration:
- כדי להוסיף או לעדכן ערכי מטא-נתונים, לוחצים על ניהול מטא-נתונים. מסיימים את ההגדרה ולוחצים על שמירה.
- כדי להוסיף או לעדכן תוויות, לוחצים על ניהול תוויות. מסיימים את ההגדרה ולוחצים על שמירה.
אחרי שמסיימים להגדיר את המאפיינים בהגדרות של כל המכונות, לוחצים על Save.
אם סוג העדכון של ה-MIG מוגדר כ-Automatic, ההגדרה של כל המכונות שקבעתם מוחלת באופן מיידי על כל המכונות הווירטואליות הקיימות. אם סוג העדכון הוא Selective, צריך להחיל את ההגדרות באופן סלקטיבי על המכונות הווירטואליות הקיימות. מידע נוסף זמין במאמר החלת הגדרה של כל המכונות על מכונות וירטואליות קיימות.
gcloud
מוסיפים או מעדכנים הגדרה לכל המכונות באמצעות הפקודה all-instances-config update.
gcloud compute instance-groups managed all-instances-config update INSTANCE_GROUP_NAME \
--metadata=KEY1=VALUE1,KEY2=VALUE2 \
--labels=KEY3=VALUE3,KEY4=VALUE4
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_GROUP_NAME: שם ה-MIG. -
KEYSו-VALUES: צמדי מפתח/ערך של תוויות או מטא-נתונים. אם המפתח לא קיים, פקודת העדכון מוסיפה אותו. אם המפתחות כבר קיימים, הערכים שלהם מתעדכנים.
חשוב לזכור להחיל את ההגדרות המעודכנות על המכונות הווירטואליות הקיימות ב-MIG.
REST
כדי להוסיף או לעדכן הגדרה לכל המכונות, שולחים בקשת PATCH לקבוצת MIG אזורית או מחוזית.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"allInstancesConfig": {
"properties": {
"metadata": {
"KEY1": "VALUE1",
...
},
"labels": {
"KEY2": "VALUE2",
...
},
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: הפרויקט שבו נמצאת קבוצת ה-MIG. -
REGION: האזור שבו נמצאת קבוצת ה-MIG. לקבוצת MIG אזורית, מחליפים אתregions/REGIONב-zones/ZONE. -
INSTANCE_GROUP_NAME: שם ה-MIG. -
KEYSו-VALUES: צמדי מפתח/ערך של תוויות או מטא-נתונים. אם המפתח לא קיים, הבקשה מוסיפה אותו. אם המפתח כבר קיים, הערך שלו מתעדכן.
חשוב לזכור להחיל את ההגדרות המעודכנות על המכונות הווירטואליות הקיימות ב-MIG.
איך מחילים הגדרה של כל המכונות על מכונות וירטואליות קיימות
הגדרת המכונה הווירטואלית שאתם מציינים למכונות וירטואליות בקבוצת MIG חלה באופן אוטומטי על מכונות וירטואליות חדשות שנוספות לקבוצה.
כדי להחיל הגדרה מעודכנת של מכונה וירטואלית – כולל הגדרה מעודכנת של כל המכונות – על מכונות וירטואליות קיימות בקבוצה, צריך להשתמש באחת מהשיטות הבאות:
- אוטומטי (יזום): משתמשים בשיטה הזו אם רוצים שקבוצת ה-MIG תחיל באופן אוטומטי הגדרות אישיות חדשות על כל המכונות הווירטואליות הקיימות בקבוצה, או על קבוצת משנה שלהן. רמת ההפרעה למכונות הווירטואליות שפועלות תלויה במדיניות העדכון שהגדרתם. אתם יכולים להשתמש בשיטה הזו כדי לבצע עדכון קנרית של תבניות חדשות של הגדרות מכונה. כדי להשתמש בשיטה הזו, צריך להגדיר את סוג העדכון של קבוצת המכונות המנוהלת ל-"proactive".
- סלקטיבי (אופורטוניסטי): משתמשים בשיטה הזו אם רוצים להחיל את העדכון באופן ידני או אם רוצים לעדכן את כל המכונות הווירטואליות הקיימות בקבוצה בבת אחת. אתם יכולים לבחור אילו מכונות וירטואליות לעדכן להגדרות החדשות. כדי להשתמש בשיטה הזו, צריך להגדיר את סוג העדכון של קבוצת ה-MIG ל-"opportunistic".
- יצירה מחדש של מכונות וירטואליות: כשיוצרים מחדש מכונה וירטואלית ב-MIG, המערכת מחילה על המכונה הווירטואלית את כל ההגדרות המעודכנות שעדיין לא הוחלו עליה. מידע נוסף זמין במאמר יצירה מחדש של מכונות וירטואליות ב-MIG.
אוטומטי (יזום)
אם רוצים להחיל באופן אוטומטי הגדרה מעודכנת של כל המכונות על כל המכונות הווירטואליות הקיימות בכל פעם שמבצעים בה שינוי, צריך להגדיר את סוג מדיניות העדכון של הקבוצה כ-proactive. מידע נוסף מופיע במאמר סוג עדכון אוטומטי (יזום).
אתם יכולים לשלוט במהירות של השקת הגדרות יזומה באמצעות ההגדרות האופציונליות maxUnavailable, maxSurge ו-minReadySec.
כדי להשתמש בעדכונים יזומים, צריך להגדיר אותם רק פעם אחת. לאחר מכן, קבוצת ה-MIG מחילה באופן אוטומטי את כל השינויים העתידיים בהגדרות של המכונות הווירטואליות (כלומר, שינויים בהגדרות של כל המכונות בקבוצה, בתבנית של הגדרות המכונה ובהגדרות של כל מכונה בנפרד) על כל המכונות הווירטואליות בקבוצה, בהתאם להגדרות במדיניות העדכון של הקבוצה.
כדי להחיל עדכוני הגדרות באופן אוטומטי, צריך להשתמש ב-CLI של gcloud או ב-REST.
gcloud
אפשר להגדיר עדכונים אוטומטיים (יזומים) באמצעות הפקודה update.
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
--update-policy-type=proactive \
--update-policy-max-unavailable=MAX_UNAVAILABLE \
--update-policy-max-surge=MAX_SURGE \
--update-policy-min-ready=MIN_READY \
--update-policy-minimal-action=MINIMAL_ACTION \
--update-policy-replacement-method=REPLACEMENT_METHOD
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_GROUP_NAME: שם ה-MIG. -
MAX_UNAVAILABLE(אופציונלי): המספר המקסימלי של מכונות שלא יהיו זמינות במהלך העדכון. לדוגמה, אם מגדירים את הדגלupdate-minimal-actionלערךrestart, הדגל מגביל את מספר המכונות הווירטואליות שמופעלות מחדש בכל פעם. הערך יכול להיות מספר קבוע (לדוגמה,5) או אחוז מהגודל של קבוצת מופעי המכונות המנוהלת (לדוגמה,10%). -
MAX_SURGE(אופציונלי): המספר המקסימלי של מכונות נוספות שאפשר ליצור במהלך העדכון. הערך יכול להיות מספר קבוע (לדוגמה,5) או אחוז מהגודל של קבוצת מופעי המכונה המנוהלים (לדוגמה,10%). MIN_READY(אופציונלי): משך הזמן המינימלי שבו מכונה וירטואלית שהופעלה מחדש או הוחלפה צריכה להיות מוכנה כדי להיחשב זמינה. לדוגמה,10sלמשך 10 שניות. במאמר gcloud topic datetimes מוסבר על פורמטים של משך זמן.-
MINIMAL_ACTION(אופציונלי): הפעולה שצריך לבצע בכל מכונה במהלך עדכון ההגדרות:-
refresh: החלת ההגדרות החדשות על מכונות פועלות בלי להפעיל אותן מחדש. -
restart: הפעלה מחדש של המכונות הווירטואליות במהלך העדכון. האפשרות הזו שימושית אם האפליקציה קוראת מטא-נתונים רק במהלך ההפעלה מחדש. -
replace: מחיקת המכונות הווירטואליות ויצירת מכונות חדשות כדי להחיל עליהן את ההגדרות החדשות.
-
REPLACEMENT_METHOD(אופציונלי): מציין איזו פעולה משמשת להחלפת מופע:-
recreate: ממתין למחיקת המכונה הישנה ואז יוצר מכונה חדשה עם אותו שם כמו של המכונה הישנה. -
substitute: יוצר מכונה עם שם חדש ומוחק את המכונה הישנה
-
REST
כדי להגדיר עדכונים אוטומטיים (יזומים), שולחים בקשת PATCH לקבוצת MIG אזורית או כלל-אזורית.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"updatePolicy": {
"type": "PROACTIVE",
"maxUnavailable": {
"percent": MAX_UNAVAILABLE
},
"maxSurge": {
"percent": MAX_SURGE
},
"minimalAction": MINIMAL_ACTION,
"replacementMethod": REPLACEMENT_METHOD
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: הפרויקט שבו נמצאת קבוצת ה-MIG. -
REGION: האזור שבו נמצאת קבוצת ה-MIG. לקבוצת MIG אזורית, מחליפים אתregions/REGIONב-zones/ZONE. -
INSTANCE_GROUP_NAME: שם ה-MIG. -
MAX_UNAVAILABLE(אופציונלי): המספר המקסימלי של מכונות שלא יהיו זמינות במהלך העדכון. לדוגמה, אם מגדירים את הדגלupdate-minimal-actionלערךRESTART, הדגל מגביל את מספר המכונות הווירטואליות שמופעלות מחדש בכל פעם. אפשר להגדיר אחוז (לדוגמה,"percent": 80ל-80%) או מספר קבוע. כדי לציין מספר קבוע, מחליפים את"percent": MAX_UNAVAILABLEב-"fixed": MAX_UNAVAILABLE. -
MAX_SURGE(אופציונלי): המספר המקסימלי של מכונות נוספות שאפשר ליצור במהלך העדכון. אפשר להגדיר את ההנחה באחוזים או בסכום קבוע. -
MINIMAL_ACTION(אופציונלי): הפעולה שצריך לבצע בכל מכונה במהלך עדכון ההגדרות:-
REFRESH: החלת ההגדרות החדשות על מכונות פועלות בלי להפעיל אותן מחדש. -
RESTART: הפעלה מחדש של המכונות הווירטואליות במהלך העדכון. האפשרות הזו שימושית אם האפליקציה קוראת מטא-נתונים רק במהלך ההפעלה מחדש. -
REPLACE: מחיקת המכונות הווירטואליות ויצירת מכונות חדשות כדי להחיל עליהן את ההגדרות החדשות.
-
REPLACEMENT_METHOD(אופציונלי): מציין איזו פעולה משמשת להחלפת מופע:-
RECREATE: ממתין למחיקת המכונה הישנה ואז יוצר מכונה חדשה עם אותו שם כמו של המכונה הישנה. -
SUBSTITUTE: יוצר מכונה עם שם חדש ומוחק את המכונה הישנה
-
אם משמיטים את הדגלים האופציונליים, הקבוצה משתמשת בערכים שמוגדרים במדיניות העדכון של הקבוצה. אפשר לבדוק את מדיניות העדכון באמצעות ה-CLI של gcloud או REST.
סלקטיבי (אופורטוניסטי)
אם רוצים לקבוע מתי ועל אילו מכונות וירטואליות להחיל הגדרה חדשה, צריך להגדיר את סוג מדיניות העדכון של הקבוצה כ-opportunistic. מידע נוסף זמין במאמר סוג עדכון סלקטיבי (אופורטוניסטי).
כשבוחרים להחיל עדכוני הגדרות באופן סלקטיבי, שינויים בהגדרות של כל המכונות, בתבנית של הגדרות המכונה או בהגדרות של כל מכונה בקבוצה לא חלים באופן אוטומטי על המכונות הווירטואליות הקיימות. כדי לעדכן מכונות וירטואליות קיימות, צריך להחיל עליהן באופן מפורש הגדרות אישיות מעודכנות.
כדי להחיל באופן סלקטיבי עדכונים של הגדרות ה-VM על מכונות וירטואליות ב-MIG, צריך להשתמש ב-CLI של gcloud או ב-REST.
gcloud
כדי להגדיר עדכונים סלקטיביים (אופורטוניסטיים), משתמשים בפקודה update:
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
--update-policy-type=opportunisticכשמגדירים את סוג העדכון של הקבוצה ל-opportunistic, צריך להפעיל את העדכון כשרוצים להחיל את ההגדרות החדשות על מכונות וירטואליות קיימות.
החלת ההגדרות על מכונות וירטואליות ספציפיות
כדי לעדכן מכונות נבחרות, משתמשים בפקודה הבאה:
gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
--instances INSTANCE_NAMES \
--minimal-action=MINIMAL_ACTION \
--most-disruptive-allowed-action=MOST_DISRUPTIVE_ALLOWED_ACTION
החלת ההגדרה על כל המכונות הווירטואליות
כדי לעדכן את כל המכונות הקיימות, משתמשים בפקודה הבאה:
gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
--all-instances \
--minimal-action=MINIMAL_ACTION \
--most-disruptive-allowed-action=MOST_DISRUPTIVE_ALLOWED_ACTION
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_GROUP_NAME: שם ה-MIG. -
INSTANCE_NAMES: רשימת המכונות שעליהן רוצים להחיל את התבנית. -
MINIMAL_ACTION(אופציונלי): הפעולה שצריך לבצע בכל מכונה במהלך עדכון ההגדרות שלה:-
refresh(ברירת המחדל): החלת ההגדרות החדשות על מכונות פועלות בלי להפעיל אותן מחדש. -
restart: הפעלה מחדש של המכונות הווירטואליות במהלך העדכון. האפשרות הזו שימושית אם האפליקציה קוראת מטא-נתונים רק במהלך ההפעלה מחדש. -
replace: מחיקת המכונות הווירטואליות ויצירת מכונות חדשות כדי להחיל עליהן את ההגדרות החדשות.
-
MOST_DISRUPTIVE_ALLOWED_ACTION(אופציונלי): מבצעים את הפעולה הזו לכל היותר בכל מופע. אם עדכון ההגדרות דורש פעולה משבשת יותר מזו שצוינה כאן, העדכון נכשל ולא מתבצעים שינויים.-
none: לא תתבצע פעולה -
refresh: הפעלת ההגדרות החדשות בלי לעצור את המכונות, אם אפשר. לדוגמה, אפשר להשתמש ב-refreshכדי להחיל שינויים שמשפיעים רק על מטא-נתונים או על דיסקים נוספים. -
restart: החלת ההגדרות החדשות בלי להחליף מכונות, אם אפשר. לדוגמה, כדי להחיל שינויים בסוג המכונה, מספיק לעצור את המכונות ולהפעיל אותן מחדש. -
replace: החלפת מופעים ישנים בהתאם לדגל--replacement-method.
-
REST
כדי להגדיר עדכונים סלקטיביים (אופורטוניסטיים), שולחים בקשת PATCH לקבוצת MIG ברמת האזור או ברמת המחוז.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"updatePolicy": {
"type": "OPPORTUNISTIC"
}
}כשמגדירים את סוג העדכון של הקבוצה ל-OPPORTUNISTIC, צריך להפעיל את העדכון כשרוצים להחיל את ההגדרות החדשות על מכונות וירטואליות קיימות.
החלת ההגדרות על מכונות וירטואליות ספציפיות
כדי לעדכן מכונות ספציפיות, משתמשים בבקשה הבאה:
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": MINIMAL_ACTION,
"mostDisruptiveAllowedAction": MOST_DISRUPTIVE_ALLOWED_ACTION
}החלת ההגדרה על כל המכונות הווירטואליות
כדי לעדכן את כל המכונות הקיימות, משתמשים בבקשה הבאה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances
{
"allInstances": true,
"minimalAction": MINIMAL_ACTION,
"mostDisruptiveAllowedAction": MOST_DISRUPTIVE_ALLOWED_ACTION
}מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: הפרויקט שבו נמצאת קבוצת ה-MIG. -
REGION: האזור שבו נמצאת קבוצת ה-MIG. לקבוצת MIG אזורית, מחליפים אתregions/REGIONב-zones/ZONE. -
INSTANCE_GROUP_NAME: שם ה-MIG. -
MINIMAL_ACTION(אופציונלי): הפעולה שצריך לבצע בכל מכונה במהלך עדכון ההגדרות:-
REFRESH: החלת ההגדרות החדשות על מכונות פועלות בלי להפעיל אותן מחדש. -
RESTART: הפעלה מחדש של המכונות הווירטואליות במהלך העדכון. האפשרות הזו שימושית אם האפליקציה קוראת מטא-נתונים רק במהלך ההפעלה מחדש. -
REPLACE: מחיקת המכונות הווירטואליות ויצירת מכונות חדשות כדי להחיל עליהן את ההגדרות החדשות.
-
MOST_DISRUPTIVE_ALLOWED_ACTION(אופציונלי): מבצעים את הפעולה הזו לכל היותר בכל מופע. אם עדכון ההגדרות דורש פעולה משבשת יותר מזו שצוינה כאן, העדכון נכשל ולא מתבצעים שינויים.-
NONE: לא תתבצע פעולה -
REFRESH: הפעלת ההגדרות החדשות בלי לעצור את המכונות, אם אפשר. לדוגמה, אפשר להשתמש ב-REFRESHכדי להחיל שינויים שמשפיעים רק על מטא-נתונים או על דיסקים נוספים. -
RESTART: החלת ההגדרות החדשות בלי להחליף מכונות, אם אפשר. לדוגמה, כדי להחיל שינויים בסוג המכונה, מספיק לעצור את המכונות ולהפעיל אותן מחדש. -
REPLACE: החלפת מופעים ישנים בהתאם לשדהupdatePolicy.replacementMethodשל הקבוצה.
-
איך בודקים אם הוחלה הגדרה מעודכנת של כל המופעים
כדי לוודא שההגדרה העדכנית ביותר של כל המכונות הוחלה על כל המכונות הווירטואליות בקבוצה, אפשר להשתמש באחת מהשיטות הבאות.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בוחרים את קבוצת ה-MIG שרוצים לראות את ההגדרות של כל המכונות שלה.
עוברים לכרטיסייה פרטים.
אם ההגדרה העדכנית ביותר של כל המכונות חלה על כל המכונות הווירטואליות, בקטע All instances configuration, חותמת הזמן של Last modified והשדה Status צריכים להציג את הערכים הבאים:
- Last modified: הזמן שבו החלתם את ההגדרות האישיות של כל המכונות על כל המכונות הווירטואליות.
- Status: מוצג הערך Applied to all VMs. אם המדיניות לא חלה על כל המכונות הווירטואליות, הסטטוס שיוצג הוא Pending VM update.
gcloud
משתמשים בפקודה describe וכוללים את הדגל --format כדי לחפש את הערך status.allInstancesConfig.effective.
gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \
--format="(status.allInstancesConfig)"פלט לדוגמה:
status:
allInstancesConfig:
currentRevision: 2022-12-02T10:30:15.012345Z
effective: trueאם הערך של effective מוגדר כ-true, כל המכונות הווירטואליות יקבלו את ההגדרה העדכנית ביותר. הערך currentRevision מציג את חותמת הזמן של השינוי האחרון בהגדרות של כל המכונות בקבוצה.
אם הערך של effective הוא false, סימן שההגדרה האחרונה עדיין לא הוחלה על כל המכונות הווירטואליות.
כדי לבדוק את הסטטוס של כל מכונה וירטואלית, אפשר להציג את כל המכונות הווירטואליות של ה-MIG או לבדוק כל מכונה וירטואלית בנפרד באמצעות הפקודה describe-instance:
gcloud compute instance-groups managed describe-instance INSTANCE_GROUP_NAME \
--instance INSTANCE_NAMEפלט לדוגמה:
allInstancesConfig: revision: 2022-12-02T10:30:15.012345Z currentAction: NONE id: '8393021473297481188' instance: .../projects/PROJECT/zones/ZONE/instances/INSTANCE_NAME instanceStatus: RUNNING name: INSTANCE_NAME version: instanceTemplate: .../projects/PROJECT/global/instanceTemplates/INSTANCE_TEMPLATE
כדי לראות באילו מכונות וירטואליות מופעלת ההגדרה העדכנית, משווים בין חותמת הזמן של revision בכל מכונה וירטואלית לבין חותמת הזמן של currentRevision ב-MIG.
REST
שולחים בקשת GET ב-MIG ברמת האזור או ברמת התחום כדי לבדוק את הערך של הדגל status.allInstancesConfig.effective.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
דוגמה לתשובה:
{
...
"status": {
"isStable": "true",
"versionTarget": {
"isReached": "true"
},
"allInstancesConfig": {
"currentRevision": "2022-12-02T10:30:15.012345Z",
"effective": "true"
},
...
},
...
}אם השדה effective מוגדר לערך true, כל המכונות הווירטואליות מוגדרות לפי הגרסה האחרונה. בשדה currentRevision מוצגת חותמת הזמן של השינוי האחרון בהגדרות של כל המכונות בקבוצה.
אם בשדה effective מופיע הערך false, סימן שההגדרה האחרונה עדיין לא הוחלה על כל המכונות הווירטואליות.
כדי לבדוק את הסטטוס של כל מכונה, מציגים את רשימת המכונות המנוהלות של קבוצת המכונות המנוהלות האזורית או הכלל-אזורית:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/listManagedInstances
פלט לדוגמה:
{
"managedInstances": [
...
{
"instance": ".../zones/ZONE/instances/INSTANCE_NAME",
"instanceStatus": "RUNNING",
"currentAction": "NONE",
"allInstancesConfig": {
"revision": "2022-12-02T10:30:15.012345Z"
},
"version": {
"name": "V1",
"instanceTemplate": ".../projects/.../instanceTemplates/INSTANCE_TEMPLATE"
}
},
{
...
}
]
}
כדי לראות באילו מכונות וירטואליות הוחלה ההגדרה העדכנית, משווים בין חותמת הזמן של revision בכל מכונה וירטואלית לבין חותמת הזמן של currentRevision ב-MIG.
הצגת רשימה של מאפיינים בהגדרות של כל המכונות
ההגדרה של כל המכונות היא חלק מההגדרה של ה-MIG. כדי לבדוק את ההגדרות של כל המכונות, אפשר להשתמש באחת מהשיטות הבאות.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בוחרים את קבוצת ה-MIG שרוצים לראות את ההגדרות של כל המכונות שלה.
עוברים לכרטיסייה פרטים.
עיינו בקטע הגדרת כל המכונות.
gcloud
משתמשים בפקודה describe וכוללים את הדגל --format כדי להציג את ערך ההגדרה של כל המכונות בקבוצה.
gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \
--format="(allInstancesConfig)"הפקודה מחזירה את הגדרת כל המכונות של הקבוצה, אם היא קיימת.
REST
שולחים בקשת GET לקבוצת MIG אזורית או מחוזית ומחפשים את השדה allInstancesConfig.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
אם השדה allInstancesConfig לא מוגדר, לקבוצה אין הגדרה לכל המכונות.
מחיקת מאפיינים מההגדרה של כל המופעים
אם מוחקים מאפיין מההגדרה של כל המכונות בקבוצת ה-MIG, ואותו מאפיין קיים בתבנית של הגדרות המכונה של קבוצת ה-MIG, המכונות הווירטואליות בקבוצת ה-MIG יקבלו בירושה את המאפיין הזה מהתבנית של הגדרות המכונה, אחרי שההגדרה האחרונה תוחל על המכונות הווירטואליות בקבוצת ה-MIG. למידע נוסף על החלת ההגדרות העדכניות על מכונות וירטואליות קיימות, ראו החלת הגדרות של כל המכונות על מכונות וירטואליות קיימות.
כדי למחוק מאפיינים מהגדרה של כל המכונות, אפשר להשתמש באחת מהדרכים הבאות.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
בוחרים את קבוצת ה-MIG שרוצים למחוק ממנה את ההגדרה של כל המכונות.
לוחצים על Edit.
לוחצים על הקטע תבנית של הגדרות מכונה & שינויים מברירת המחדל כדי להרחיב אותו.
בקטע All-instances configuration:
- בהתאם למאפיין שרוצים למחוק, לוחצים על ניהול מטא-נתונים או על ניהול תוויות.
- בחלונית ניהול מטא-נתונים או ניהול תוויות, מציבים את הסמן מעל הגדרה כדי להפעיל את אפשרות המחיקה, ואז לוחצים על מחיקת פריט.
- לוחצים על Save.
לוחצים על Save כדי להחיל את השינויים על קבוצת ה-MIG.
אם סוג העדכון של ה-MIG מוגדר כ-Automatic, השינויים בהגדרות של כל המכונות חלים באופן מיידי על כל המכונות הווירטואליות הקיימות. אם סוג העדכון הוא Selective, צריך להחיל את ההגדרות באופן סלקטיבי על המכונות הווירטואליות הקיימות. מידע נוסף זמין במאמר החלת הגדרה של כל המכונות על מכונות וירטואליות קיימות.
gcloud
כדי למחוק מאפיינים, משתמשים בפקודה all-instances-configuration delete ומציינים מפתח אחד או יותר למאפיינים שרוצים למחוק.
gcloud compute instance-groups managed all-instances-config delete INSTANCE_GROUP_NAME \
--metadata=KEY1[, KEY1]\
--labels=KEY1[, KEY1]חשוב לזכור להחיל את ההגדרות המעודכנות על המכונות הווירטואליות הקיימות ב-MIG.
REST
כדי למחוק מאפיינים, שולחים בקשת PATCH לקבוצת MIG ברמת האזור או ברמת המחוז, ומציינים ערך null כמפתח לכל מאפיין שרוצים להסיר.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"allInstancesConfig": {
"properties": {
"metadata": {
"KEY1": null,
...
},
"labels": {
"KEY2": null,
...
}
}
}
}חשוב לזכור להחיל את ההגדרות המעודכנות על המכונות הווירטואליות הקיימות ב-MIG.
המאמרים הבאים
- איך מחילים באופן אוטומטי הגדרות מעודכנות על מכונות וירטואליות קיימות ב-MIG
- איך מחילים עדכוני הגדרות באופן סלקטיבי על מכונות וירטואליות קיימות ב-MIG
- הצגת מידע על קבוצת ה-MIG והמכונות הווירטואליות שלה.