ניהול של קנה מידה אוטומטי

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

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

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

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

    המסוף

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

    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 .

יצירת כלי לשינוי אוטומטי של קנה מידה

תהליך היצירה של קנה מידה אוטומטי משתנה מעט בהתאם למדיניות של קנה המידה האוטומטי שרוצים להשתמש בה. הוראות ליצירת קנה מידה אוטומטי מופיעות במאמרים הבאים:

קבלת מידע על קנה מידה אוטומטי

כדי לקבל מידע נוסף על מידרוג אוטומטי מסוים, אפשר להשתמש במסוף, בפקודת המשנה gcloud compute instance-groups managed describe או בשיטה get למשאב REST של מידרוג אוטומטי אזורי או אזורי.

המסוף

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

    כניסה לדף Instance groups

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

gcloud

משתמשים בפקודה instance-groups managed describe:

gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME

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

...
autoscaler:
  autoscalingPolicy:
    coolDownPeriodSec: 60
    cpuUtilization:
      utilizationTarget: 0.6
    maxNumReplicas: 20
    minNumReplicas: 10
    mode: ON
    scaleInControl:
      timeWindowSec: 300
      maxScaledInReplicas:
        fixed: 3
        calculated: 3
...

REST

משתמשים בשיטה instanceGroupManagers.get. ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION.

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

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

200 OK

{
  ...
  "status": {
    ...
    "autoscaler": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c/autoscalers/example-group"
  },
}

כדי לאחזר פרטים על משאב של מידרוג אוטומטי, משתמשים בשיטה autoscalers.get עבור MIG אזורי או בשיטה regionAutoscalers.get עבור MIG אזורי.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/example-autoscaler
200 OK

{
 "kind": "compute#autoscaler",
 "id": "8744945839459481093",
 "creationTimestamp": "2018-09-28T13:02:50.553-07:00",
 "name": "example-group",
 "target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c/instanceGroupManagers/example-group",
 "autoscalingPolicy": {
  "minNumReplicas": 10,
  "maxNumReplicas": 20,
  "mode": "ON",
  "scaleInControl": {
    "timeWindowSec": 60,
    "maxScaledInReplicas": {
      "calculated": 3,
      "percent": 15
    }
  },
  "coolDownPeriodSec": 60,
  "cpuUtilization": {
   "utilizationTarget": 0.6
  }
 },
 "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c",
 "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c/autoscalers/example-group",
 "status": "ACTIVE"
}

עדכון של קנה מידה אוטומטי

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

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של הקבוצה.
  3. לוחצים על Edit.
  4. לוחצים על גודל הקבוצה ומידרוג אוטומטי כדי לראות ולעדכן את הגדרות המידרוג האוטומטי של הקבוצה.
  5. בסיום, לוחצים על שמירה.

gcloud

משתמשים בפקודה update-autoscaling.

gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \
        --max-num-replicas MAX_NUM ...

הוראות ליצירת כלי לשינוי גודל אוטומטי מופיעות במאמר יצירת כלי לשינוי גודל אוטומטי.

REST

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

PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/autoscalers?autoscaler=example-autoscaler

{
 "autoscalingPolicy": {
  "maxNumReplicas": 20
 }
}
200 OK

{
 "kind": "compute#operation",
 "id": "4244494732310423322",
 "name": "operation-1556912627871-58800f8216ed7-74ab1720-7d360603",
 "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f",
 "operationType": "compute.autoscalers.patch",
 "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/autoscalers/example-autoscaler",
 "targetId": "340775527929467142",
 "status": "RUNNING",
 ...
}

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

שימוש בהתאמה אוטומטית לעומס חזויה

התכונה 'שינוי גודל אוטומטי מבוסס חיזוי' משתמשת בנתונים היסטוריים כדי להגדיל את הקבוצה לפני עומס צפוי. השימוש ב-Cloud Run הכי יעיל אם עומדים בקריטריונים הבאים:

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

