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

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

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

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

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

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

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

    המסוף

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

    gcloud

    1. התקינו את ה-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 .

הגדרת עדכון בזמן תיקון

כדי להגדיר עדכון בתיקון, משתמשים במסוף Google Cloud , ב-CLI של gcloud או ב-REST.

המסוף

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

    כניסה לדף Instance groups

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

  3. לוחצים על עריכה כדי לשנות את ה-MIG.

  4. לוחצים על Instance lifecycle and autohealing (מחזור החיים של מופע ותיקון אוטומטי) כדי להרחיב את הקטע.

  5. בקטע Updates during VM instance repair (עדכונים במהלך תיקון של מכונה וירטואלית), בוחרים באפשרות Update the instance configuration (עדכון הגדרות המכונה).

  6. לוחצים על Save.

gcloud

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

gcloud compute instance-groups managed update MIG_NAME \
    --force-update-on-repair

כדי ליצור קבוצת מופעים מנוהלת חדשה, משתמשים בפקודה create:

gcloud compute instance-groups managed create MIG_NAME \
    --template INSTANCE_TEMPLATE_URL_ \
    --size SIZE \
    --force-update-on-repair

מחליפים את מה שכתוב בשדות הבאים:

  • MIG_NAME: השם של קבוצת המכונות.
  • INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • בתבנית של הגדרות מכונה גלובלית: INSTANCE_TEMPLATE_ID
  • SIZE: גודל היעד של קבוצת המכונות.

REST

כדי להוסיף מכונה לקבוצת MIG אזורית קיימת, משתמשים בשיטה instanceGroupManagers.patch, וכדי להוסיף מכונה לקבוצת MIG אזורית קיימת, משתמשים בשיטה regionInstanceGroupManagers.patch.

מבצעים את הקריאה הבאה כדי להגדיר עדכון בתיקון ב-MIG אזורי קיים:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
  "instanceLifecyclePolicy": {
    "forceUpdateOnRepair": YES
  }
}

כדי ליצור קבוצת MIG אזורית חדשה, משתמשים בשיטה regionInstanceGroupManagers.insert.instanceGroupManagers.insert

כדי להגדיר עדכון בתיקון כשיוצרים קבוצת MIG אזורית, מפעילים את הקריאה הבאה:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
{
  "name": "MIG_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "targetSize": SIZE,
  "instanceLifecyclePolicy": {
    "forceUpdateOnRepair": YES
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: האזור שבו נמצאת קבוצת ה-MIG.
  • MIG_NAME: השם של קבוצת המכונות.
  • INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • בתבנית של הגדרות מכונה גלובלית: INSTANCE_TEMPLATE_ID
  • SIZE: גודל היעד של קבוצת המכונות.

איך בודקים אם האפשרות 'עדכון במהלך התיקון' מופעלת

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

המסוף

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

    כניסה לדף Instance groups

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

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

  4. בקטע VM instance lifecycle, בודקים את האפשרות שנבחרה בשדה Updates during VM instance repair. אם בשדה מופיע Update the instance configuration (עדכון הגדרות המופע), סימן שהעדכון במהלך התיקון מופעל.

gcloud

משתמשים בפקודה describe באופן הבא:

gcloud compute instance-groups managed describe MIG_NAME \
--format="(instanceLifecyclePolicy)"

בודקים את השדה forceUpdateOnRepair בגוף התשובה. השדה הזה מכיל אחד מהערכים הבאים:

  • NO: ברירת מחדל. ‫MIG לא מעדכן מכונות וירטואליות כשהן מתוקנות.
  • YES: קבוצת ה-MIG מעדכנת את המכונות הווירטואליות במהלך התיקון שלהן.

זו דוגמה לפלט:

instanceLifecyclePolicy:
 forceUpdateOnRepair: YES

REST

כדי להוסיף מופע ל-MIG אזורי, משתמשים בשיטה instanceGroupManagers.get. כדי להוסיף מופע ל-MIG אזורי, משתמשים בשיטה regionInstanceGroupManagers.get.

לדוגמה, בקבוצת MIG אזורית, משתמשים בפקודה הבאה:

GET https://compute.googleapis.com/compute/v1/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

בגוף התגובה, בודקים את השדה instanceLifecyclePolicy.forceUpdateOnRepair, שמכיל אחד מהערכים הבאים:

  • NO: ברירת מחדל. ‫MIG לא מעדכן מכונות וירטואליות כשהן מתוקנות.
  • YES: קבוצת ה-MIG מעדכנת את המכונות הווירטואליות במהלך התיקון שלהן.

זוהי דוגמה לתשובה:

{
  ...
  "name": "example-mig",
  "targetSize": 12,
  ...
  "instanceLifecyclePolicy": {
    "forceUpdateOnRepair": "YES"
  },
  ...
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: האזור שבו נמצאת קבוצת ה-MIG.
  • MIG_NAME: השם של קבוצת המכונות.

השבתת העדכון במהלך התיקון

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

משתמשים במסוף Google Cloud , ב-CLI של gcloud או ב-REST כדי להשבית את העדכון בתיקון.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG שבה רוצים להשבית את העדכון בתיקון.

  3. לוחצים על עריכה כדי לשנות את ה-MIG.

  4. לוחצים על Instance lifecycle and autohealing (מחזור החיים של מופע ותיקון אוטומטי) כדי להרחיב את הקטע.

  5. בקטע Updates during VM instance repair (עדכונים במהלך תיקון של מופע מכונה וירטואלית), בוחרים באפשרות Keep the same instance configuration (שמירה של אותה הגדרת מופע).

  6. לוחצים על Save.

gcloud

משתמשים בפקודה update כדי להגדיר את הדגל --no-force-update-on-repair באופן הבא:

gcloud compute instance-groups managed update MIG_NAME \
    --no-force-update-on-repair

REST

כדי להוסיף מופע ל-MIG אזורי, משתמשים בשיטה instanceGroupManagers.patch. כדי להוסיף מופע ל-MIG אזורי, משתמשים בשיטה regionInstanceGroupManagers.patch.

לדוגמה, כדי להשבית את העדכון בתיקון של קבוצת MIG אזורית, משתמשים בפקודה הבאה:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
  "instanceLifecyclePolicy":
  { "forceUpdateOnRepair": NO
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: האזור שבו נמצאת קבוצת ה-MIG.
  • MIG_NAME: השם של קבוצת המכונות.

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