התכונה 'שינוי גודל אוטומטי לפי לוח זמנים' מאפשרת לשפר את הזמינות של עומסי העבודה על ידי תזמון של קיבולת מראש לפני עומס צפוי. אם אתם מריצים את עומס העבודה בקבוצת מופעי מכונה מנוהלים (MIG), אתם יכולים לתזמן את המספר הנדרש של מכונות וירטואליות (VM) לדפוסי עומס חוזרים וגם לאירועים חד-פעמיים. אם לעומס העבודה שלכם נדרש זמן רב לאתחול ואתם רוצים להרחיב אופקית בהתאם לעומס (scale out) לפני עלייה צפויה בעומס, כדאי להשתמש בלוחות זמנים להתאמה לעומס.
במאמר הזה מוסבר איך ליצור, להציג ברשימה, לערוך, להשבית, להפעיל מחדש ולמחוק תזמוני שינוי גודל של קבוצת מופעים מנוהלת (MIG) קיימת. מידע נוסף על קבוצות מופעי מכונה מנוהלים (MIG) ועל התאמה אוטומטית לעומס זמין במאמרים בנושא יצירה של קבוצות מופעי מכונה מנוהלים והתאמה אוטומטית לעומס של קבוצות מופעי מכונה.
לפני שמתחילים
- מידע נוסף על היסודות של מידרוג אוטומטי
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
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 דקות.
יצירת תזמון לשינוי גודל
אפשר ליצור עד 128 לוחות זמנים להתאמה לעומס לכל קבוצת MIG. מידע נוסף זמין במאמר בנושא התאמת הגדרות התזמון.
בהוראות הבאות מוסבר איך ליצור לוח זמנים להתאמה לעומס (scaling) של קבוצת מכונות מנוהלת (MIG).
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת ה-MIG ברשימה.
לוחצים על Edit.
לוחצים על גודל הקבוצה ושינוי גודל אוטומטי כדי להרחיב את הקטע.
אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.
כברירת מחדל, הגדרת ההתאמה האוטומטית לעומס מוסיפה אות שמבוסס על ניצול ה-CPU. אם רוצים לשנות את קנה המידה של ה-MIG רק על סמך לוחות זמנים, צריך למחוק את מדד ברירת המחדל של ניצול ה-CPU אחרי שמוסיפים את לוחות הזמנים.
בקטע Autoscaling schedules (תזמונים של שינוי גודל אוטומטי), לוחצים על Manage (ניהול).
בחלונית לוחות זמנים לשינוי גודל, לכל לוח זמנים לשינוי גודל שרוצים להוסיף, מבצעים את הפעולות הבאות:
- לוחצים על יצירת לוח זמנים.
- בחלונית Create scaling schedule, מזינים Name.
- אופציונלי: מזינים תיאור.
- בשדה Minimum required instances, מזינים את מספר המכונות המינימלי הנדרש שהלו"ז הזה מספק כשהוא פעיל.
כדי לציין את שעת ההתחלה ואת החזרה של תזמון ההתאמה, אפשר להשתמש בממשק ברירת המחדל. אפשר גם להגדיר לוח זמנים עם שעת התחלה וחזרה מורכבות יותר באמצעות ביטוי cron. בהתאם להגדרה שרוצים לבצע, פועלים לפי השלבים הבאים:
ממשק ברירת המחדל
בשדה שעת התחלה, מזינים את שעת ההתחלה בפורמט
HH:MM AM/PM– לדוגמה,09:00 AM.לוחצים על השדה אזור זמן. בוחרים מדינה ואז אזור זמן.
אפשר להשתמש בשדה חיפוש לפי מדינה כדי למצוא מדינה או אזור זמן. לדוגמה, מקלידים
Australia/australian centralכדי למצוא את אזורי הזמן של Central Standard באוסטרליה.בשדות Duration ו-Unit of time, מזינים משך זמן ובוחרים את יחידת הזמן המתאימה.
בשדה Recurrence, בוחרים את תדירות החזרה של התזמון.
אפשר לבחור באפשרות פעם אחת או באפשרות כל יום. כדי לציין שהתזמון יחזור רק בימים מסוימים, בוחרים באפשרות כל שבוע או כל חודש. אחרי שבוחרים באחת מהאפשרויות האלה, משתמשים ברשימה הנוספת כדי לבחור את הימים בשבוע או בחודש שבהם לוח הזמנים מתחיל.
ביטוי Cron
כדי להפעיל, לוחצים על המתג שימוש בביטוי CRON.
בשדה CRON expression, מזינים ביטוי cron שמציין את שעת ההתחלה ואת החזרה.
לוחצים על השדה אזור זמן. בוחרים מדינה ואז אזור זמן.
אפשר להשתמש בשדה חיפוש לפי מדינה כדי למצוא מדינה או אזור זמן. לדוגמה, מקלידים
Australia/australian centralכדי למצוא את אזורי הזמן של Central Standard באוסטרליה.בשדות 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: אופציונלי: המספר המינימלי של מופעים שנדרשים לקבוצת ה-MIG הזו. Google ממליצה להגדיר את הערך הזה למספר המינימלי של המכונות שאתם צריכים כשאין לוח זמנים פעיל להתאמה לעומס. כדי להגדיל את קבוצת ה-MIG עד לאפס מופעים, מגדירים את הערך הזה ל-0ומוודאים שהתנאים הנדרשים מתקיימים. -
MAX_NUM_REPLICAS: המספר המקסימלי של מופעים שאפשר לספק לקבוצת ה-MIG הזו. אופציונלי עבור 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 עבור MIG אזורי או ב-method regionAutoscalers.insert עבור MIG אזורי.
מבצעים את הקריאה הבאה כדי ליצור תזמון ל-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 עם מדיניות קיימת של התאמה אוטומטית לעומס, משתמשים בשיטה autoscalers.patch ל-MIG אזורי או בשיטה 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: אופציונלי: המספר המינימלי של מופעים שנדרשים לקבוצת ה-MIG הזו. Google ממליצה להגדיר את הערך הזה למספר המינימלי של המכונות שאתם צריכים כשאין לוח זמנים פעיל להתאמה לעומס. כדי לצמצם אופקית את ה-MIG ל-0 מכונות, מגדירים את הערך הזה ל-0ומוודאים שמתקיימים התנאים הנדרשים. -
MAX_NUM_REPLICAS: המספר המקסימלי של מופעים שאפשר לספק לקבוצת ה-MIG הזו. אופציונלי ל-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 אזורית, שולחים בקשה דומה באמצעות השיטה 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 אזורית, שולחים בקשה דומה באמצעות השיטה 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 אזורית, שולחים בקשה דומה באמצעות השיטה regionAutoscalers.patch ומציינים אזור במקום תחום.
אחרי שיוצרים לוח זמנים, יכול להיות שתצטרכו לחכות כמה דקות עד שיופיעו פרטי הסטטוס שלו.
הצגת לוחות הזמנים של שינוי הגודל
אתם יכולים לראות רשימה של לוחות הזמנים של קבוצת מכונות מנוהלת. ברשימה מוצגים ההגדרות ופרטי הסטטוס של כל תזמון.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת ה-MIG ברשימה.
בכרטיס Autoscaling שבכרטיסייה Overview מוצגים האותות שהוגדרו ב-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
כדי לקבל פרטים על קנה מידה אוטומטי, כולל ההגדרות והסטטוסים של לוחות הזמנים של שינוי קנה המידה, משתמשים בשיטה autoscalers.get עבור MIG אזורי או בשיטה 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"
},
...
},
...
}
עריכת לוח זמנים לשינוי גודל
אפשר לערוך תזמון קנה מידה קיים כדי לשנות את ההגדרות שלו, חוץ מהשם של התזמון. אפשר גם להשבית או להפעיל מחדש לוח זמנים של שינוי גודל.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת MIG ברשימה.
לוחצים על Edit.
לוחצים על גודל הקבוצה ושינוי גודל אוטומטי כדי להרחיב את הקטע.
בקטע Autoscaling schedules (תזמונים של שינוי גודל אוטומטי), לוחצים על Manage (ניהול).
בחלונית Scaling Schedules (תזמון שינוי גודל) מוצגת רשימה של תזמוני שינוי הגודל הקיימים.
מסמנים את התיבה של לוח הזמנים לשינוי הגודל שרוצים לערוך.
בחלק העליון של החלונית Scaling Schedules (לוחות זמנים לשינוי גודל), לוחצים על Edit (עריכה).
בחלונית Edit scaling schedule, משנים את השדות שרוצים. מידע נוסף על כל שדה זמין במאמר בנושא יצירת לוח זמנים לשינוי גודל.
כשמסיימים, לוחצים על שמירה.
יכול להיות שתצטרכו להמתין כמה דקות עד שהשינויים ייכנסו לתוקף. כדי לעקוב אחרי הסטטוס של לוחות הזמנים, לוחצים על רענון בחלק העליון של החלונית לוחות זמנים של שינוי גודל.
לוחצים על 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: השם של קבוצת MIG עם לוח זמנים קיים לשינוי גודל. -
SCHEDULE_NAME: השם של לוח הזמנים הקיים לשינוי גודל. -
CRON_EXPRESSION: אופציונלי: שעת ההתחלה החדשה והחזרה של התזמון הזה בפורמט של ביטוי cron. -
DURATION: אופציונלי: משך הזמן החדש, בשניות, שבו לוח הזמנים הזה פעיל. -
TIME_ZONE: אופציונלי: אזור הזמן החדש של IANA לשעת ההתחלה של התזמון – לדוגמה,Europe/Paris. ערך ברירת המחדל הואUTC. -
MIN_REQ_REPLICAS: אופציונלי: המספר החדש של המופעים המינימליים הנדרשים שהלוח הזה מספק כשהוא פעיל. -
DESCRIPTION: אופציונלי: תיאור חדש של לוח הזמנים לשינוי הגודל. -
ZONEאוREGION: אופציונלי: האזור או האזור שבו ממוקם ה-MIG.
REST
כדי לעדכן את לוחות הזמנים הקיימים להתאמה לעומס של קבוצת 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": {
"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.
לוחצים על גודל הקבוצה ושינוי גודל אוטומטי כדי להרחיב את הקטע.
בקטע Autoscaling schedules (תזמונים של שינוי גודל אוטומטי), לוחצים על Manage (ניהול).
בחלונית Scaling Schedules (תזמון שינוי גודל) מוצגת רשימה של תזמוני שינוי הגודל הקיימים.
מסמנים את התיבות לצד לוחות הזמנים של שינוי הגודל שרוצים להשבית או להפעיל.
כדי להשבית את לוחות הזמנים שנבחרו:
- בחלק העליון של החלונית תזמון שינוי גודל, לוחצים על השבתה.
- בתיבת הדו-שיח השבתת תזמונים, לוחצים על השבתה.
כדי להפעיל את לוחות הזמנים שנבחרו:
- בחלק העליון של החלונית Scaling Schedules, לוחצים על Enable.
- בתיבת הדו-שיח הפעלת תזמונים, לוחצים על הפעלה.
יכול להיות שתצטרכו להמתין כמה דקות עד שהשינויים ייכנסו לתוקף. כדי לעקוב אחרי הסטטוס של לוחות הזמנים, לוחצים על רענון בחלק העליון של החלונית לוחות זמנים של שינוי גודל.
לוחצים על Done כדי לסגור את החלונית Scaling schedules.
השינויים בלוחות הזמנים נשמרים ומיושמים ב-MIG.
כדי לצאת מדף העריכה, לוחצים על שמירה.
gcloud
כדי להשבית או להפעיל מחדש תזמון של שינוי גודל, משתמשים בפקודה gcloud compute instance-groups managed update-autoscaling.
השבתת לוח זמנים לשינוי גודל
כדי להשבית תזמון של שינוי גודל, משתמשים בדגל --disable-schedule.
gcloud compute instance-groups managed update-autoscaling MIG_NAME \
--disable-schedule=SCHEDULE_NAME \
[--zone=ZONE | --region=REGION]
מחליפים את מה שכתוב בשדות הבאים:
-
MIG_NAME: השם של קבוצת MIG עם לוח זמנים קיים להתאמה לעומס. -
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: השם של קבוצת MIG עם לוח זמנים קיים להתאמה לעומס. -
SCHEDULE_NAME: השם של לוח הזמנים לשינוי הקיבולת שרוצים להפעיל מחדש. -
ZONEאוREGION: אופציונלי, האזור או התחום שבהם נמצאת קבוצת ה-MIG.
REST
כדי להשבית או להפעיל מחדש את לוחות הזמנים של שינוי הגודל של MIG, משתמשים בשיטה autoscalers.patch עבור MIG אזורי או בשיטה 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.
לוחצים על גודל הקבוצה ושינוי גודל אוטומטי כדי להרחיב את הקטע.
בקטע Autoscaling schedules (תזמונים של שינוי גודל אוטומטי), לוחצים על Manage (ניהול).
בחלונית Scaling Schedules מוצגת רשימה של לוחות הזמנים הקיימים להתאמה לעומס.
- מסמנים את התיבות לצד לוחות הזמנים של ההרחבה שרוצים למחוק.
- בחלק העליון של החלונית Scaling Schedules, לוחצים על Delete.
בתיבת הדו-שיח Delete schedules, מקלידים
deleteולוחצים על Delete.יכול להיות שתצטרכו להמתין כמה דקות עד שהשינויים ייכנסו לתוקף. כדי לעקוב אחרי הסטטוס של לוחות הזמנים, לוחצים על רענון בחלק העליון של החלונית לוחות זמנים של שינוי גודל.
לוחצים על 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: השם של קבוצת MIG עם לוח זמנים קיים להתאמה לעומס. -
SCHEDULE_NAME: השם של לוח הזמנים לשינוי גודל שרוצים למחוק. -
ZONEאוREGION: אופציונלי, האזור או התחום שבהם נמצאת קבוצת ה-MIG.
REST
כדי למחוק לוחות זמנים להתאמה לעומס של קבוצת MIG, משתמשים ב-method autoscalers.patch לקבוצת MIG אזורית או ב-method regionAutoscalers.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 יש שעון קיץ. מידע על ההשפעה של שעון הקיץ על לוחות זמנים של שינוי גודל זמין במאמר בנושא שעון קיץ.משך זמן: משך הזמן שבו רוצים שהתזמון של שינוי הגודל יהיה פעיל.
לוח הזמנים של ההתאמה לעומס פעיל משעת ההתחלה שלו למשך הזמן שהוגדר. משך הזמן המינימלי הוא 5 דקות. במהלך הזמן הזה, הכלי להתאמה אוטומטית לעומס (autoscaler) משנה את גודל קבוצת ה-MIG כך שיהיו בה לפחות מכונות וירטואליות כמספר המכונות הנדרש שמוגדר בלוח הזמנים. אם אחרי משך הזמן שצוין אין יותר צורך בקיבולת הנוכחית, המידרוג האוטומטי מתחיל להסיר מכונות וירטואליות אחרי תקופת הייצוב ובהתאם לפקדי ההתאמה האופקית בהתאם לעומס (scale in) שהוגדרו.
לוחות זמנים של שינוי גודל הם דו-כיווניים. המכונות הווירטואליות יוסרו בזמן ההפסקה שציינתם, וגודל הקבוצה יצומצם לגודל המינימלי שהגדרתם, אלא אם ציינתם אותות אחרים להתאמה לעומס.
כשמשתמשים ב-Google Cloud CLI או ב-REST, צריך להגדיר את שעת ההתחלה ואת החזרה של תזמון ההתאמה לעומס באמצעות ביטוי cron. עם זאת, כשמשתמשים במסוף Google Cloud , אפשר להגדיר את שעת ההתחלה ואת המחזוריות של לוח זמנים באמצעות ביטוי cron או ההגדרות הבאות:
שעת התחלה: השעה ביום שבה אתם רוצים שתוכנית ההתאמה תהפוך לפעילה.
בשעת ההתחלה, לוח הזמנים של שינוי הגודל מתחיל ליצור מכונות וירטואליות בכל פעם שגודל ה-MIG קטן ממספר המופעים שנדרש בלוח הזמנים. מגדירים את שעת ההתחלה כך שיהיה מספיק זמן להפעלה ולאתחול של מכונות וירטואליות חדשות. לדוגמה, אם עומס העבודה נמשך 10 דקות מרגע יצירת המכונה הווירטואלית ועד שהיא מתחילה לפעול, צריך להגדיר את שעת ההתחלה 10 דקות לפני הזמן שבו המכונות הווירטואליות צריכות להיות מוכנות.
חזרה: אם ומתי לוח הזמנים של שינוי הגודל חוזר על עצמו, בהתאם לאפשרויות הבאות:
- פעם אחת: תזמון חד-פעמי שמתחיל רק בתאריך שנבחר.
- כל יום: תזמון חוזר שמתחיל כל יום.
- Every week: לוח זמנים חוזר שמתחיל בכל שבוע בימים שנבחרו בשבוע – למשל, כל יום שני עד שישי.
- כל חודש: לוח זמנים חוזר שמתחיל כל חודש בימים שנבחרו בחודש – לדוגמה, ביום הראשון של כל חודש. הימים האחרונים בחודש (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מתחיל בשעה 8:00 בבוקר בכל יום שני וביום הראשון של כל חודש. התזמון הזה לא מתחיל בשעה 08:00 רק בימי שני שהם גם היום הראשון בחודש. - אפשר להשתמש באפס תווים מיוחדים או יותר בכל שדה של ביטוי cron.
לדוגמה, אם רוצים שהתזמון יתחיל בכל חודש חוץ ממאי, אפשר להגדיר את שדה החודש לערך
1-4,6-12(רשימה של שני טווחים בלי רווחים). - כשמשתמשים בטווחים (
-), אי אפשר להשתמש ב-0-7או ב-Sun-Sunבשדה של יום בשבוע. כדי לציין כל יום בשבוע, צריך להשתמש במקום זאת ב-*,0-6,1-7,Sun-SatאוMon-Sun. - כשמשתמשים בשלבים (
/), חשוב לזכור שביטויי cron הם חסרי מצב (stateless), ולכן לפעמים השלבים לא אחידים. לדוגמה, אם רוצים שתזמון יפעל כל 6 שעות, אפשר להגדיר את השדה hours (שעות) ל-*/6, שפועל כמו רשימה של כל הכפולות התקפות של 6 (0,6,12,18). השלבים שווים כי 24 שעות מחולקות לחלקים של 6 שעות. עם זאת, אם תגדירו את שדה השעות לערך*/7, לוח הזמנים לא תמיד יתחיל במרווחים של 7 שעות. במקום זאת,*/7מתנהג כמו רשימה של כל הכפולות התקפות של 7 (0,7,14,21), כלומר התזמון יכול להתחיל בשעות 00:00, 07:00, 14:00 ו-21:00.
לוחות זמנים חוזרים לעומת לוחות זמנים חד-פעמיים
בהתאם לאופן כתיבת הביטוי של cron, יכול להיות שהתזמון יפעל פעם אחת או יחזור על עצמו באופן מחזורי. כדי ליצור תזמון שפועל רק פעם אחת, צריך לציין את השדה של השנה. לדוגמה, הביטוי cron 0 0 30 1 * 2030 מגדיר לוח זמנים להתחלה חד-פעמית בלבד, בחצות ב-30 בינואר 2030.
כדי ליצור לוח זמנים שחוזר על עצמו, צריך להשתמש בתווים מיוחדים כדי לתאר מתי לוח הזמנים הזה אמור לחזור על עצמו. לדוגמה, הביטוי 30 8 * * Mon-Fri ב-cron מגדיר לוח זמנים שמתחיל בשעה 8:30 בכל יום שני, שלישי, רביעי, חמישי ושישי.
מידע על סטטוס התזמון
מציגים את רשימת לוחות הזמנים של שינוי הגודל כדי לראות את הסטטוס שלהם. ללוח זמנים לשינוי גודל יש את פרטי הסטטוס הבאים:
- סטטוס (
state): הסטטוס הנוכחי של לוח הזמנים לשינוי הגודל, שמיוצג על ידי אחד מהמצבים הבאים:- מוכן (
READY): התזמון הזה מוכן אבל עדיין לא פעיל. מידרוג אוטומטי ממתין להפעלה הבאה של התזמון הזה. - פעיל (
ACTIVE): לוח הזמנים הזה פעיל. הכלי להתאמה אוטומטית לעומס מנסה לספק לקבוצת ה-MIG הזו לפחות את המופעים הנדרשים שצוינו בלוח הזמנים הזה. - לא רלוונטי (
OBSOLETE): התוקף של לוח הזמנים הזה פג, והוא לא יהיה פעיל יותר. המידרוג האוטומטי מתעלם מהתזמון הזה כי אין מופעים עתידיים. - מושבת (
DISABLED): אי אפשר להפעיל את לוח הזמנים הזה כי הוא הושבת באופן ידני. מידרוג אוטומטי מתעלם מלוח הזמנים הזה עד שהוא מופעל מחדש.
- מוכן (
- המופע האחרון (
lastStartTime): חותמת הזמן של הפעם האחרונה שבה לוח הזמנים הזה של שינוי הגודל הפך לפעיל. התאריך והשעה בפועל של ההפעלה האחרונה. לדוגמה, אם יש לכם תזמון שינוי גודל מושבת עם חזרה יומית, שעת התחלה של 10:00 ומשך של שעתיים, ואתם מפעילים מחדש את התזמון בשעה 11:00 היום, אזlastStartTimeהוא 11:00 היום. - המועד הבא (
nextStartTime): חותמת הזמן של המועד הבא שבו לוח הזמנים הזה אמור להיות פעיל.
לוחות זמנים חופפים
יכול להיות שיהיה חפיפה בין שני לוחות זמנים או יותר של שינוי גודל, בהתאם לשעת ההתחלה, לחזרה, למשך ולאזור הזמן. אם יותר מלוח זמנים אחד פעיל, המידרוג האוטומטי משתמש במספר הגדול ביותר של מכונות VM נדרשות מכל לוחות הזמנים הפעילים למידרוג אוטומטי. כך תוכלו לוודא שתמיד יש מספיק קיבולת כדי לענות על הצרכים של כל לוח זמנים פעיל. לדוגמה, אם יש לכם לוח זמנים שחוזר על עצמו כל יום בין 8:00 ל-10:00 ודורש לפחות 10 מכונות וירטואליות, אבל יש לכם גם לוח זמנים חד-פעמי לכל היום שדורש לפחות 20 מכונות וירטואליות, אז ה-autoscaler משנה את קבוצת ה-MIG ללפחות 20 מכונות וירטואליות באותו יום. האפשרות הזו שימושית כשיש לכם דרישות קיבולת קבועות וחוזרות, אבל לפעמים אתם צריכים יותר כדי לטפל באירועים חד-פעמיים. ההתנהגות הזו מאפשרת לכם לתזמן קיבולת בלי לדאוג שהיא תוחלף על ידי תזמונים אחרים עם דרישות קטנות יותר של מכונות וירטואליות.
בנוסף, מידרוג אוטומטי תמיד מספק את המספר הגדול ביותר של מכונות וירטואליות שנדרשות על ידי אות פעיל כלשהו של התאמה אוטומטית לעומס. מידע נוסף זמין במאמר בנושא שימוש במדיניות של שינוי גודל אוטומטי עם כמה אותות.
שעון קיץ
הפרטים של שעון הקיץ (DST) משתנים בהתאם לאזור הזמן של IANA שמבוסס על מיקום בלוח הזמנים של ההתאמה לעומס.
אם אזור הזמן של התזמון כולל שעון קיץ, שעת ההתחלה של התזמון תשתנה אוטומטית כדי להישאר מסונכרנת עם השעה במיקום שנבחר. לדוגמה, אם יוצרים תזמון שינוי גודל שמתחיל כל יום בשעה 7:00 באזור הזמן America/New_York, התזמון הזה יתחיל בכל פעם שהשעה תהיה 7:00 בניו יורק, לפי שעון הקיץ של החוף המזרחי או לפי שעון החוף המזרחי, בהתאם.
לוחות זמנים של שינוי גודל תמיד פועלים למשך כל התקופה שהגדרתם, אבל יכול להיות שיהיו להם זמני התחלה וסיום שונים מעט בימים שבהם מתבצע מעבר לשעון קיץ. זה קורה כי למעבר לשעון קיץ יש תקופות מעבר – מסגרת זמן שמדלגים עליה ביום הראשון של שעון הקיץ, ומתרחשת פעמיים ביום האחרון של שעון הקיץ. לדוגמה, אם שעון הקיץ באזור הזמן שלכם מתחיל בשעה 2:00 והמעבר הוא של שעה אחת, השעה משתנה מ-1:59:59 ל-3:00, ולכן הטווח בין 2:00 ל-2:59:59 נדלג. אם שעון הקיץ באזור הזמן הזה מסתיים בשעה 2:00, השעון משתנה מ-2:59:59 ל-2:00, כך שפרק הזמן מ-2:00 עד 2:59:59 חוזר על עצמו. בהצהרות הבאות מניחים שאזור הזמן של התזמון שלכם משתמש במעבר לשעון קיץ של שעה אחת.
ביום הראשון של שעון הקיץ (כשמדלגים על שעה אחת), יש שינויים כאלה בלוחות זמנים של שינוי גודל:
- לוחות זמנים שפעילים במהלך השעה שדילגו עליה עדיין פועלים במשך כל הזמן שהוקצב להם, אבל כדי לפצות על השעה שדילגו עליה, לוחות הזמנים האלה מסתיימים שעה אחת אחרי שעת הסיום שלהם בימים שבהם אין מעבר לשעון קיץ. בדרך כלל, שעת הסיום של לוח זמנים היא הסכום של שעת ההתחלה ומשך הזמן שמוגדרים בלוח הזמנים. אבל אם שעון הקיץ מדלג על שעה אחת בזמן שלוח הזמנים פעיל, ומשך הזמן ושעת ההתחלה נשארים קבועים, שעת הסיום של לוח הזמנים הזה היא שעה אחת יותר מהסכום של שעת ההתחלה ומשך הזמן של לוח הזמנים.
- לוחות זמנים שמוגדרים להתחיל בשעה שדילגו עליה, יתחילו גם הם שעה אחת מאוחר יותר משעת ההתחלה שלהם בימים ללא מעבר לשעון קיץ.
ביום האחרון של שעון הקיץ (כשהשעה חוזרת על עצמה), בלוחות הזמנים של ההתאמה לעומס חלים השינויים הבאים:
- לוחות זמנים שפעילים במהלך השעה שחוזרת על עצמה עדיין יפעלו למשך כל משך הזמן שלהם, אבל כדי לפצות על השעה שחוזרת על עצמה, לוחות הזמנים האלה יסתיימו שעה אחת לפני שעת הסיום שלהם בימים שבהם לא מתבצע מעבר לשעון קיץ. בדרך כלל, שעת הסיום של לוח הזמנים היא הסכום של שעת ההתחלה ומשך הזמן של לוח הזמנים. אבל אם שעון הקיץ חוזר על שעה אחת בזמן שלוח הזמנים פעיל, ומשך הזמן ושעת ההתחלה נשארים קבועים, שעת הסיום של לוח הזמנים הזה קצרה בשעה אחת מהסכום של שעת ההתחלה ומשך הזמן של לוח הזמנים.
- לוחות זמנים שמוגדרים להתחיל במהלך תקופת המעבר מתחילים בזמן שהוגדר, אבל הם לא מופעלים מחדש במהלך המופע השני שחוזר על עצמו של שעת ההתחלה.
ברוב אזורי הזמן שבהם נהוג שעון קיץ, תקופת המעבר היא שעה אחת. אבל אם אזור הזמן של לוח הזמנים שלכם משתמש בתקופת מעבר שונה – כמו אזור הזמן Australia/Lord_Howe שמשתמש במעברים של 30 דקות – אתם יכולים לצפות לאותו התנהגות. פשוט מחליפים את 1 hour
בזמן המעבר הרלוונטי לשעון קיץ.
המאמרים הבאים
- מידע נוסף על שימוש במדיניות של שינוי גודל אוטומטי עם כמה אותות
- מידע נוסף על ניהול של קנה מידה אוטומטי
- מידע ולמידה על ההחלטות של מידרוג אוטומטי
- איך מגדירים התאמה אוטומטית של קבוצות MIG לפי סוגים אחרים של אותות להתאמה אוטומטית