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

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

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

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

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

    המסוף

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

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

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

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

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

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

המסוף

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

    כניסה לדף 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 במסוף Cloud de Confiance .

    כניסה לדף 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 כדי לאפשר חזרה מהירה לגרסה הקודמת, תוך הפניית עומס העבודה ל-MIG חדש.
  • אפשר להפעיל את התאמת גודל אוטומטית חזויה בשלב מאוחר יותר. כדי להפעיל את התכונה 'התאמה אוטומטית לעומס חזוי', צריך להגדיר מדיניות של התאמה אוטומטית לעומס כדי להתחיל לאסוף היסטוריית עומסים שעליה יתבססו התחזיות. התכונה לשינוי גודל קבוצת המכונות מזהה את ההיסטוריה הזו גם כשהמצב שלה מוגדר ל-OFF.

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

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

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

המסוף

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

    כניסה לדף 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 אזורית או אזורית. הערכים minNumReplicas ו-maxNumReplicas של מדיניות ההתאמה האוטומטית של גודל הקבוצה לא משפיעים על הגודל שהגדרתם.
  • אם משביתים את שינוי הגודל האוטומטי של קבוצת מופעי מכונה מנוהלים (MIG) אזורית שבה מופעלת חלוקה מחדש פרואקטיבית של מופעים, ואם בקבוצת ה-MIG יש חלוקה לא אחידה של מופעים בין האזורים, הקבוצה תמחק או תיצור מופעים באופן פרואקטיבי באזורים שלה כדי ליצור חלוקה אחידה מחדש.
  • בשדה autoscalers.status מוצגת האזהרה: 'התאמת גודל אוטומטית פועלת במצב מוגבל: מושבתת'.

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

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

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

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

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

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

המסוף

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

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

    כניסה לדף 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 במשאב של התאמה אוטומטית אזורי או אזורי. אין ערכי ברירת מחדל לשדות האלה, ולכן אתם חייבים לספק ערכים לשני השדות.

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

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

ב-MIG אזורי, משתמשים ב-method ‏autoscalers.insert. במקרה של 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 אזורי, משתמשים ב-method ‏autoscalers.patch. במקרה של 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 במסוף Cloud de Confiance .

    כניסה לדף 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

כדי להסיר את אמצעי הבקרה של הקטנת הקיבולת, משתמשים ב-method‏ autoscalers.patch עבור MIG אזורי או ב-method‏ 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 במסוף Cloud de Confiance .

    כניסה לדף 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 במסוף Cloud de Confiance .

    כניסה לדף 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

הפסקה של קנה מידה אוטומטי מוחקת אותו מ-MIG. אם רוצים להפעיל מחדש את הכלי לשינוי גודל אוטומטי, צריך ליצור אותו מחדש באמצעות הפקודה 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.

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