מידע נוסף על שינוי גודל על סמך תחזיות

השבתה או הגבלה של שינוי גודל אוטומטי

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

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

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

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

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

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG מהרשימה כדי לפתוח את דף הסקירה הכללית של הקבוצה.
  3. לוחצים על Edit.
  4. לוחצים על גודל הקבוצה ומידרוג אוטומטי כדי לראות ולעדכן את הגדרות המידרוג האוטומטי של הקבוצה.
  5. בקטע Autoscaling, מגדירים את Autoscaling mode כדי להשבית או להגביל את שינוי הגודל האוטומטי של הקבוצה, או כדי להפעיל מחדש את שינוי הגודל האוטומטי.
  6. בסיום, לוחצים על שמירה.

gcloud

כדי להשבית, להגביל או להפעיל מחדש את הסקיילר האוטומטי, משתמשים בפקודה update-autoscaling עם הדגל --mode.

gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \
        --mode MODE 

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

  • MODE:
    • off כדי להשבית את שינוי הגודל האוטומטי אבל לשמור את ההגדרה שלו
    • ‫only-scale-out כדי להגביל את הכלי לשינוי גודל קבוצת המופעים כך שיוסיף רק מכונות וירטואליות
    • ‫on כדי להפעיל מחדש את כל הפעילויות של שינוי הגודל האוטומטי בהתאם למדיניות שלו

REST

כדי לעדכן את המצב של משאב לשינוי גודל אוטומטי, משתמשים ב autoscalers.patch שיטה עבור MIG אזורי או בregionAutoscalers.patch שיטה עבור MIG אזורי. מזינים גוף בקשה שכולל את מאפיין autoscalingPolicy.mode.

PATCH https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/autoscalers?autoscaler=my-autoscaler

{
  "autoscalingPolicy": {
    "mode":"MODE"
  }
}

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

  • MODE:
    • OFF כדי להשבית את שינוי הגודל האוטומטי אבל לשמור את ההגדרה שלו
    • ‫ONLY_SCALE_OUT כדי להגביל את שינוי הגודל האוטומטי להוספת מופעים בלבד
    • ‫ON כדי להפעיל מחדש את כל הפעילויות של שינוי הגודל האוטומטי בהתאם למדיניות שלו

כשמגדירים את מצב המידרוג האוטומטי ל-ONLY_SCALE_OUT, המידרוג האוטומטי מתנהג כך:

  • הכלי לשינוי גודל קבוצת המכונות לא מקטין את הערך targetSize של קבוצת ה-MIG, גם אם העומס יורד או אם יש שינויים בהגדרות של הכלי.
  • אם משנים ידנית את גודל היעד של קבוצת MIG אזורית, שירות ההתאמה האוטומטית של קנה המידה מחליף את הגודל שצוין ידנית אם הוא קטן מהגודל המומלץ של שירות ההתאמה האוטומטית של קנה המידה.
  • אי אפשר לשנות באופן ידני את גודל היעד של קבוצת MIG אזורית.
  • אם מגדירים בשדה autoscalingPolicy.maxNumReplicas ערך נמוך יותר מהערך הנוכחי של targetSize בקבוצה, ומצב הסקיילר האוטומטי מוגדר ל-ONLY_SCALE_OUT, הסקיילר האוטומטי לא יקטין את מספר המופעים בקבוצה. כמו תמיד, הכלי להתאמת גודל הקבוצה מחשב מחדש באופן רציף את הגודל המומלץ של הקבוצה, ויכול להיות שהוא יקטין את הגודל המומלץ של הקבוצה כדי לעמוד במקסימום החדש, אבל הקבוצה לא תוקטן.
  • בשדה autoscalers.status מופיעה האזהרה: 'התאמה אוטומטית של נפח האחסון פועלת במצב מוגבל: ONLY_SCALE_OUT'.

