יצירת קבוצת MIG עם מכונות וירטואליות בכמה אזורים באזור

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

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

אפשר גם לקרוא על תרחישים בסיסיים אחרים ליצירת MIG.

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

מגבלות

כדי לראות את הרשימה המלאה של מגבלות MIG, שמשתנה בהתאם להגדרה שבה אתם משתמשים, אפשר לעיין במאמר מגבלות MIG.

יצירת קבוצת MIG עם מכונות וירטואליות בכמה אזורים באזור

משתמשים ב- Cloud de Confiance console, ב-ה-CLI של gcloud, ב-Terraform או ב-REST.

המסוף

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

    כניסה לדף Instance groups

    שאר השלבים יופיעו במסוף Cloud de Confiance .

  2. לוחצים על יצירת קבוצת מופעים כדי ליצור קבוצת מופעים חדשה.
  3. בוחרים אחת מהאפשרויות בNew managed instance group options (אפשרויות חדשות של קבוצת מופעי מכונה מנוהלים):
    • ללא שמירת מצב (ברירת מחדל)
    • Stateful
  4. נותנים שם לקבוצת המופעים, ואפשר גם להוסיף תיאור.
  5. בוחרים תבנית של הגדרות מכונה לקבוצת המכונות או יוצרים תבנית חדשה.
  6. בקטע מספר המכונות או התאמה אוטומטית לעומס, מציינים את מספר המכונות בקבוצה. חשוב לזכור להקצות מספיק מכונות וירטואליות כדי לתמוך באפליקציה אם מתרחש כשל באזור.
  7. בקטע מיקום, בוחרים באפשרות מספר אזורים.
  8. בוחרים אזור ואת האזורים שרוצים להשתמש בהם. אם בחרתם תבנית של הגדרות מכונה אזורית, האזור נבחר אוטומטית על סמך האזור של תבנית הגדרות המכונה.
  9. בקטע צורה של חלוקת הטירגוט, בוחרים באפשרות שווה. אם רוצים לבחור צורה אחרת, אפשר לעיין במאמר הגדרת צורה של חלוקת יעד למכונות וירטואליות בקבוצת MIG אזורית.
  10. אם רוצים להשבית את הפצה יזומה של מופעים, מבטלים את הסימון בתיבת הסימון הפצה של מופעים בקטע הפצה של מופעים.
  11. ממשיכים בתהליך היצירה של קבוצת ה-MIG.
  12. כדי ליצור את קבוצת ה-MIG, לוחצים על Create (יצירה).

gcloud

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

gcloud compute instance-templates create example-template --instance-template-region us-east1

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

gcloud compute instance-templates describe example-template --region us-east1 --format="value(id)"

לאחר מכן, משתמשים בפקודה instance-groups managed create עם הדגל --region. לדוגמה, הפקודה הבאה יוצרת קבוצת MIG אזורית בשלושה אזורים באזור us-east1:

gcloud compute instance-groups managed create example-rmig \
    --template projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
    --size 30 \
    --region us-east1

אם רוצים לבחור אזורים ספציפיים שבהם הקבוצה צריכה להשתמש, צריך לספק את הדגל --zones:

gcloud compute instance-groups managed create example-rmig \
    --template projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
    --size 30 \
    --zones us-east1-b,us-east1-c

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

אם רוצים להשבית את ההפצה היזומה של מופעים, אפשר לעיין במאמר בנושא הפצה יזומה של מופעים.

Terraform

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

כדי ליצור MIG אזורי, אפשר להשתמש במשאב google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  target_size               = 30
  base_instance_name        = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

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

REST

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

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

לאחר מכן, יוצרים בקשת POST ל-method‏ regionInstanceGroupManagers.insert. בגוף הבקשה, מציינים את שם הקבוצה, גודל הקבוצה ואת כתובת ה-URL של תבנית של הגדרות מכונה. אפשר גם לציין שדות אחרים, כמו שם הבסיס של המופעים בקבוצה.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE"
}

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

  • PROJECT_ID: מזהה הפרויקט של הבקשה הזו.
  • REGION: האזור של הקבוצה.
  • BASE_INSTANCE_NAME: (אופציונלי) שם המופע של כל מופע של מכונה וירטואלית שנוצר כחלק מהקבוצה. לדוגמה, אם שם הבסיס של המכונה הוא example-instance, המכונות שייווצרו יהיו עם שמות כמו example-instance-[RANDOM_STRING], כאשר [RANDOM_STRING] נוצר על ידי השרת.
  • INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • בתבנית של הגדרות מכונה גלובלית: INSTANCE_TEMPLATE_ID
  • TARGET_SIZE: מספר היעד של מכונות וירטואליות לקבוצה.

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE",
  "distributionPolicy": {
     "zones": [
       {"zone": "zones/ZONE"},
       {"zone": "zones/ZONE"}
      ]
   }
}

לדוגמה, הפקודה הבאה יוצרת קבוצת מופעי מכונה מנוהלים (MIG) אזורית בשם example-rmig עם 10 מופעי מכונה מנוהלים שמפוזרים בין אזורים us-east1-b ו-us-east1-c:

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers

{
  "instanceTemplate": "projects/my-project/regions/us-east1/instanceTemplates/1234567890",
  "name": "example-rmig",
  "targetSize": 10,
  "distributionPolicy": {
      "zones": [
        {"zone": "zones/us-east1-b"},
        {"zone": "zones/us-east1-c"}
      ]
   }
}

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

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

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

התפלגות המכונות הווירטואליות בין האזורים

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

מידע נוסף זמין במאמרים הבאים:

חלוקה מחדש יזומה של מופעים

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

מידע נוסף זמין במאמרים הבאים:

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