תיקון מכונה וירטואלית באזור חלופי

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

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

מגבלות

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

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

אישור תיקונים באזור חלופי

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

המסוף

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

    כניסה לדף Instance groups

  2. אם כבר יש לכם קבוצת מופעים מנוהלת, אתם יכולים לבצע את הפעולות הבאות:

    1. לוחצים על השם של קבוצת ה-MIG.
    2. לוחצים על Edit.
  3. אם עדיין אין לכם MIG, פועלים לפי השלבים הבאים:

    1. לוחצים על Create instance group.
    2. מזינים שם.
    3. בוחרים תבנית של הגדרות מכונה.
    4. בקטע Location, בוחרים באפשרות Multiple zones, ואז בוחרים אזור ותחומים.
    5. בתפריט הנפתח תבנית טירגוט של חלוקת חשיפות, בוחרים באפשרות מאוזנת או כלשהי.

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

      • אם רוצים לבחור באפשרות Any, צריך קודם למחוק את הגדרת שינוי הגודל האוטומטי. כדי למחוק את ההגדרה של שינוי גודל אוטומטי, בתפריט הנפתח Autoscaling mode (מצב שינוי גודל אוטומטי), לוחצים על Delete autoscaling configuration (מחיקת ההגדרה של שינוי גודל אוטומטי).

  4. בקטע VM instance lifecycle מוודאים שהשדות הבאים מוגדרים כך:

    1. הרשימה פעולת ברירת המחדל במקרה של כשל מוגדרת לתיקון המופע.

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

    3. בקטע Change zone during VM instance repair, מסמנים את תיבת הסימון Allow repair of VMs in an alternate zone.

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

  6. אחרי שמסיימים, לוחצים על שמירה אם מדובר ב-MIG קיים, או על יצירה אם מדובר ב-MIG חדש.

gcloud

כדי להגדיר MIG קיים לתיקון מכונה וירטואלית באזור חלופי, משתמשים בפקודה update:

gcloud compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair \
    --region=REGION

כדי ליצור קבוצת MIG שיכולה לתקן מכונה וירטואלית באזור חלופי, משתמשים בפקודה create:

gcloud compute instance-groups managed create MIG_NAME \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --zones=ZONES \
    --target-distribution-shape=SHAPE \
    --instance-redistribution-type=none \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair

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

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

Terraform

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

כדי ליצור קבוצת MIG שיכולה לתקן מכונה וירטואלית באזור חלופי, משתמשים במשאב google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  provider           = google-beta
  name               = "example-rmig"
  base_instance_name = "example-rmig-instance"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "BALANCED"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_lifecycle_policy {
    default_action_on_failure = "REPAIR"
    force_update_on_repair    = "YES"
    on_repair {
      allow_changing_zone = "YES"
    }
  }

  update_policy {
    instance_redistribution_type = "NONE"
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REPLACE"
    max_surge_fixed              = 0
    max_unavailable_fixed        = 6
  }
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

REST

כדי להגדיר קבוצת מכונות מנוהלת קיימת לתיקון מכונה וירטואלית באזור חלופי, משתמשים ב-method ‏regionInstanceGroupManagers.patch:

PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "YES"
      },
      "forceUpdateOnRepair": "YES"
    }
}

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

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "MIG_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "targetSize": SIZE,
  "distributionPolicy": {
    "targetShape": "SHAPE"
  }
  "updatePolicy": {
    "instanceRedistributionType": none
  }
  "instanceLifecyclePolicy": {
    "forceUpdateOnRepair": "YES",
    "onRepair": {
      "allowChangingZone": "YES"
    }
  }
}

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

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

אי אפשר לבצע תיקונים באזור חלופי

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

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

המסוף

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

    כניסה לדף Instance groups

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

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

  4. עוברים לקטע מחזור החיים של מכונת VM.

  5. בקטע Change zone during VM instance repair (שינוי אזור במהלך תיקון של מופע מכונה וירטואלית), מבטלים את הסימון בתיבת הסימון Allow repair of VMs in an alternate zone (התרת תיקון של מכונות וירטואליות באזור חלופי).

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

gcloud

כדי למנוע תיקונים באזור חלופי, משתמשים בפקודה update:

gcloud compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=NO \
    --region=REGION

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

  • ‫MIG_NAME: השם של ה-MIG.
  • ‫REGION: האזור שבו נמצאת קבוצת ה-MIG.

REST

כדי לא לאפשר תיקונים באזור חלופי, משתמשים בשיטה regionInstanceGroupManagers.patch:

PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "NO"
      }
    }
}

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

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

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