התאמה אוטומטית של קנה מידה לפי לוח זמנים מאפשרת לשפר את הזמינות של עומסי העבודה, על ידי תזמון הקיבולת לפני העומס הצפוי. אם אתם מריצים את עומס העבודה בקבוצת מופעי מכונה מנוהלים (MIG), אתם יכולים לתזמן את המספר הנדרש של מכונות וירטואליות (VM) לדפוסי עומס חוזרים וגם לאירועים חד-פעמיים. אם לעומס העבודה שלכם לוקח הרבה זמן להתחיל, ואתם רוצים להרחיב אופקית בהתאם לעומס (scale out) לפני עלייה צפויה בעומס, אתם יכולים להשתמש בלוחות זמנים להתאמה לעומס.
במאמר הזה מוסבר איך ליצור, להציג, לערוך, להשבית, להפעיל מחדש ולמחוק לוחות זמנים להתאמה לעומס של קבוצת MIG קיימת. למידע נוסף על קבוצות MIG ועל התאמה אוטומטית לעומס (automatic scaling), קראו את המאמרים יצירת קבוצות מופעי מכונה מנוהלים והתאמה אוטומטית לעומס (automatic scaling) של קבוצות מופעי מכונה.
לפני שמתחילים
- מידע בסיסי על התאמה אוטומטית לעומס
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי בחשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו שנכנסתם ל-CLI של gcloud באמצעות הזהות המאוחדת.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
מגבלות
לוחות הזמנים להתאמה לעומס כפופים למגבלות של כל הכלים להתאמה לעומס, וגם למגבלות הבאות:
- אפשר להגדיר עד 128 לוחות זמנים להתאמה לעומס לכל קבוצת MIG. כדי לעקוף את המגבלה הזו, מחקו לוחות זמנים להתאמה לעומס בסטטוס
OBSOLETEשאתם לא מתכננים להפעיל שוב. - משך הזמן המינימלי לתזמון התאמה לעומס הוא 5 דקות.
- אי אפשר להגדיר לוחות זמנים להתאמה לעומס בקבוצות MIG עם שמירת מצב. כדי לתזמן פעולות התחלה ועצירה של קבוצות MIG עם שמירת מצב, אפשר להשתמש בתהליך עבודה אוטומטי חיצוני. לדוגמה, אפשר להשתמש ב-Cloud Scheduler כדי להפעיל פונקציות של Cloud Run שקוראות ל-
stopInstancesול-startInstances, שהן שיטות ספציפיות ל-MIG.
יצירת לוח זמנים להתאמה לעומס (scaling)
אפשר ליצור עד 128 לוחות זמנים להתאמה לעומס לכל קבוצת MIG. מידע נוסף זמין במאמר הגדרות של תזמון התאמה לעומס.
בהוראות הבאות מוסבר איך ליצור לוח זמנים להתאמה לעומס (scaling) של קבוצת מכונות מנוהלות (MIG).
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת MIG ברשימה.
לוחצים על Edit.
לוחצים על Group size & autoscaling כדי להרחיב את הקטע.
אם לא קיימת הגדרה של התאמה לעומס, לוחצים על Configure autoscaling.
כברירת מחדל, הגדרת ההתאמה האוטומטית לעומס מוסיפה אות שמבוסס על ניצול ה-CPU. אם רוצים לשנות את קנה המידה של ה-MIG רק על סמך לוחות זמנים, צריך למחוק את מדד ברירת המחדל של ניצול המעבד (CPU) אחרי שמוסיפים את לוחות הזמנים.
בקטע Autoscaling schedules, לוחצים על Manage.
בחלונית Scaling schedules, לכל לוח זמנים של התאמה לעומס שרוצים להוסיף, מבצעים את הפעולות הבאות:
- לוחצים על יצירת לוח זמנים.
- בחלונית Create scaling schedule, מזינים Name.
- אופציונלי: מזינים תיאור.
- בשדה Minimum required instances, מזינים את מספר המכונות שהלו"ז הזה מספק כשהוא פעיל.
כדי לציין את שעת ההתחלה ואת החזרה של לוח הזמנים להתאמה לעומס, אפשר להשתמש בממשק ברירת המחדל. אפשר גם להגדיר לוח זמנים עם שעת התחלה וחזרה מורכבות יותר באמצעות ביטוי cron. כדי להגדיר את המדיניות, פועלים לפי השלבים הבאים:
ממשק ברירת המחדל
בשדה Start time, מזינים את שעת ההתחלה בפורמט
HH:MM AM/PM, לדוגמה09:00 AM.לוחצים על השדה אזור זמן. בוחרים מדינה ואזור זמן.
אפשר להשתמש בשדה חיפוש לפי מדינה כדי למצוא מדינה או אזור זמן. לדוגמה, מקלידים
Australia/australian centralכדי למצוא את אזורי הזמן של Central Standard Time באוסטרליה.בשדות Duration ו-Unit of time, מזינים משך זמן ובוחרים את יחידת הזמן המתאימה.
בשדה Recurrence, בוחרים את תדירות החזרה של לוח הזמנים.
אפשר לבחור באפשרות פעם אחת או כל יום. כדי לציין שהלו"ז יחזור רק בימים מסוימים, בוחרים באפשרות Every week או Every month. אחרי שבוחרים אחת מהאפשרויות האלה, משתמשים ברשימה הנוספת כדי לבחור באילו ימים בשבוע או בחודש לוח הזמנים מתחיל.
ביטוי Cron
כדי להפעיל, לוחצים על המתג שימוש בביטוי CRON.
בשדה CRON expression, מזינים ביטוי cron שמציין את שעת ההתחלה ואת החזרה.
לוחצים על השדה אזור זמן. בוחרים מדינה ואזור זמן.
אפשר להשתמש בשדה חיפוש לפי מדינה כדי למצוא מדינה או אזור זמן. לדוגמה, מקלידים
Australia/australian centralכדי למצוא את אזורי הזמן של Central Standard Time באוסטרליה.בשדות Duration ו-Unit of time, מזינים משך זמן ובוחרים את יחידת הזמן המתאימה.
לוחצים על Save. בחלונית Scaling schedules מופיע לוח הזמנים שיצרתם.
כשמסיימים ליצור את לוחות הזמנים, לוחצים על סיום.
לוחות הזמנים נשמרים ומוחלים על ה-MIG.
לוחצים על שמירה כדי לצאת מדף העריכה.
gcloud
כדי להוסיף לוח זמנים להתאמה לקבוצת MIG שאין לה מדיניות קיימת להתאמה אוטומטית לעומס, משתמשים בפקודה gcloud compute instance-groups managed set-autoscaling.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \
[--min-num-replicas=MIN_NUM_REPLICAS] \
--max-num-replicas=MAX_NUM_REPLICAS \
--set-schedule=SCHEDULE_NAME \
--schedule-cron="CRON_EXPRESSION" \
--schedule-duration-sec=DURATION \
[--schedule-time-zone="TIME_ZONE"] \
--schedule-min-required-replicas=MIN_REQ_REPLICAS \
[--schedule-description="DESCRIPTION"] \
[--zone=ZONE | --region=REGION]
כדי להוסיף לוח זמנים להתאמה לעומס לקבוצת MIG עם מדיניות קיימת של התאמה אוטומטית לעומס, משתמשים בפקודה gcloud compute instance-groups managed update-autoscaling.
gcloud compute instance-groups managed update-autoscaling MIG_NAME \
[--min-num-replicas=MIN_NUM_REPLICAS] \
[--max-num-replicas=MAX_NUM_REPLICAS] \
--set-schedule=SCHEDULE_NAME \
--schedule-cron="CRON_EXPRESSION" \
--schedule-duration-sec=DURATION \
[--schedule-time-zone="TIME_ZONE"] \
--schedule-min-required-replicas=MIN_REQ_REPLICAS \
[--schedule-description="DESCRIPTION"] \
[--zone=ZONE | --region=REGION]
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של קבוצת MIG עם מדיניות קיימת של התאמה לעומס. -
MIN_NUM_REPLICAS: אופציונלי: המספר המינימלי של המכונות שנדרשות לקבוצת המכונות המנוהלת הזו. Google ממליצה להגדיר את הערך הזה למספר המינימלי של המכונות שאתם צריכים כשאין לוח זמנים פעיל להתאמה לעומס. כדי לצמצם אופקית את ה-MIG ל-0 מכונות, מגדירים את הערך הזה ל-0ומוודאים שמתקיימים התנאים הנדרשים. -
MAX_NUM_REPLICAS: המספר המקסימלי של מכונות שאפשר לספק לקבוצת המכונות המנוהלת הזו. אופציונלי ל-MIG עם מדיניות קיימת של התאמה אוטומטית לעומס. -
SCHEDULE_NAME: השם של לוח הזמנים החדש לשינוי קנה המידה. -
CRON_EXPRESSION: שעת ההתחלה והחזרה של לוח הזמנים הזה, בפורמט של ביטוי cron. -
DURATION: משך הזמן בשניות שבו לוח הזמנים הזה פעיל. -
TIME_ZONE: אופציונלי: אזור הזמן של IANA לשעת ההתחלה של לוח הזמנים, לדוגמהEurope/Paris. ערך ברירת המחדל הואUTC. -
MIN_REQ_REPLICAS: מספר המכונות המינימלי הנדרש שלוח הזמנים הזה מספק כשהוא פעיל. -
DESCRIPTION: אופציונלי: תיאור של לוח הזמנים החדש לשינוי קנה המידה. -
ZONEאוREGION: אופציונלי, האזור או התחום שבהם נמצאת קבוצת ה-MIG.
אתם יכולים ליצור לוחות זמנים שפועלים פעם אחת או שחוזרים על עצמם מדי פעם.
לוח זמנים חוזר
הפקודה לדוגמה הזו יוצרת לוח זמנים שחוזר על עצמו.
לפי לוח הזמנים הזה, אתם רוצים שקבוצת ה-MIG תכלול לפחות 10 מכונות וירטואליות בכל יום שני, שלישי, רביעי, חמישי ושישי, בין השעות 8:30 ל-17:00 לפי זמן אוניברסלי מתואם (UTC). הפקודה הזו משתמשת גם בדגלים --min-num-replicas ו---max-num-replicas כדי לעדכן את המספר המינימלי של המכונות ל-0 ואת המספר המקסימלי של המכונות ל-30, לכל אותות ההתאמה האוטומטית לעומס של קבוצת ה-MIG שנבחרה. הפקודה הזו מניחה שיש לכם קבוצת MIG קיימת בשם example-mig עם מדיניות התאמה אוטומטית לעומס קיימת.
gcloud compute instance-groups managed update-autoscaling example-mig \
--min-num-replicas=0 \
--max-num-replicas=30 \
--set-schedule=workday-capacity \
--schedule-cron="30 8 * * Mon-Fri" \
--schedule-duration-sec=30600 \
--schedule-min-required-replicas=10 \
--schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
לוח זמנים חד-פעמי
הפקודה הזו יוצרת לוח זמנים שפועל פעם אחת.
לפי התזמון הזה, אתם רוצים שקבוצת ה-MIG תכיל לפחות 30 מכונות וירטואליות במשך כל היום ב-30 בינואר 2030, לפי אזור הזמן America/New_York. הפקודה הזו מניחה שיש לכם קבוצת MIG קיימת בשם example-mig שנמצאת ב-us-east1-b, ויש לה מדיניות קיימת להתאמה אוטומטית לעומס.
gcloud compute instance-groups managed update-autoscaling example-mig \
--set-schedule=example-onetime-schedule \
--schedule-cron="0 0 30 1 * 2030" \
--schedule-duration-sec=86400 \
--schedule-time-zone="America/New_York" \
--schedule-min-required-replicas=30 \
--schedule-description="Schedule a minimum of 30 VMs all day for January 30, 2030" \
--zone=us-east1-b
Terraform
כדי להוסיף לוח זמנים להתאמה לעומס ל-MIG, משתמשים במשאב google_compute_autoscaler.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
REST
כדי ליצור מידרוג אוטומטי עם לוחות זמנים להתאמה לעומס של MIG, משתמשים ב-method autoscalers.insert לקבוצת מכונות מנוהלת אזורית או ב-method regionAutoscalers.insert לקבוצת מכונות מנוהלת אזורית.
כדי ליצור לוח זמנים לקבוצת MIG אזורית שאין לה מדיניות קיימת של התאמה אוטומטית לעומס, מבצעים את הקריאה הבאה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers/
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
"minNumReplicas": MIN_NUM_REPLICAS,
"maxNumReplicas": MAX_NUM_REPLICAS,
"scalingSchedules": {
"SCHEDULE_NAME": {
"minRequiredReplicas": MIN_REQ_REPLICAS,
"schedule": "CRON_EXPRESSION",
"timeZone": "TIME_ZONE",
"durationSec": DURATION,
"description": "DESCRIPTION"
},
...
}
}
}
כדי ליצור תזמונים לקבוצת MIG עם מדיניות קיימת של התאמה אוטומטית לעומס, משתמשים ב-method autoscalers.patch לקבוצת MIG אזורית או ב-method regionAutoscalers.patch לקבוצת MIG בכמה אזורים.
לדוגמה, כדי ליצור תזמון לקבוצת MIG אזורית שיש לה מדיניות קיימת של התאמה אוטומטית לעומס, מבצעים את הקריאה הבאה:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME
{
"autoscalingPolicy": {
"minNumReplicas": MIN_NUM_REPLICAS,
"maxNumReplicas": MAX_NUM_REPLICAS,
"scalingSchedules": {
"SCHEDULE_NAME": {
"minRequiredReplicas": MIN_REQ_REPLICAS,
"schedule": "CRON_EXPRESSION",
"timeZone": "TIME_ZONE",
"durationSec": DURATION,
"description": "DESCRIPTION"
},
...
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT: מזהה הפרויקט. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. -
AUTOSCALER_NAME: השם של מגדיר קנה מידה אוטומטי קיים. לרוב, השם הזה זהה לשם של ה-MIG. -
MIN_NUM_REPLICAS: אופציונלי: המספר המינימלי של המכונות שנדרשות לקבוצת המכונות המנוהלת הזו. Google ממליצה להגדיר את הערך הזה למספר המינימלי של המכונות שאתם צריכים כשאין לוח זמנים פעיל להתאמה לעומס. כדי לצמצם אופקית את ה-MIG ל-0 מכונות, מגדירים את הערך הזה ל-0ומוודאים שמתקיימים התנאים הנדרשים. -
MAX_NUM_REPLICAS: המספר המקסימלי של מכונות שאפשר לספק לקבוצת המכונות המנוהלת הזו. אופציונלי ל-MIG עם מדיניות קיימת של התאמה אוטומטית לעומס. -
SCHEDULE_NAME: השם של לוח הזמנים החדש לשינוי קנה המידה. -
MIN_REQ_REPLICAS: מספר המכונות המינימלי הנדרש שלוח הזמנים הזה מספק כשהוא פעיל. -
CRON_EXPRESSION: שעת ההתחלה והחזרה של לוח הזמנים הזה, בפורמט של ביטוי cron. -
TIME_ZONE: אופציונלי: אזור הזמן של IANA לשעת ההתחלה של לוח הזמנים, לדוגמהEurope/Paris. ערך ברירת המחדל הואUTC. -
DURATION: משך הזמן בשניות שבו לוח הזמנים הזה פעיל. -
DESCRIPTION: אופציונלי: תיאור של לוח הזמנים החדש לשינוי קנה המידה.
אתם יכולים ליצור לוחות זמנים שפועלים פעם אחת או שחוזרים על עצמם מדי פעם.
לוח זמנים חוזר
הקריאה הזו ל-API יוצרת לוח זמנים שחוזר על עצמו.
לפי לוח הזמנים הזה, אתם רוצים שקבוצת MIG אזורית תכלול לפחות 10 מכונות וירטואליות בכל יום שני, שלישי, רביעי, חמישי ושישי, בין השעות 8:30 ל-17:00 לפי זמן אוניברסלי מתואם (UTC). הקריאה הזו ל-API משתמשת גם בשדות minNumReplicas ו-maxNumReplicas כדי לעדכן את מספר המכונות המינימלי ל-0 ואת מספר המכונות המקסימלי ל-30, לכל אותות ההתאמה לעומס של קבוצת ה-MIG שנבחרה.
בקריאה הזו ל-API, אנחנו מניחים שיש לכם פרויקט קיים בשם example-project עם קבוצת MIG אזורית שנמצאת ב-us-east1-b, ויש לה כלי להתאמה לעומס בשם example-autoscaler עם מדיניות קיימת להתאמה לעומס.
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler
{
"autoscalingPolicy": {
"minNumReplicas": 0,
"maxNumReplicas": 30,
"scalingSchedules": {
"workday-capacity": {
"minRequiredReplicas": 10,
"schedule": "30 8 * * Mon-Fri",
"durationSec": 30600,
"description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
}
}
}
}
כדי להשתמש בדוגמה הזו לקבוצת MIG אזורית, שולחים בקשה דומה באמצעות ה-method regionAutoscalers.patch ומציינים אזור במקום תחום.
לוח זמנים חד-פעמי
הקריאה הזו ל-API יוצרת לוח זמנים שפועל פעם אחת.
לפי לוח הזמנים הזה, קבוצת MIG אזורית צריכה להכיל לפחות 30 מכונות וירטואליות במשך כל היום ב-30 בינואר 2030, באזור הזמן America/New_York. בקריאה הזו ל-API, אנחנו מניחים שיש לכם פרויקט קיים בשם example-project עם קבוצת MIG אזורית שנמצאת ב-us-east1-b, ויש לה כלי להתאמה לעומס בשם example-autoscaler עם מדיניות קיימת להתאמה לעומס.
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler
{
"autoscalingPolicy": {
"scalingSchedules": {
"example-onetime-schedule": {
"minRequiredReplicas": 30,
"schedule": "0 0 30 1 * 2030",
"timeZone": "America/New_York",
"durationSec": 86400,
"description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
}
}
}
}
כדי להשתמש בדוגמה הזו לקבוצת MIG אזורית, שולחים בקשה דומה באמצעות ה-method regionAutoscalers.patch ומציינים אזור במקום תחום.
כמה לוחות זמנים
בדוגמה הזו, הקריאה ל-API משתמשת ב-method autoscalers.patch לשני לוחות זמנים, workday-capacity ו-january-30-2030-schedule, בקריאה אחת. בקריאה הזו ל-API, אנחנו מניחים שיש לכם פרויקט קיים בשם example-project עם קבוצת MIG אזורית שנמצאת ב-us-east1-b, ויש לה מגדיר התאמה לעומס בשם example-autoscaler עם מדיניות קיימת להתאמה לעומס.
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler
{
"autoscalingPolicy": {
"scalingSchedules": {
"workday-capacity": {
"minRequiredReplicas": 10,
"schedule": "30 8 * * Mon-Fri",
"durationSec": 30600,
"description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
},
"january-30-2030-schedule": {
"minRequiredReplicas": 30,
"schedule": "0 0 30 1 * 2030",
"timeZone": "America/New_York",
"durationSec": 86400,
"description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
}
}
}
}
כדי להשתמש בדוגמה הזו לקבוצת MIG אזורית, שולחים בקשה דומה באמצעות ה-method regionAutoscalers.patch ומציינים אזור במקום תחום.
אחרי שיוצרים לוח זמנים, יכול להיות שתצטרכו לחכות כמה דקות עד שיופיעו פרטי הסטטוס שלו.
הצגת לוחות הזמנים של ההתאמה לעומס (scaling)
אתם יכולים לראות רשימה של לוחות הזמנים של קבוצת MIG. ברשימה מוצגות ההגדרות ופרטי הסטטוס של כל לוח זמנים.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת MIG ברשימה.
בכרטיסייה Overview, המשבצת Autoscaling מציגה את האותות שהוגדרו ב-MIG.
ליד פרטי האות, מעבירים את הסמן מעל הסמל ולוחצים על ניהול.
בחלונית Scaling schedules מוצגת רשימה של לוחות הזמנים הקיימים להתאמה לעומס.
gcloud
כדי לקבל פרטים על MIG, כולל ההגדרות והסטטוסים של לוחות הזמנים להתאמה לעומס, משתמשים בפקודה gcloud compute instance-groups managed describe.
gcloud compute instance-groups managed describe MIG_NAME \
[--zone=ZONE | --region=REGION]
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של קבוצת MIG עם מדיניות קיימת של התאמה לעומס. -
ZONEאוREGION: אופציונלי, האזור או התחום שבהם נמצאת קבוצת ה-MIG.
כל תזמוני ההתאמה לעומס של ה-MIG מופיעים בפלט, כמו בדוגמה הבאה.
...
autoscalingPolicy:
...
maxNumReplicas: 30
minNumReplicas: 0
...
scalingSchedules:
example-onetime-schedule:
description: Schedule a minimum of 30 VMs all day for January 30, 2030
disabled: false
durationSec: 86400
minRequiredReplicas: 30
schedule: 0 0 30 1 * 2030
timeZone: America/New_York
workday-capacity:
description: Have at least 10 VMs every Monday through Friday from 8:30
AM to 5 PM UTC
disabled: false
durationSec: 30600
minRequiredReplicas: 10
schedule: 30 8 * * Mon-Fri
timeZone: UTC
...
scheduledScalingStatus:
example-onetime-schedule:
state: READY
nextStartTime: '2030-01-30T00:00:00.000-05:00'
lastStartTime: ''
workday-capacity:
state: READY
nextStartTime: '2020-11-04T08:30:00.000-00:00'
lastStartTime: '2020-11-03T08:30:00.000-00:00'
...
REST
כדי לקבל פרטים על התאמה לעומס, כולל ההגדרות והסטטוסים של לוחות הזמנים להתאמה לעומס, משתמשים ב-method autoscalers.get ל-MIG אזורי או ב-method regionAutoscalers.get ל-MIG אזורי.
לדוגמה, אפשר לבצע את הקריאה הבאה כדי להציג את לוחות הזמנים של קבוצת MIG אזורית שיש לה מדיניות קיימת של התאמה אוטומטית לעומס:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers/AUTOSCALER_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT: מזהה הפרויקט. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. -
AUTOSCALER_NAME: השם של מגדיר קנה מידה אוטומטי קיים. לרוב, השם הזה זהה לשם של ה-MIG.
כל תזמוני ההתאמה לעומס של ה-MIG מופיעים בפלט, כמו בדוגמה הבאה.
{
...
"autoscalingPolicy": {
...
"minNumReplicas": 0,
"maxNumReplicas": 30,
...
"scalingSchedules": {
"example-onetime-schedule": {
"minRequiredReplicas": 30,
"schedule": "0 0 30 1 * 2030",
"timeZone": "America/New_York",
"durationSec": 86400,
"description": "Schedule a minimum of 30 VMs all day for January 30, 2030",
"disabled": false
},
"workday-capacity": {
"minRequiredReplicas": 10,
"schedule": "30 8 * * Mon-Fri",
"timeZone": "",
"durationSec": 30600,
"description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC",
"disabled": false
},
...
}
},
"scheduledScalingStatus": {
"example-onetime-schedule": {
"state": "READY",
"nextStartTime": "2030-01-30T00:00:00.000-05:00",
"lastStartTime": ''
},
"workday-capacity": {
"state": "READY",
"nextStartTime": "2020-11-04T08:30:00.000",
"lastStartTime": "2020-11-03T08:30:00.000"
},
...
},
...
}
עריכת לוח זמנים להתאמה לעומס (scaling)
אתם יכולים לערוך לוח זמנים קיים להתאמה לעומס כדי לשנות כל אחת מההגדרות שלו, חוץ מהשם של לוח הזמנים. אפשר גם להשבית או להפעיל מחדש לוח זמנים להתאמה לעומס.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת MIG ברשימה.
לוחצים על Edit.
לוחצים על Group size & autoscaling כדי להרחיב את הקטע.
בקטע Autoscaling schedules, לוחצים על Manage.
בחלונית Scaling Schedules מוצגת רשימה של לוחות הזמנים הקיימים להתאמה לעומס.
מסמנים את התיבה של לוח הזמנים לשינוי קנה המידה שרוצים לערוך.
בחלק העליון של החלונית Scaling Schedules, לוחצים על Edit.
בחלונית Edit scaling schedule, משנים את השדות שרוצים. מידע נוסף על כל שדה זמין במאמר יצירת לוח זמנים להתאמה לעומס (scaling).
כשמסיימים, לוחצים על שמירה.
יכול להיות שתצטרכו להמתין כמה דקות עד שהשינויים ייכנסו לתוקף. כדי לעקוב אחרי הסטטוס של לוחות הזמנים, לוחצים על Refresh בחלק העליון של החלונית Scaling Schedules.
לוחצים על Done כדי לסגור את החלונית Scaling schedules.
השינויים בלוחות הזמנים נשמרים ומוחלים על קבוצת ה-MIG.
לוחצים על שמירה כדי לצאת מדף העריכה.
gcloud
כדי לעדכן לוח זמנים קיים להתאמה לעומס, משתמשים בפקודה gcloud compute instance-groups managed update-autoscaling.
משתמשים בדגל --update-schedule כדי לציין את שם התזמון שרוצים לעדכן. כוללים את הדגלים האחרים לפי הצורך לשינויים שלכם.
gcloud compute instance-groups managed update-autoscaling MIG_NAME \
--update-schedule=SCHEDULE_NAME \
[--schedule-cron="CRON_EXPRESSION"] \
[--schedule-duration-sec=DURATION] \
[--schedule-time-zone="TIME_ZONE"] \
[--schedule-min-required-replicas=MIN_REQ_REPLICAS] \
[--schedule-description="DESCRIPTION"] \
[--zone=ZONE | --region=REGION]
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של קבוצת מכונות מנוהלת עם לוח זמנים קיים להתאמה לעומס. -
SCHEDULE_NAME: השם של לוח הזמנים הקיים לשינוי קנה המידה. -
CRON_EXPRESSION: אופציונלי: שעת ההתחלה החדשה והחזרה של התזמון הזה, בפורמט של ביטוי cron. DURATION: אופציונלי: משך הזמן החדש, בשניות, שבו לוח הזמנים הזה פעיל.-
TIME_ZONE: אופציונלי: אזור הזמן החדש של IANA לשעת ההתחלה של לוח הזמנים, לדוגמהEurope/Paris. ערך ברירת המחדל הואUTC. -
MIN_REQ_REPLICAS: אופציונלי: המספר החדש של מכונות מינימליות נדרשות שלוח הזמנים הזה מספק כשהוא פעיל. -
DESCRIPTION: אופציונלי: תיאור חדש של לוח הזמנים לשינוי קנה המידה. -
ZONEאוREGION: אופציונלי, האזור או התחום שבהם נמצאת קבוצת ה-MIG.
REST
כדי לעדכן את לוחות הזמנים הקיימים להתאמה לעומס של MIG, משתמשים בשיטה autoscalers.patch ל-MIG אזורי או בשיטה regionAutoscalers.patch ל-MIG אזורי.
לדוגמה, כדי לערוך תזמון של קבוצת MIG אזורית שיש לה מדיניות קיימת של התאמה אוטומטית לעומס, מבצעים את הקריאה הבאה:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME
{
"autoscalingPolicy": {
"scalingSchedules": {
"SCHEDULE_NAME": {
"minRequiredReplicas": MIN_REQ_REPLICAS,
"schedule": "CRON_EXPRESSION",
"timeZone": "TIME_ZONE",
"durationSec": DURATION,
"description": "DESCRIPTION"
},
...
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT: מזהה הפרויקט. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. -
AUTOSCALER_NAME: השם של מידרוג אוטומטי קיים. לרוב, השם הזה זהה לשם של ה-MIG. -
SCHEDULE_NAME: השם של לוח הזמנים הקיים לשינוי קנה המידה. -
MIN_REQ_REPLICAS: אופציונלי: המספר החדש של מכונות מינימליות נדרשות שלוח הזמנים הזה מספק כשהוא פעיל. -
CRON_EXPRESSION: אופציונלי: שעת ההתחלה החדשה והחזרה של התזמון הזה, בפורמט של ביטוי cron. -
TIME_ZONE: אופציונלי: אזור הזמן החדש של IANA לשעת ההתחלה של לוח הזמנים, לדוגמהEurope/Paris. ערך ברירת המחדל הואUTC. DURATION: אופציונלי: משך הזמן החדש, בשניות, שבו לוח הזמנים הזה פעיל.-
DESCRIPTION: אופציונלי: תיאור חדש של לוח הזמנים לשינוי קנה המידה.
השבתה והפעלה מחדש של לוח זמנים להתאמה לעומס
לוחות הזמנים של ההתאמה מופעלים כברירת מחדל. אם אתם רוצים להשבית לוח זמנים כדי שלא יהיה פעיל, אבל רוצים לשמור את ההגדרות שלו: אם רוצים להשתמש שוב בלוח זמנים שהושבת, צריך להפעיל אותו מחדש.
אם אתם לא צריכים לשמור את התזמון או שהגעתם למגבלה של 128 תזמונים לקבוצת ה-MIG הזו, מחקו את התזמון. כדי להשבית את ההתאמה האוטומטית לעומס (automatic scaling) של MIG, משביתים את ההתאמה האוטומטית לעומס (automatic scaling).
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת MIG ברשימה.
לוחצים על Edit.
לוחצים על Group size & autoscaling כדי להרחיב את הקטע.
בקטע Autoscaling schedules, לוחצים על Manage.
בחלונית Scaling Schedules מוצגת רשימה של לוחות הזמנים הקיימים להתאמה לעומס.
מסמנים את התיבות של לוחות הזמנים להתאמה לעומס שרוצים להפעיל או להשבית.
כדי להשבית את לוחות הזמנים שנבחרו:
- בחלק העליון של החלונית Scaling Schedules, לוחצים על Disable.
- בתיבת הדו-שיח Disable schedules, לוחצים על Disable.
כדי להפעיל את לוחות הזמנים שנבחרו:
- בחלק העליון של החלונית Scaling Schedules, לוחצים על Enable.
- בתיבת הדו-שיח Enable schedules, לוחצים על Enable.
יכול להיות שתצטרכו להמתין כמה דקות עד שהשינויים ייכנסו לתוקף. כדי לעקוב אחרי הסטטוס של לוחות הזמנים, לוחצים על Refresh בחלק העליון של החלונית Scaling Schedules.
לוחצים על Done כדי לסגור את החלונית Scaling schedules.
השינויים בלוחות הזמנים נשמרים ומוחלים על קבוצת ה-MIG.
לוחצים על שמירה כדי לצאת מדף העריכה.
gcloud
כדי להשבית או להפעיל מחדש לוח זמנים להתאמה לעומס, משתמשים בפקודה gcloud compute instance-groups managed update-autoscaling.
השבתה של לוח זמנים להתאמה לעומס (scaling)
כדי להשבית לוח זמנים להתאמה לעומס, משתמשים בדגל --disable-schedule.
gcloud compute instance-groups managed update-autoscaling MIG_NAME \
--disable-schedule=SCHEDULE_NAME \
[--zone=ZONE | --region=REGION]
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של קבוצת מכונות מנוהלת עם לוח זמנים קיים להתאמה לעומס. -
SCHEDULE_NAME: השם של לוח הזמנים לשינוי קנה המידה שרוצים להשבית. -
ZONEאוREGION: אופציונלי, האזור או התחום שבהם נמצאת קבוצת ה-MIG.
הפעלה מחדש של לוח זמנים להתאמה לעומס
כדי להפעיל מחדש לוח זמנים להתאמה לעומס, משתמשים בדגל --enable-schedule.
gcloud compute instance-groups managed update-autoscaling MIG_NAME \
--enable-schedule=SCHEDULE_NAME \
[--zone=ZONE | --region=REGION]
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של קבוצת מכונות מנוהלת עם לוח זמנים קיים להתאמה לעומס. -
SCHEDULE_NAME: השם של לוח הזמנים לשינוי קנה המידה שרוצים להפעיל מחדש. -
ZONEאוREGION: אופציונלי, האזור או התחום שבהם נמצאת קבוצת ה-MIG.
REST
כדי להשבית או להפעיל מחדש את לוחות הזמנים להתאמה לעומס של קבוצת MIG, משתמשים ב-method autoscalers.patch לקבוצת MIG אזורית או ב-method regionAutoscalers.patch לקבוצת MIG בכמה אזורים.
השבתת לוחות הזמנים של ההתאמה לעומס
בכל תזמון התאמה לעומס שרוצים להשבית, מגדירים את השדה disabled לערך true.
לדוגמה, כדי להשבית לוח זמנים של קבוצת MIG אזורית שיש לה מדיניות קיימת של התאמה אוטומטית לעומס, מבצעים את הקריאה הבאה:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME
{
"autoscalingPolicy": {
"scalingSchedules": {
"SCHEDULE_NAME": {
"disabled": true
},
...
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT: מזהה הפרויקט. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. -
AUTOSCALER_NAME: השם של מגדיר קנה מידה אוטומטי קיים. לרוב, השם הזה זהה לשם של ה-MIG. -
SCHEDULE_NAME: השם של לוח הזמנים להתאמה לעומס שרוצים להשבית.
הפעלה מחדש של לוחות זמנים להתאמה לעומס
בכל לוח זמנים לשינוי קנה מידה שרוצים להפעיל מחדש, מגדירים את השדה disabled לערך false.
לדוגמה, כדי להפעיל מחדש תזמון של קבוצת MIG אזורית שיש לה מדיניות קיימת של התאמה אוטומטית לעומס, צריך לבצע את הקריאה הבאה:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME
{
"autoscalingPolicy": {
"scalingSchedules": {
"SCHEDULE_NAME": {
"disabled": false
},
...
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT: מזהה הפרויקט. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. -
AUTOSCALER_NAME: השם של מגדיר קנה מידה אוטומטי קיים. לרוב, השם הזה זהה לשם של ה-MIG. -
SCHEDULE_NAME: השם של לוח הזמנים לשינוי קנה המידה שרוצים להפעיל מחדש.
מחיקת לוח זמנים לשינוי קנה מידה
כדי להסיר לוחות זמנים להתאמה לעומס מקבוצת MIG, צריך למחוק אותם.
למחוק לוחות זמנים שכבר לא צריך, כמו לוחות זמנים עם הסטטוס OBSOLETE .
במדיניות התאמה אוטומטית לעומס תמיד צריך להיות לפחות אות אחד להתאמה לעומס. אם אין אות אחר להתאמה אוטומטית לעומס, אי אפשר למחוק את כל לוחות הזמנים להתאמה לעומס בלי למחוק את כל המדיניות של ההתאמה אוטומטית לעומס. אם רוצים למחוק את כל לוחות הזמנים להתאמה לעומס אבל להשאיר את מדיניות ההתאמה האוטומטית לעומס, צריך להוסיף לפחות אות אחד להתאמה לעומס לפני שמוחקים את כל לוחות הזמנים.
אם רוצים למנוע את ההפעלה של לוח זמנים ולשמור אותו לשימוש עתידי, צריך להשבית את לוח הזמנים. כדי למחוק את הגדרת ההתאמה האוטומטית לעומס של קבוצת מכונות מנוהלות, מוחקים את ה-autoscaler.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת MIG ברשימה.
לוחצים על Edit.
לוחצים על Group size & autoscaling כדי להרחיב את הקטע.
בקטע Autoscaling schedules, לוחצים על Manage.
בחלונית Scaling Schedules מוצגת רשימה של לוחות הזמנים הקיימים להתאמה לעומס.
- מסמנים את התיבות של לוחות הזמנים להתאמה לעומס שרוצים למחוק.
- בחלק העליון של החלונית Scaling Schedules, לוחצים על Delete.
בתיבת הדו-שיח Delete schedules, מקלידים
deleteולוחצים על Delete.יכול להיות שתצטרכו להמתין כמה דקות עד שהשינויים ייכנסו לתוקף. כדי לעקוב אחרי הסטטוס של לוחות הזמנים, לוחצים על Refresh בחלק העליון של החלונית Scaling Schedules.
לוחצים על Done כדי לסגור את החלונית Scaling schedules.
השינויים בלוחות הזמנים נשמרים ומוחלים על קבוצת ה-MIG.
לוחצים על שמירה כדי לצאת מדף העריכה.
gcloud
כדי למחוק לוח זמנים להתאמה לעומס, משתמשים בפקודה gcloud compute instance-groups managed update-autoscaling עם הדגל --remove-schedule.
gcloud compute instance-groups managed update-autoscaling MIG_NAME \
--remove-schedule=SCHEDULE_NAME \
[--zone=ZONE | --region=REGION]
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של קבוצת מכונות מנוהלת עם לוח זמנים קיים להתאמה לעומס. -
SCHEDULE_NAME: השם של לוח הזמנים לשינוי קנה המידה שרוצים למחוק. -
ZONEאוREGION: אופציונלי, האזור או התחום שבהם נמצאת קבוצת ה-MIG.
REST
כדי למחוק לוחות זמנים להתאמה לעומס של קבוצת MIG, משתמשים ב-methodautoscalers.patch לקבוצת MIG אזורית או ב-methodregionAutoscalers.patch לקבוצת MIG בכמה אזורים. בכל לוח זמנים לשינוי קנה מידה שרוצים למחוק, מגדירים את לוח הזמנים ל-null
לדוגמה, כדי למחוק לוח זמנים של קבוצת MIG אזורית שיש לה מדיניות קיימת של התאמה אוטומטית לעומס, מבצעים את הקריאה הבאה:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME
{
"autoscalingPolicy": {
"scalingSchedules": {
"SCHEDULE_NAME": null
...
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT: מזהה הפרויקט. -
ZONE: האזור שבו נמצאת קבוצת ה-MIG. -
AUTOSCALER_NAME: השם של מידרוג אוטומטי קיים. לרוב, השם הזה זהה לשם של ה-MIG. -
SCHEDULE_NAME: השם של לוח הזמנים לשינוי קנה המידה שרוצים למחוק.
מושגים
בקטע הזה מתוארים מושגים שקשורים ליצירה ולשימוש בלוחות זמנים להתאמה לעומס, כולל הגדרות של לוחות זמנים ופרטים על אופן הפעולה שלהם.
הגדרות של לוח זמנים לשינוי קנה מידה
כשיוצרים ומשנים את לוחות הזמנים להתאמה לעומס של MIG, כל לוח זמנים להתאמה לעומס מכיל את ההגדרות הבאות:
מספר המכונות המינימלי הנדרש: מספר המכונות הווירטואליות שנדרשות בקבוצת המכונות המנוהלת (MIG) כשלוח הזמנים הזה של התאמת קנה המידה פעיל.
כשהתזמון הזה פעיל, בקבוצת ה-MIG יש לפחות את מספר המכונות הווירטואליות הזה, אבל יכול להיות שיהיו יותר מכונות וירטואליות בהתאם להגדרות אחרות של התאמה אוטומטית לעומס. בנוסף, הגודל של קבוצת ה-MIG תמיד מוגבל על ידי המספר המינימלי והמקסימלי של המכונות שהוגדרו בהגדרות ההתאמה האוטומטית לעומס של קבוצת ה-MIG.
אזור זמן: אזור הזמן של IANA שמבוסס על מיקום, כדי לפרש את שעת ההתחלה של לוח הזמנים.
רשימת הערכים הזמינים מוגדרת על ידי מסד הנתונים של אזורי הזמן של IANA, לדוגמה
Europe/Paris. אם לא מציינים אזור זמן, ברירת המחדל היאUTC. בחלק מאזורי הזמן של IANA יש שעון קיץ. בקטע שעון קיץ מוסבר איך שעון הקיץ משפיע על לוחות הזמנים של ההתאמה לעומס.Duration: משך הזמן שבו אתם רוצים שתזמון ההתאמה לעומס יהיה פעיל.
לוח הזמנים של ההתאמה לעומס פעיל משעת ההתחלה שלו למשך הזמן שהוגדר. משך הזמן המינימלי הוא 5 דקות. במהלך הזמן הזה, המידרוג האוטומטי משנה את קבוצת ה-MIG כך שיהיו בה לפחות מספר המכונות הווירטואליות שהוגדר בלוח הזמנים. אם אחרי משך הזמן שצוין אין יותר צורך בקיבולת הנוכחית, המידרוג האוטומטי מתחיל להסיר מכונות וירטואליות אחרי תקופת הייצוב ובהתאם לאמצעי הבקרה להקטנת קנה המידה שהוגדרו.
לוחות הזמנים של שינוי קנה המידה הם דו-כיווניים. המכונות הווירטואליות יוסרו בזמן ההפסקה שציינתם, וגודל הקבוצה יצומצם לגודל המינימלי שהגדרתם, אלא אם ציינתם אותות אחרים להתאמה לעומס.
כשמשתמשים ב-Google Cloud CLI או ב-REST, צריך להגדיר את שעת ההתחלה ואת החזרה של לוח הזמנים להתאמה לעומס באמצעות ביטוי cron. עם זאת, כשמשתמשים במסוף Google Cloud , אפשר להגדיר את שעת ההתחלה ואת החזרה של לוח הזמנים באמצעות ביטוי cron או באמצעות ההגדרות הבאות:
שעת התחלה: השעה ביום שבה רוצים להפעיל את לוח הזמנים של ההתאמה לעומס.
בשעת ההתחלה, לוח הזמנים של ההתאמה לעומס מתחיל ליצור מכונות וירטואליות בכל פעם שגודל ה-MIG קטן ממספר המכונות שנדרש בלוח הזמנים. כדאי להגדיר את שעת ההתחלה כך שיהיה מספיק זמן להפעיל ולאתחל מכונות וירטואליות חדשות. לדוגמה, אם עומס העבודה נמשך 10 דקות מיצירת המכונה הווירטואלית ועד לתחילת השירות, צריך להגדיר את שעת ההתחלה ל-10 דקות לפני הזמן שבו המכונות הווירטואליות צריכות להיות מוכנות.
Recurrence: אם לוח הזמנים של ההתאמה חוזר על עצמו, ובאיזו תדירות, כפי שמוגדר באפשרויות הבאות:
- פעם אחת: תזמון חד-פעמי שמתחיל רק בתאריך שנבחר.
- כל יום: לוח זמנים חוזר שמתחיל כל יום.
- Every week: לוח זמנים קבוע שמתחיל כל שבוע בימים שנבחרו בשבוע, למשל כל יום שני עד שישי.
- Every month: לוח זמנים חוזר שמתחיל כל חודש בימים שנבחרו בחודש, למשל ביום הראשון של כל חודש. הימים האחרונים של החודש (ימים 29 עד 31) רלוונטיים רק בחודשים שבהם הימים האלה קיימים.
ביטויי Cron
אפשר להגדיר את שעת ההתחלה ואת החזרה של לוח הזמנים לשינוי קנה המידה באמצעות ביטוי cron. Cron הוא מתזמן משימות מבוסס-זמן, ששימש במקור במערכות הפעלה של מחשבים דמויי Unix.
תחביר
ביטוי cron הוא מחרוזת שמורכבת מחמישה או שישה שדות שמופרדים ברווחים לבנים. בטבלה הבאה מוגדרים השדות של ביטוי cron והערכים האפשריים לכל שדה.
| דקה | שעה | יום בחודש | חודש | היום בשבוע | שנה (אופציונלי) |
|---|---|---|---|---|---|
| 0-59 | 0-23 | 1-31 | 1-12 (ינואר-דצמבר) כאשר 1=Jan,
2=Feb, ... 12=Dec |
0-6 (ראשון-שבת) או 1-7 (שני-ראשון) כאשר 0=Sun,
1=Mon, ... 6=Sat,
7=Sun |
2000-2036 או כל שנה ( *) אם לא צוין ערך |
בנוסף לערכים האלה, בכל שדה בביטוי cron אפשר להשתמש גם בתווים מיוחדים:
| תו מיוחד | משמעות | דוגמה |
|---|---|---|
* |
הכול | אם השדה של היום בחודש, השדה של היום בשבוע והשדה של השנה (אם הוא נכלל) מוגדרים לערך *, התזמון מתחיל כל יום. |
- |
טווח | אם השדה של היום בשבוע מוגדר לערך 1-5 או Mon-Fri, לוח הזמנים מתחיל כל שבוע בימים שני עד שישי. |
, |
list | אם שדה החודש מוגדר לערך 5,7,9 או May,Jul,Sep, התזמון מתחיל בכל מאי, יולי וספטמבר. |
/ |
שלב | אם שדה החודש מוגדר לערך */3, לוח הזמנים מתחיל בחודש הראשון וכל 3 חודשים אחריו: ינואר, אפריל, יולי ואוקטובר. |
כשכותבים ביטוי cron, חשוב לזכור את הדברים הבאים:
- רווחים משמשים להפרדה בין השדות של ביטוי Cron. חשוב לזכור: אל תוסיפו רווחים מיותרים בשדה שכולל תווים מיוחדים.
- כשמציינים גם יום בשבוע וגם יום בחודש (כשאף אחד מהשדות לא מוגדר כ-
*), לוח הזמנים משתמש באיחוד של הערכים האלה, ולא בחיתוך. לדוגמה, התזמון0 8 1 * Monמתחיל בשעה 08:00 בכל יום שני וביום הראשון של כל חודש. התזמון הזה לא מתחיל בשעה 08:00 רק בימי שני שהם גם היום הראשון בחודש. - אפשר להשתמש באפס תווים מיוחדים או יותר בכל שדה של ביטוי cron.
לדוגמה, אם רוצים שהתזמון יתחיל בכל חודש חוץ ממאי, אפשר להגדיר את שדה החודש לערך
1-4,6-12(רשימה של שני טווחים בלי רווחים). - כשמשתמשים בטווחים (
-), אי אפשר להשתמש ב-0-7או ב-Sun-Sunבשדה של היום בשבוע. כדי לציין כל יום בשבוע, צריך להשתמש ב-*, ב-0-6, ב-1-7, ב-Sun-Satאו ב-Mon-Sun. - כשמשתמשים בשלבים (
/), חשוב לזכור שביטויי cron הם בלי שמירת מצב, ולכן לפעמים השלבים יכולים להיות לא אחידים. לדוגמה, אם רוצים שהתזמון יפעל כל 6 שעות, אפשר להגדיר את שדה השעות לערך*/6, שפועל כמו רישום של כל כפולה חוקית של 6 (0,6,12,18). השלבים שווים כי 24 שעות מחולקות לחלקים של 6 שעות. עם זאת, אם תגדירו את שדה השעות לערך*/7, לוח הזמנים לא תמיד יתחיל במרווחים של 7 שעות. במקום זאת,*/7מתנהג כמו רישום של כל כפולה חוקית של 7 (0,7,14,21), כלומר לוח הזמנים יכול להתחיל בשעות 12:00, 07:00, 14:00 ו-21:00.
לוחות זמנים חוזרים לעומת לוחות זמנים חד-פעמיים
בהתאם לאופן שבו כותבים את ביטוי ה-cron, לוח הזמנים יכול לפעול פעם אחת או לחזור על עצמו מדי פעם. כדי ליצור לוח זמנים שפועל רק פעם אחת, צריך לציין את השדה של השנה. לדוגמה, ביטוי ה-cron 0 0 30 1 * 2030 מגדיר לוח זמנים שמתחיל רק פעם אחת, בחצות ב-30 בינואר 2030.
כדי ליצור לוח זמנים שחוזר על עצמו, צריך להשתמש בתווים מיוחדים שמתארים מתי לוח הזמנים הזה אמור לחזור על עצמו. לדוגמה, הביטוי 30 8 * * Mon-Fri ב-cron מגדיר לוח זמנים שמתחיל בשעה 8:30 בכל יום שני, שלישי, רביעי, חמישי ושישי.
מידע על סטטוס התזמון
מציגים את לוחות הזמנים לשינוי קנה המידה כדי לראות את הסטטוס שלהם. לוח הזמנים לשינוי קנה המידה כולל את פרטי הסטטוס הבאים:
- Status (
state): הסטטוס הנוכחי של לוח הזמנים להתאמה לעומס, שמיוצג על ידי אחד מהמצבים הבאים:- מוכן (
READY): לוח הזמנים מוכן אבל עדיין לא פעיל. הכלי להתאמה לעומס (Autoscaler) ממתין להתרחשות הבאה של לוח הזמנים הזה. - פעיל (
ACTIVE): לוח הזמנים הזה פעיל. המידרוג האוטומטי מנסה לספק לקבוצת ה-MIG הזו לפחות את המכונות הנדרשות שצוינו בתזמון הזה. - Obsolete (
OBSOLETE): התוקף של לוח הזמנים הזה פג, והוא לא יופעל שוב. המידרוג האוטומטי מתעלם מהתזמון הזה כי אין מופעים עתידיים. - Disabled (
DISABLED): אי אפשר להפעיל את לוח הזמנים כי הוא הושבת באופן ידני. ההגדרה של התאמה אוטומטית לעומס מתעלמת מלוח הזמנים הזה עד שהוא יופעל מחדש.
- מוכן (
- ההתרחשות האחרונה (
lastStartTime): חותמת הזמן של הפעם האחרונה שבה לוח הזמנים הזה לשינוי קנה המידה הופעל. זה התאריך והשעה בפועל של ההפעלה האחרונה. לדוגמה, אם יש לכם לוח זמנים מושבת לשינוי קנה מידה שחוזר על עצמו מדי יום, שעת ההתחלה היא 10:00 ומשך הזמן הוא שעתיים, ואתם מפעילים מחדש את לוח הזמנים בשעה 11:00 היום, אזlastStartTimeהיא 11:00 היום. - המועד הבא (
nextStartTime): חותמת הזמן של המועד הבא שבו לוח הזמנים הזה אמור להיות פעיל.
לוחות זמנים חופפים
בהתאם לשעת ההתחלה, לחזרה, למשך ולאזור הזמן, יכול להיות ששני לוחות זמנים או יותר לשינוי קנה מידה יהיו חופפים. אם יש יותר מלוח זמנים פעיל אחד, המידרוג האוטומטי משתמש במספר הגדול ביותר של מכונות VM שנדרשות מכל לוחות הזמנים הפעילים להתאמה לעומס. כך תמיד יהיה מספיק מקום כדי לעמוד בצרכים של כל לוח זמנים פעיל. לדוגמה, אם יש לכם לוח זמנים שחוזר על עצמו כל יום בין 8:00 ל-10:00 ודורש לפחות 10 מכונות וירטואליות, אבל יש לכם גם לוח זמנים חד-פעמי לכל היום שדורש לפחות 20 מכונות וירטואליות, אז באותו יום ה-autoscaler ישנה את קבוצת ה-MIG ללפחות 20 מכונות וירטואליות. האפשרות הזו שימושית כשיש לכם דרישות קיבולת קבועות וחוזרות, אבל לפעמים אתם צריכים יותר כדי לטפל באירועים חד-פעמיים. כך אתם יכולים לתזמן קיבולת בלי לדאוג שהיא תוחלף על ידי לוחות זמנים אחרים עם דרישות קטנות יותר למכונות וירטואליות.
בנוסף, מידרוג אוטומטי תמיד מספק את המספר הגדול ביותר של מכונות וירטואליות שנדרש על ידי אות פעיל כלשהו של התאמה אוטומטית לעומס. מידע נוסף זמין במאמר שימוש במדיניות התאמה אוטומטית לעומס (autoscaling) עם כמה אותות.
שעון קיץ
הפרטים של שעון הקיץ (DST) משתנים בהתאם לאזור הזמן של IANA שמבוסס על מיקום בלוח הזמנים של ההתאמה לעומס.
אם באזור הזמן של התזמון יש שעון קיץ, שעת ההתחלה של התזמון משתנה באופן אוטומטי כדי להישאר מסונכרנת עם השעה במיקום שנבחר. לדוגמה, אם יוצרים לוח זמנים להתאמה לעומס שמתחיל כל יום בשעה 7:00 באזור הזמן America/New_York, לוח הזמנים הזה יתחיל בכל פעם שהשעה בניו יורק היא 7:00, לפי שעון הקיץ או שעון החורף של החוף המזרחי בהתאם.
לוחות הזמנים של התאמת קנה המידה תמיד פועלים למשך הזמן שהגדרתם, אבל יכול להיות שיהיו להם זמני התחלה וסיום שונים במקצת בימים שבהם עוברים לשעון קיץ או חוזרים לשעון חורף. זה קורה כי למעבר לשעון קיץ יש תקופות מעבר – מסגרת זמן שמדלגים עליה ביום הראשון של שעון הקיץ, ומתרחשת פעמיים ביום האחרון של שעון הקיץ. לדוגמה, אם שעון הקיץ באזור הזמן שלכם מתחיל בשעה 02:00 והמעבר הוא של שעה אחת, השעון משתנה מ-01:59:59 ל-03:00, כך שפרק הזמן מ-02:00 עד 02:59:59 לא נכלל. אם שעון הקיץ באזור הזמן הזה מסתיים בשעה 02:00, השעון משתנה מ-02:59:59 ל-02:00, כך שפרק הזמן מ-02:00 עד 02:59:59 חוזר על עצמו. ההצהרות הבאות מבוססות על ההנחה שאזור הזמן של התזמון שלכם משתמש במעבר של שעה אחת לשעון קיץ.
ביום הראשון של שעון הקיץ (כשמדלגים על שעה אחת), בלוחות הזמנים של ההתאמה לעומס מתרחשים השינויים הבאים:
- לוחות זמנים שפעילים במהלך השעה שדולגה עדיין פועלים במשך כל הזמן שהוקצב להם, אבל כדי לפצות על השעה שדולגה, לוחות הזמנים האלה מסתיימים שעה אחת מאוחר יותר משעת הסיום שלהם בימים שבהם אין מעבר לשעון קיץ. בדרך כלל, שעת הסיום של לוח הזמנים היא הסכום של שעת ההתחלה ומשך הזמן של לוח הזמנים. אבל אם שעון הקיץ מדלג על שעה אחת בזמן שלוח הזמנים פעיל, ומשך הזמן ושעת ההתחלה נשארים קבועים, שעת הסיום של לוח הזמנים הזה היא שעה אחת יותר מהסכום של שעת ההתחלה ומשך הזמן של לוח הזמנים.
- לוחות זמנים שמוגדרים להתחיל בשעה שדילגו עליה, מתחילים גם הם שעה אחת מאוחר יותר משעת ההתחלה שלהם בימים ללא מעבר לשעון קיץ.
ביום האחרון של שעון הקיץ (כשהשעה חוזרת על עצמה), בלוחות הזמנים של ההתאמה לעומס חלים השינויים הבאים:
- לוחות זמנים שפעילים במהלך השעה שחוזרת על עצמה עדיין פועלים במשך כל הזמן שהוקצב להם, אבל כדי לפצות על השעה שחוזרת על עצמה, לוחות הזמנים האלה מסתיימים שעה אחת מוקדם יותר משעת הסיום שלהם בימים שבהם אין מעבר לשעון קיץ. בדרך כלל, שעת הסיום של לוח הזמנים היא הסכום של שעת ההתחלה ומשך הזמן של לוח הזמנים. אבל אם שעון הקיץ חוזר על שעה אחת בזמן שהלו"ז פעיל, ומשך הזמן ושעת ההתחלה נשארים קבועים, שעת הסיום של הלו"ז הזה היא שעה אחת פחות מהסכום של שעת ההתחלה ומשך הזמן של הלו"ז.
- לוחות זמנים שמוגדרים להתחיל במהלך תקופת המעבר מתחילים בזמן שהוגדר, אבל הם לא מופעלים מחדש במהלך המופע השני שחוזר על עצמו של שעת ההתחלה.
ברוב אזורי הזמן שבהם נהוג שעון קיץ, תקופת המעבר היא שעה אחת. אבל אם באזור הזמן של התזמון יש תקופת מעבר אחרת, כמו אזור הזמן Australia/Lord_Howe שבו המעבר הוא של 30 דקות, ההתנהגות תהיה זהה. פשוט מחליפים את הערך 1 hour בזמן המעבר הרלוונטי לשעון קיץ.
המאמרים הבאים
- מידע ולמידה על שימוש במדיניות התאמה אוטומטית לעומס (autoscaling) עם כמה אותות
- מידע נוסף על ניהול של כלים להתאמה לעומס (autoscaler)
- מידע ולמידה על ההחלטות של מידרוג אוטומטי