כשמגדירים את המצב של שינוי הגודל האוטומטי ל-OFF, שינוי הגודל האוטומטי מתנהג באופן הבא:

  • הכלי לשינוי גודל קבוצת המכונות לא משנה את הערך targetSize של קבוצת המכונות בתגובה לשינויים בעומס או בהגדרות של הכלי. כמו תמיד, הכלי להתאמת גודל הקבוצה מחשב מחדש באופן רציף את הגודל המומלץ של הקבוצה, ויכול להיות שהוא יקטין את הגודל המומלץ של הקבוצה כדי לעמוד במקסימום החדש, אבל הקבוצה לא תוקטן.
  • אתם יכולים לשנות באופן ידני את גודל היעד של קבוצת MIG אזורית או של קבוצת MIG אזורית. הערכים minNumReplicas ו-maxNumReplicas של מדיניות ההתאמה האוטומטית של גודל הקבוצה לא משפיעים על הגודל שהגדרתם.
  • אם משביתים את שינוי הגודל האוטומטי בקבוצת מופעי מכונה מנוהלים (MIG) אזורית שבה מופעל חלוקה מחדש פרואקטיבית של מופעים, ואם בקבוצת ה-MIG יש חלוקה לא אחידה של מופעים בין אזורים, הקבוצה תמחק או תיצור מופעים באופן פרואקטיבי באזורים שלה כדי ליצור חלוקה אחידה מחדש.
  • בשדה autoscalers.status מוצגת אזהרה: 'התאמת גודל אוטומטית פועלת במצב מוגבל: מושבתת'.

שליטה בקצב ההקטנה של קבוצת המכונות של כלי להתאמה אוטומטית

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

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

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

הגדרת אמצעי בקרה לצמצום הקיבולת

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

המסוף

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

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

    כניסה לדף Instance groups

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

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

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

  5. בקטע Scale-in controls (הגדרות לצמצום הקיבולת), בוחרים באפשרות Enable scale-in controls (הפעלת הגדרות לצמצום הקיבולת).

  6. בשדה Don't scale in by more than (אל תקטין את קבוצת המכונות ביותר מ-), מציינים את המספר המקסימלי או את אחוז המכונות שאפשר להסיר מהקבוצה בכל פעם.

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

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

gcloud

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

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

כדי להגדיר אמצעי בקרה לצמצום מספר המכונות כשיוצרים משנה קנה מידה אוטומטי לקבוצת מופעי מכונה מנוהלים (MIG), משתמשים בדגל --scale-in-control עם הפקודה gcloud compute instance-groups managed set-autoscaling. לדוגמה, משתמשים בפקודה הבאה כדי להגדיר שינוי גודל אוטומטי עבור example-group:

gcloud compute instance-groups managed set-autoscaling INSTANCE_GROUP_NAME \
    --target-cpu-utilization 0.6 \
    --max-num-replicas 50 \
    --scale-in-control max-scaled-in-replicas=MAX_SCALE_IN_REPLICAS,time-window=TIME_WINDOW

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

כדי לעדכן את אמצעי הבקרה על הקטנת הקיבולת בשימוש ב-MIG עם קנה מידה אוטומטי קיים, משתמשים בדגל --scale-in-control עם הפקודה gcloud compute instance-groups managed update-autoscaling. לדוגמה, משתמשים בפקודה הבאה כדי להגדיר אמצעי בקרה לצמצום קנה מידה בהגדרת שינוי גודל אוטומטי קיימת עבור example-group:

gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \
    --scale-in-control max-scaled-in-replicas=MAX_SCALE_IN_REPLICAS,time-window=TIME_WINDOW

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

  • ‫INSTANCE_GROUP_NAME: השם של ה-MIG שרוצים לעדכן.
  • ‫MAX_SCALE_IN_REPLICAS: המספר המקסימלי של מכונות וירטואליות שאפשר להפחית מהגודל המקסימלי, שנלקח מחלון הזמן האחרון שצוין. אפשר להרחיב את מספר המכונות הווירטואליות שצוין בבת אחת, לכן השירות שלכם צריך להיות מסוגל להתמודד עם מצב שבו כל כך הרבה מכונות וירטואליות יפסיקו לפעול בבת אחת. אפשר לציין מספר של מכונות וירטואליות או אחוז. כדי לציין אחוזים, צריך להשתמש בסימן %. לדוגמה: 50%.
  • ‫TIME_WINDOW: חלון הזמן האחרון שממנו נלקח גודל השיא. ההגדלה האוטומטית לא תצמצם את מספר הרפליקות מעבר למספר המקסימלי המותר, בהשוואה לגודל השיא שנמדד במהלך חלון הזמן הזה. הערך צריך להיות בין 60 ל-3600.

לדוגמה, נניח שהגדרתם את חלון הזמן ל-1,800 שניות (30 דקות). כשמחשבים את הגודל המומלץ הנוכחי של ה-MIG, המערכת לשינוי גודל אוטומטי משתמשת בלוגיקה הבאה:

  • לוקחים את הגודל המקסימלי מ-30 הדקות האחרונות (לדוגמה, 100 מכונות וירטואליות)
  • לוקחים max-scaled-in-replicas (לדוגמה, 10 מכונות וירטואליות)
  • מגדירים את הגבול התחתון של הגודל המומלץ כך: גודל השיא פחות max-scaled-in-replicas (100 – 10 = 90 מכונות וירטואליות)

REST

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

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

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

ב-MIG אזורי, משתמשים ב-autoscalers.insert method. ל-MIG אזורי, משתמשים ב-method ‏regionAutoscalers.insert.

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

{
  "name": "AUTOSCALER_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME",
  "autoscalingPolicy": {
    "minNumReplicas": 1,
    "maxNumReplicas": 5,
    "coolDownPeriodSec": 60,
    "cpuUtilization": {
      "utilizationTarget": 0.8
    },
    "scaleInControl": {
      "maxScaledInReplicas": {
           "fixed": MAX_SCALE_IN_REPLICAS
      },
      "timeWindowSec": TIME_WINDOW
    }
  }
}

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

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

ב-MIG אזורי, משתמשים ב-autoscalers.patch method. ל-MIG אזורי, משתמשים ב-method ‏regionAutoscalers.patch.

PATCH
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "minNumReplicas": 1,
    "maxNumReplicas": 5,
    "coolDownPeriodSec": 60,
    "cpuUtilization": {
      "utilizationTarget": 0.8
    },
    "scaleInControl": {
      "maxScaledInReplicas": {
           "fixed": MAX_SCALE_IN_REPLICAS
      },
      "timeWindowSec": TIME_WINDOW
    }
  }
}

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

  • ‫AUTOSCALER_NAME: השם של הכלי לשינוי גודל אוטומטי שרוצים ליצור. אפשר לתת ל-autoscaler שם לפי ה-MIG שבו הוא ישמש, או לתת לו שם אחר.
  • ‫INSTANCE_GROUP_NAME: השם של קבוצת ה-MIG שאליה רוצים להוסיף את הכלי לשינוי גודל אוטומטי. ל-MIG אזורי, מחליפים את zones/ZONE ב-regions/REGION.
  • ‫MAX_SCALE_IN_REPLICAS: המספר המקסימלי של מכונות וירטואליות שאפשר להפחית מהגודל המקסימלי המומלץ של היעד, שנלקח מחלון הזמן האחרון שצוין. אפשר להגדיל את מספר המכונות הווירטואליות שצוין בבת אחת, לכן השירות שלכם צריך להיות מסוגל להתמודד עם אובדן של כל כך הרבה מכונות וירטואליות בבת אחת. אפשר לציין מספר של מכונות וירטואליות או אחוז. כדי לציין ערך באחוזים, משתמשים ב-maxScaledInReplicas.percentage.
  • ‫TIME_WINDOW: חלון הזמן האחרון שממנו נלקח הגודל המקסימלי המומלץ. השינוי האוטומטי של קנה המידה לא יקטין את מספר הרפליקות מעבר למספר המקסימלי המותר, בהשוואה לגודל המומלץ המקסימלי שנמדד במהלך חלון הזמן האחרון הזה. מציינים את הערך הזה בשניות, בטווח שבין 60 ל-3600. לדוגמה: 1800.

