האצת הרחבת הקיבולת באמצעות מכונות וירטואליות מושהות ומופסקות

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

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

שימוש ב-MIG API לצורך שינוי גודל אוטומטי

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

בחירה בין מאגרי כתובות מושעים לבין מאגרי כתובות שהשימוש בהם הופסק

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

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

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

עריכה של מדיניות ההמתנה ב-MIG

בקטע הזה מוסבר איך מגדירים את מצב מאגר ההמתנה להרחבת המאגר ואת ההשהיה הראשונית.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת המופעים שרוצים לערוך.

  3. לוחצים על עריכה כדי לשנות את קבוצת מופעי המכונה המנוהלים הזו.

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

  5. בקטע Standby pool, בוחרים באפשרות Scale-out.

  6. בשדה Initial delay (עיכוב ראשוני), מזינים את מספר השניות שקבוצת ה-MIG צריכה להמתין לפני השעיה או עצירה של מכונה וירטואלית. ההשהיה הראשונית מאפשרת לסקריפט האתחול להכין את המכונה הווירטואלית להרחבה מהירה.

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

gcloud

משתמשים בפקודה instance-groups managed update ומציינים את מצב הפעולה ואת ההשהיה הראשונית.

gcloud compute instance-groups managed update MIG_NAME \
  --standby-policy-mode=scale-out-pool \
  --standby-policy-initial-delay=DELAY \
  [--region=REGION | --zone=ZONE]

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

  • MIG_NAME: השם של ה-MIG.
  • DELAY: מספר השניות שקבוצת ה-MIG צריכה להמתין לפני שהיא משעה או מפסיקה מכונה וירטואלית. ההשהיה הראשונית מאפשרת לסקריפט האתחול להכין את המכונה הווירטואלית להרחבה מהירה.
  • REGION: ב-MIG אזורי, האזור שבו ה-MIG נמצא.
  • ZONE: במקרה של MIG אזורי, האזור שבו נמצא ה-MIG.

Terraform

בדוגמה הבאה נוצרת קבוצת MIG אזורית עם מדיניות המתנה. משתמשים בבלוק standby_policy כדי להגדיר עיכוב ראשוני וכדי להגדיר את המצב ל-SCALE_OUT_POOL.

בדוגמה נעשה שימוש במשאב google_compute_instance_group_manager. ל-MIG אזורי, משתמשים ב-google_compute_region_instance_group_manager resource.

resource "google_compute_instance_group_manager" "default" {
  name               = "standby-mig"
  base_instance_name = "test"
  target_size        = 3
  zone               = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  standby_policy {
    initial_delay_sec = 50
    mode              = "SCALE_OUT_POOL"
  }
}

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

REST

משתמשים בשיטה instanceGroupManager.patch ומציינים את מצב הפעולה וההשהיה הראשונית בגוף הבקשה. ל-MIG אזורי, משתמשים בשיטה regionInstanceGroupManager.patch.

PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"standbyPolicy": {
  "mode": "SCALE_OUT_POOL",
  "initialDelaySec": DELAY
}
// ...
}

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

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: במיג אזורי, האזור שבו נמצא המיג.
    • ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION ומציינים את האזור של ה-MIG.
  • MIG_NAME: השם של ה-MIG.
  • DELAY: מספר השניות שקבוצת ה-MIG צריכה להמתין לפני שהיא משעה או מפסיקה מכונה וירטואלית. ההשהיה הראשונית מאפשרת לסקריפט האתחול להכין את המכונה הווירטואלית להרחבה מהירה.

שינוי הגודל של מאגר ההמתנה ב-MIG

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

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת המופעים שרוצים לערוך.

  3. לוחצים על עריכה כדי לשנות את קבוצת מופעי המכונה המנוהלים הזו.

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

  5. בקטע Standby pool, מזינים את הגדלים החדשים בשדות Suspended VMs ו-Stopped VMs.

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

gcloud

משתמשים בפקודה instance-groups managed update עם הדגלים --suspended-size ו---stopped-size.

gcloud compute instance-groups managed update MIG_NAME \
--suspended-size=SUSPENDED_SIZE \
--stopped-size=STOPPED_SIZE \
[--region=REGION | --zone=ZONE]

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

  • MIG_NAME: השם של קבוצת המופעים המנוהלת שבה רוצים להשהות מופע.
  • SUSPENDED_SIZE: מספר המכונות הווירטואליות המושעות שה-MIG צריך לשמור בכל זמן נתון.
  • STOPPED_SIZE: מספר המכונות הווירטואליות המופסקות שקבוצת ה-MIG צריכה לשמור בכל זמן נתון.
  • REGION: במקרה של MIG אזורי, האזור שבו ה-MIG נמצא.
  • ZONE: במקרה של MIG אזורי, האזור שבו נמצא ה-MIG.

Terraform

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

בדוגמה נעשה שימוש במשאב google_compute_instance_group_manager. ל-MIG אזורי, משתמשים ב-google_compute_region_instance_group_manager resource.

resource "google_compute_instance_group_manager" "default" {
  name                  = "standby-mig"
  base_instance_name    = "test"
  target_size           = 1
  target_suspended_size = 1
  target_stopped_size   = 2
  zone                  = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  standby_policy {
    initial_delay_sec = 50
    mode              = "SCALE_OUT_POOL"
  }
}

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

REST

משתמשים בשיטה instanceGroupManager.patch ומציינים את הגדלים של מאגרי המכונות הווירטואליות שהושעו והופסקו בגוף הבקשה. ל-MIG אזורי, משתמשים בשיטה regionInstanceGroupManager.patch.

PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"targetSuspendedSize": SUSPENDED_SIZE,
"targetStoppedSize": STOPPED_SIZE
// ...
}

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

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: במקרה של MIG אזורי, האזור שבו נמצא ה-MIG.
    • ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION ומציינים את האזור של ה-MIG.
  • MIG_NAME: השם של קבוצת ה-MIG שבה רוצים להפסיק מכונה.
  • SUSPENDED_SIZE: מספר המכונות הווירטואליות המושעות שה-MIG צריך לשמור בכל זמן נתון.
  • STOPPED_SIZE: מספר המכונות הווירטואליות המופסקות שקבוצת ה-MIG צריכה לשמור בכל זמן נתון.

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