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

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

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

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

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

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

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

אם מגדירים את אותו מאפיין גם בתבנית של הגדרות המכונה של ה-MIG וגם בהגדרות של כל המכונות, ה-MIG נותן עדיפות לערך מההגדרות של כל המכונות. לדוגמה, אם המטא-נתונים של enable-guest-attributes מוגדרים כ-FALSE בתבנית של הגדרות המכונה של קבוצת המכונות המנוהלות, וכ-TRUE בהגדרות של כל המכונות בקבוצת המכונות המנוהלות, אז Compute Engine מחיל את TRUE על כל המכונות בקבוצה. כך אפשר להשתמש בהגדרות של כל המכונות כדי לשנות את המאפיינים שמוגדרים בתבנית של הגדרות המכונה.

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

התפקידים הנדרשים

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

המסוף

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

    כניסה לדף Instance groups

  2. בוחרים את קבוצת ה-MIG שרוצים להגדיר בה את כל המכונות.

  3. לוחצים על Edit.

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

  5. בקטע All-instances configuration:

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

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

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

המסוף

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

    כניסה לדף Instance groups

  2. בוחרים את קבוצת ה-MIG שרוצים לראות את ההגדרות של כל המכונות שלה.

  3. עוברים לכרטיסייה פרטים.

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

המסוף

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

    כניסה לדף Instance groups

  2. בוחרים את קבוצת ה-MIG שרוצים לראות את ההגדרות של כל המכונות שלה.

  3. עוברים לכרטיסייה פרטים.

  4. עיינו בקטע הגדרת כל המכונות.

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. למידע נוסף על החלת ההגדרות העדכניות על מכונות וירטואליות קיימות, ראו החלת הגדרות של כל המכונות על מכונות וירטואליות קיימות.

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

המסוף

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

    כניסה לדף Instance groups

  2. בוחרים את קבוצת ה-MIG שרוצים למחוק ממנה את ההגדרה של כל המכונות.

  3. לוחצים על Edit.

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

  5. בקטע All-instances configuration:

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

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