לדוגמה, נניח שהגדרתם את חלון הזמן ל-1,800 שניות (30 דקות). כשמחשבים את הגודל המומלץ הנוכחי של ה-MIG, המערכת לשינוי גודל אוטומטי משתמשת בלוגיקה הבאה:

  • לוקחים את הגודל המקסימלי מ-30 הדקות האחרונות (לדוגמה, 100 מכונות וירטואליות)
  • לוקחים max-scaled-in-replicas (לדוגמה, 10 מכונות וירטואליות)
  • מגדירים את הגבול התחתון של הגודל המומלץ כך: גודל השיא פחות max-scaled-in-replicas (100 – 10 = 90 מכונות וירטואליות)

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

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

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

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

אתם יכולים להסיר את אמצעי הבקרה של הקטנת הקיבולת כדי לבטל את ההגבלות על התזמון וההיקף של פעולות הקטנת הקיבולת באמצעות Google Cloud CLI או Compute Engine API.

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

המסוף

כדי להסיר את אמצעי הבקרה להקטנת קבוצת ה-MIG עם שינוי גודל אוטומטי:

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

    כניסה לדף Instance groups

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

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

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

  5. בקטע Scale-in controls, מבטלים את הסימון בתיבה Enable scale-in controls.

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

gcloud

כדי להסיר את אמצעי הבקרה להקטנת הקיבולת, משתמשים בדגל --clear-scale-in-control עם הפקודה gcloud compute instance-groups managed update-autoscaling. לדוגמה, משתמשים בפקודה הבאה כדי להסיר את אמצעי הבקרה של הקטנת הקיבולת מההגדרה של שינוי הגודל האוטומטי עבור example-group:

gcloud compute instance-groups managed update-autoscaling example-group \
    --clear-scale-in-control

REST

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

PATCH
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scaleInControl": null
  }
}

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

  • ‫AUTOSCALER_NAME: השם של הכלי לשינוי גודל אוטומטי שרוצים לעדכן. כדי לקבל רשימה של קבוצות קיימות של מכונות מנוהלות (MIG) שמוגדרות להן תכונות של שינוי גודל אוטומטי, משתמשים בשיטה autoscalers.aggregatedList.

הגדרת תקופת ייצוב

תקופת הייצוב שמוגדרת כברירת מחדל היא 600 שניות. אפשר להגדיר את הערך הזה בין 0 שניות ל-3600 שניות (שעה אחת).

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

המסוף

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

    כניסה לדף Instance groups

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

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

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

  5. אם לא מוגדרת קנה מידה אוטומטי ב-MIG, לוחצים על Configure Autoscaling ומבצעים את הפעולות הבאות:

    1. בשדות Minimum number of instances ו-Maximum number of instances, מזינים את מספר המופעים שהכלי להתאמה אוטומטית לעומס צריך לשמור.

    2. אות השימוש במעבד כלול כברירת מחדל. אפשר לערוך אותו או ללחוץ על הוספת אות כדי ליצור אות נוסף.

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

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

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

gcloud

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

הגדרת תקופת ייצוב כשיוצרים קנה מידה אוטומטי

משתמשים בפקודה gcloud compute instance-groups managed set-autoscaling וכוללים את הדגל --stabilization-period כדי להגדיר את תקופת הייצוב.

