יצירת MIG עם הפעלה של שינוי גודל אוטומטי

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

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

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

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

מגבלות

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

יצירת קבוצת מופעים מנוהלת (MIG) והפעלת התאמה אוטומטית לעומס (autoscaling)

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

המסוף

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

    כניסה לדף Instance groups

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

  2. אם יש לכם קבוצת מופעים, בוחרים אותה ולוחצים על עריכה. אם אין לכם קבוצת מופעים, לוחצים על יצירת קבוצת מופעים.
  3. אם יוצרים קבוצת מכונות חדשה, מקצים לה שם ואז בוחרים תבנית של הגדרות מכונה לקבוצת המכונות או יוצרים תבנית חדשה.
  4. אם אין הגדרה של שינוי גודל אוטומטי, בקטע שינוי גודל אוטומטי, לוחצים על הגדרת שינוי גודל אוטומטי.
  5. בקטע מצב התאמה אוטומטית לעומס, בוחרים באפשרות מופעל: הוספה והסרה של מכונות לקבוצה כדי להפעיל את ההתאמה האוטומטית לעומס.
  6. מציינים את המספר המינימלי והמקסימלי של מופעים שרוצים שהכלי להתאמה אוטומטית לעומס ייצור בקבוצה הזו.
  7. בקטע Autoscaling metrics, אם עדיין לא קיים מדד CPU utilization, מוסיפים אותו:
    1. לוחצים על הוספת מדד.
    2. בקטע סוג המדד, בוחרים באפשרות ניצול CPU.
    3. מזינים את יעד ניצול המעבד הרצוי. הערך הזה נחשב לאחוז. לדוגמה, כדי להגדיר ניצול של 75% מהמעבד, מזינים 75.
    4. בקטע התאמה אוטומטית לעומס על סמך חיזוי, בוחרים באפשרות מושבת. כדי לקבל מידע נוסף על התאמה אוטומטית לעומס על סמך חיזוי, ולבדוק אם הוא מתאים לעומס העבודה שלכם, אפשר לעיין במאמר התאמה לעומס על סמך חיזוי.
    5. לוחצים על סיום.
  8. אתם יכולים להשתמש בתקופת האתחול כדי להגדיר את תקופת האתחול, שמציינת למנגנון שינוי גודל הקבוצה האוטומטי כמה זמן לוקח לאתחל את האפליקציה. הגדרת תקופת אתחול מדויקת משפרת את ההחלטות של הכלי לשינוי גודל אוטומטי. לדוגמה, כשמבצעים הגדלה, הכלי להתאמת קנה מידה אוטומטית מתעלם מנתונים של מכונות וירטואליות שעדיין נמצאות בתהליך אתחול, כי יכול להיות שהמכונות הווירטואליות האלה עדיין לא מייצגות שימוש רגיל באפליקציה. תקופת האתחול שמוגדרת כברירת מחדל היא 60 שניות.
  9. כדי ליצור את קבוצת ה-MIG, לוחצים על Create (יצירה).

gcloud

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

לאחר מכן משתמשים בפקודת המשנה set-autoscaling כדי להפעיל את ההתאמה האוטומטית לעומס של גודל הקבוצה. לדוגמה, הפקודה הבאה יוצרת קנה מידה אוטומטי עם יעד ניצול CPU של 60%. כשיוצרים קנה מידה אוטומטי, צריך להשתמש גם בפרמטר --max-num-replicas וגם בפרמטר --target-cpu-utilization.

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

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

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
  --max-num-replicas 20 \
  --target-cpu-utilization 0.60 \
  --cool-down-period 90

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

כדי לוודא שההתאמה האוטומטית לעומס הופעלה בהצלחה, משתמשים בפקודה instance-groups managed describe. הפקודה הזו מתארת את ה-MIG המתאים ומספקת מידע על תכונות של התאמה אוטומטית לעומס עבור הקבוצה הזו:

gcloud compute instance-groups managed describe example-managed-instance-group

Terraform

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

כדי להגדיר התאמה אוטומטית לעומס ב-MIG, אפשר להשתמש במשאב google_compute_autoscaler.

הדוגמה הבאה מגדירה התאמה אוטומטית לעומס (automatic scaling) על סמך ניצול המעבד (CPU) ב-MIG אזורי.

resource "google_compute_autoscaler" "default" {
  name   = "example-autoscaler"
  zone   = "us-central1-f"
  target = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 20
    min_replicas    = 0
    cooldown_period = 90

    cpu_utilization {
      target = 0.60
    }
  }
}

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

REST

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

אם יש לכם MIG אזורי, צריך לשלוח בקשת POST ל-method‏ autoscalers.insert. אם יש לכם MIG אזורי, צריך להשתמש ב-method regionAutoscalers.insert.

לדוגמה:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/

גוף הבקשה צריך להכיל את השדות name, target ו-autoscalingPolicy. בשדה autoscalingPolicy צריך להגדיר את ערך היעד cpuUtilization ואת הערך maxNumReplicas.

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

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

{
  "name": "example-autoscaler",
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
      "utilizationTarget": 0.6
    },
    "coolDownPeriodSec": 90
  }
}

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

מידע נוסף על הפעלת התאמה אוטומטית לעומס על סמך ניצול המעבד זמין במאמר בנושא שינוי גודל על סמך ניצול המעבד.

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