gcloud compute instance-groups managed set-autoscaling INSTANCE_GROUP_NAME \
    --target-cpu-utilization 0.6 \
    --max-num-replicas 50 \
    --stabilization-period STABILIZATION_PERIOD

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

משתמשים בפקודה gcloud compute instance-groups managed update-autoscaling ומוסיפים את הדגל --stabilization-period.

gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \
    --stabilization-period STABILIZATION_PERIOD

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

  • ‫INSTANCE_GROUP_NAME: השם של ה-MIG.
  • ‫STABILIZATION_PERIOD: משך הזמן בשניות. הערך צריך להיות בין 0 ל-3600. מידע נוסף זמין במאמר הזה בקטע שיטות מומלצות לתקופת ייצוב.

REST

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

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

הגדרת תקופת הייצוב כשיוצרים קנה מידה אוטומטי

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

{
  "name": "AUTOSCALER_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME",
  "autoscalingPolicy": {
    "minNumReplicas": 1,
    "maxNumReplicas": 5,
    "coolDownPeriodSec": 60,
    "cpuUtilization": {
      "utilizationTarget": 0.8
    },
    "stabilizationPeriodSec": STABILIZATION_PERIOD
  }
}

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

PATCH
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "minNumReplicas": 1,
    "maxNumReplicas": 5,
    "coolDownPeriodSec": 60,
    "cpuUtilization": {
      "utilizationTarget": 0.8
    },
    "stabilizationPeriodSec": STABILIZATION_PERIOD
  }
}

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

  • PROJECT_ID: מזהה הפרויקט.
  • ‫AUTOSCALER_NAME: השם של הכלי לשינוי גודל אוטומטי.
  • ‫INSTANCE_GROUP_NAME: השם של ה-MIG.
  • ‫STABILIZATION_PERIOD: משך הזמן בשניות. הערך צריך להיות בין 0 ל-3600. מידע נוסף זמין במאמר הזה בקטע שיטות מומלצות לתקופת ייצוב.

שיטות מומלצות לתקופת הייצוב

מומלץ להגדיר את תקופת הייצוב בהתאם לסוג עומס העבודה באופן הבא:

  • עומסי עבודה תנודתיים: אם התנועה באפליקציה שלכם משתנה מאוד, כדאי להשאיר את תקופת הייצוב שמוגדרת כברירת מחדל של 600 שניות (10 דקות) או יותר. המשך הזה יכול לעזור לכם להימנע מתקורה של יצירה ומחיקה תכופות של מופעים.

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

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

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

בנוסף, מומלץ להגדיר תקופת ייצוב ארוכה יותר מתקופת האתחול כדי למנוע מחיקה של מכונות לפני שמוכנות מכונות חדשות להכניס לשימוש בסביבת הייצור.

מחיקת סקיילר אוטומטי

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

המסוף

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

    כניסה לדף Instance groups

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

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

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

  5. ברשימה Autoscaling mode בוחרים באפשרות Delete autoscaling configuration כדי להפסיק את המידרוג האוטומטי ולמחוק את ההגדרה שלו.

  6. בסיום, לוחצים על שמירה.

gcloud

משתמשים בפקודה stop-autoscaling כדי להפסיק את השימוש בכלי לשינוי גודל קבוצת המכונות ולמחוק את ההגדרות שלו.

gcloud compute instance-groups managed stop-autoscaling INSTANCE_GROUP_NAME

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

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

REST

כדי להפסיק את השימוש בסקיילר אוטומטי ולמחוק את ההגדרה שלו, משתמשים בשיטה autoscalers.delete עבור MIG אזורי או בשיטה regionAutoscalers.delete עבור MIG אזורי.

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

משוב

נשמח לשמוע על תרחישי השימוש שלכם, על האתגרים שנתקלתם בהם ועל המשוב שלכם בנושא שינוי גודל אוטומטי. אפשר לשלוח משוב לצוות שלנו בכתובת mig-discuss@google.com.

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