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

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

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

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

מגבלות

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

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

יצירת לוח זמנים לשינוי גודל

אפשר ליצור עד 128 לוחות זמנים לשינוי גודל לכל MIG. מידע נוסף זמין במאמר בנושא הגדרות של תזמון שינוי גודל.

בהוראות הבאות מוסבר איך ליצור תזמון לשינוי גודל של MIG.

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG ברשימה.

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

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

  5. אם אין הגדרה של התאמה אוטומטית לעומס, לוחצים על הגדרת התאמה אוטומטית לעומס.

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

  6. בקטע Autoscaling schedules (תזמון של שינוי גודל אוטומטי), לוחצים על Manage (ניהול).

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

    1. לוחצים על יצירת לוח זמנים.
    2. בחלונית יצירת תזמון שינוי גודל, מזינים שם.
    3. אופציונלי: מזינים תיאור.
    4. מזינים את מספר המופעים המינימליים הנדרשים שהתזמון הזה מספק כשהוא פעיל.
    5. כדי לציין את שעת ההתחלה ואת החזרה של תזמון ההתאמה, אפשר להשתמש בממשק ברירת המחדל. אפשר גם להגדיר תזמון עם שעת התחלה ומחזוריות מורכבות יותר באמצעות ביטוי cron. בהתאם להגדרה שרוצים לבצע, פועלים לפי השלבים הבאים:

      • ממשק ברירת המחדל

        1. בשדה שעת התחלה, מזינים את שעת ההתחלה בפורמט HH:MM AM/PM – לדוגמה, 09:00 AM.

        2. לוחצים על השדה אזור זמן. בוחרים מדינה ואז אזור זמן.

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

        3. בשדות משך ויחידת זמן, מזינים משך זמן ובוחרים יחידת זמן תואמת.

        4. בשדה Recurrence, בוחרים את תדירות החזרה של התזמון.

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

      • ביטוי Cron

        1. כדי להפעיל, לוחצים על המתג שימוש בביטוי CRON.

        2. בשדה CRON expression, מזינים ביטוי cron שמציין את שעת ההתחלה ואת המחזוריות.

        3. לוחצים על השדה אזור זמן. בוחרים מדינה ואז אזור זמן.

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

        4. בשדות משך ויחידת זמן, מזינים משך זמן ובוחרים יחידת זמן תואמת.

    6. לוחצים על Save. בחלונית Scaling schedules (לוחות זמנים לשינוי גודל) מופיע לוח הזמנים שיצרתם.

  8. כשמסיימים ליצור את לוחות הזמנים, לוחצים על סיום.

    התזמונים נשמרים ומוחלים על ה-MIG.

  9. כדי לצאת מדף העריכה, לוחצים על שמירה.

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.

resource "google_compute_autoscaler" "default" {
  provider = google-beta
  name     = "my-autoscaler"
  zone     = "us-central1-f"
  target   = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 5
    min_replicas    = 1
    cooldown_period = 60

    scaling_schedules {
      name                  = "every-weekday-morning"
      description           = "Increase to 2 every weekday at 7AM for 12 hours."
      min_required_replicas = 2
      schedule              = "0 7 * * MON-FRI"
      time_zone             = "America/New_York"
      duration_sec          = 43200
    }
  }
}

כדי ללמוד איך להחיל הגדרות ב-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 ולוודא שהתנאים הנדרשים מתקיימים.
  • 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 ולציין אזור במקום תחום.

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

הצגת רשימה של לוחות הזמנים לשינוי גודל

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

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG ברשימה.

    בכרטיסייה Overview, האריח Autoscaling מציג את האותות שהוגדרו ב-MIG.

  3. לצד פרטי האות, מעבירים את מצביע העכבר מעל הסמל ולוחצים על ניהול.

    בחלונית תזמון שינוי גודל מוצגת רשימה של תזמוני שינוי הגודל הקיימים.

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 עבור קבוצת מכונות לשינוי גודל אוטומטי אזורית, או בשיטה regionAutoscalers.get עבור קבוצת מכונות לשינוי גודל אוטומטי אזורית.

לדוגמה, כדי להציג את התזמונים של קבוצת 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"
    },
    ...
  },
...
}

עריכת לוח זמנים של שינוי גודל

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

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG ברשימה.

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

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

  5. בקטע Autoscaling schedules (תזמון של שינוי גודל אוטומטי), לוחצים על Manage (ניהול).

    בחלונית Scaling Schedules (תזמון שינוי גודל) מוצגת רשימה של תזמוני שינוי הגודל הקיימים.

  6. מסמנים את התיבה של לוח הזמנים לשינוי הגודל שרוצים לערוך.

  7. בחלק העליון של החלונית Scaling Schedules (לוחות זמנים לשינוי גודל), לוחצים על Edit (עריכה).

  8. בחלונית עריכת לוח זמנים לשינוי גודל, משנים את השדות שרוצים לשנות. מידע נוסף על כל שדה זמין במאמר בנושא יצירת תזמון לשינוי גודל.

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

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

  10. כדי לסגור את החלונית תזמון שינוי גודל, לוחצים על סיום.

    השינויים בלוחות הזמנים נשמרים ומיושמים ב-MIG.

  11. כדי לצאת מדף העריכה, לוחצים על שמירה.

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

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG ברשימה.

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

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

  5. בקטע Autoscaling schedules (תזמון של שינוי גודל אוטומטי), לוחצים על Manage (ניהול).

    בחלונית Scaling Schedules (תזמון שינוי גודל) מוצגת רשימה של תזמוני שינוי הגודל הקיימים.

    1. מסמנים את תיבות הסימון עבור לוחות הזמנים של התאמה לעומס שרוצים להשבית או להפעיל.

      • כדי להשבית את לוחות הזמנים שנבחרו:

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

        1. בחלק העליון של החלונית Scaling Schedules (תזמון שינוי גודל), לוחצים על Enable (הפעלה).
        2. בתיבת הדו-שיח הפעלת תזמונים, לוחצים על הפעלה.

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

    2. כדי לסגור את החלונית תזמון שינוי גודל, לוחצים על סיום.

      השינויים בלוחות הזמנים נשמרים ומיושמים ב-MIG.

  6. כדי לצאת מדף העריכה, לוחצים על שמירה.

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 סטטוס.

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

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

המסוף

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

    כניסה לדף Instance groups

  2. לוחצים על השם של קבוצת ה-MIG ברשימה.

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

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

  5. בקטע Autoscaling schedules (תזמון של שינוי גודל אוטומטי), לוחצים על Manage (ניהול).

    בחלונית Scaling Schedules (תזמון שינוי גודל) מוצגת רשימה של תזמוני שינוי הגודל הקיימים.

    1. מסמנים את תיבות הסימון לצד לוחות הזמנים של התאמה לעומס שרוצים למחוק.
    2. בחלק העליון של החלונית Scaling Schedules (תזמון שינוי גודל), לוחצים על Delete (מחיקה).
    3. בתיבת הדו-שיח מחיקת לוחות זמנים, מקלידים delete ולוחצים על מחיקה.

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

    4. כדי לסגור את החלונית תזמון שינוי גודל, לוחצים על סיום.

      השינויים בלוחות הזמנים נשמרים ומיושמים ב-MIG.

  6. כדי לצאת מדף העריכה, לוחצים על שמירה.

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

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

כשמשתמשים ב-Google Cloud CLI או ב-REST, צריך להגדיר את שעת ההתחלה ואת המחזוריות של לוח זמנים לשינוי גודל באמצעות ביטוי cron. עם זאת, כשמשתמשים במסוף Google Cloud , אפשר להגדיר את שעת ההתחלה ואת המחזוריות של לוח זמנים באמצעות ביטוי cron או ההגדרות הבאות:

  • שעת התחלה: השעה ביום שבה אתם רוצים שתוכנית ההתאמה תהפוך לפעילה.

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

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

    • פעם אחת: תזמון חד-פעמי שמתחיל רק בתאריך שנבחר.
    • כל יום: תזמון חוזר שמתחיל כל יום.
    • כל שבוע: לוח זמנים חוזר שמתחיל כל שבוע בימים שנבחרו בשבוע – למשל, כל יום שני עד שישי.
    • כל חודש: לוח זמנים חוזר שמתחיל כל חודש בימים שנבחרו בחודש – למשל, ביום הראשון של כל חודש. הימים האחרונים בחודש (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:

תו מיוחד משמעות דוגמה
* הכול אם השדה של היום בחודש, השדה של היום בשבוע והשדה של השנה (אם הוא כלול) מוגדרים כל אחד לערך *, התזמון מתחיל כל יום.
- טווח אם השדה day of week (היום בשבוע) מוגדר ל-1-5 או ל-Mon-Fri, התזמון מתחיל כל שבוע מיום שני עד יום שישי.
, list אם השדה של החודש מוגדר ל-5,7,9 או ל-May,Jul,Sep, התזמון מתחיל בכל חודש מאי, יולי וספטמבר.
/ שלב אם השדה month מוגדר ל-*/3, התזמון מתחיל בחודש הראשון וממשיך כל 3 חודשים לאחר מכן: ינואר, אפריל, יולי ואוקטובר.

כשכותבים ביטוי cron, חשוב להתייחס לנקודות הבאות:

  • רווחים משמשים להפרדה בין השדות של ביטוי cron. חשוב לזכור לא להוסיף רווחים מיותרים בשדה שבו נעשה שימוש בתווים מיוחדים.
  • כשמציינים גם יום בשבוע וגם יום בחודש (ואף אחד מהשדות לא מוגדר לערך *), התזמון מתבסס על איחוד הערכים האלה ולא על החיתוך שלהם. לדוגמה, התזמון 0 8 1 * Mon מתחיל ב-8:00 בבוקר בכל יום שני וביום הראשון של כל חודש. התזמון הזה לא מתחיל בשעה 8:00 רק בימי שני שהם גם היום הראשון של החודש.
  • אפשר להשתמש באפס תווים מיוחדים או יותר בכל שדה של ביטוי cron. לדוגמה, אם רוצים שתזמון יתחיל בכל חודש חוץ מחודש מאי, אפשר להגדיר את השדה month ל-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 שעות. עם זאת, אם מגדירים את השדה hours (שעות) ל-*/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. כדי ליצור לוח זמנים שחוזר על עצמו, משתמשים בתווים מיוחדים כדי לתאר מתי לוח הזמנים הזה אמור לחזור על עצמו. לדוגמה, הביטוי cron‏ 30 8 * * Mon-Fri מגדיר לוח זמנים להתחלה בשעה 8:30 בכל יום שני, שלישי, רביעי, חמישי ושישי.

מידע על סטטוס התזמון

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

  • סטטוס (state): הסטטוס הנוכחי של לוח הזמנים לשינוי הגודל, שמיוצג על ידי אחד מהמצבים הבאים:
    • מוכן (READY): לוח הזמנים הזה מוכן אבל עדיין לא פעיל. הכלי לשינוי גודל קבוצת המכונות ממתין להפעלה הבאה של התזמון הזה.
    • פעיל (ACTIVE): לוח הזמנים הזה פעיל. הכלי להתאמה אוטומטית לעומס מנסה לספק לקבוצת ה-MIG הזו לפחות את המופעים הנדרשים שצוינו בלוח הזמנים הזה.
    • לא רלוונטי (OBSOLETE): התוקף של לוח הזמנים הזה פג, והוא לא יהיה פעיל יותר. הכלי לשינוי גודל קבוצת המכונות מתעלם מהתזמון הזה כי אין מקרים עתידיים.
    • מושבת (DISABLED): אי אפשר להפעיל את לוח הזמנים הזה כי הוא הושבת באופן ידני. הכלי לשינוי גודל אוטומטי מתעלם מלוח הזמנים הזה עד שהוא מופעל מחדש.
  • המופע האחרון (lastStartTime): חותמת הזמן של הפעם האחרונה שבה לוח הזמנים הזה של שינוי הגודל הפך לפעיל. התאריך והשעה בפועל של ההפעלה האחרונה. לדוגמה, אם יש לכם לוח זמנים להגדלת הקיבולת שהושבת, עם חזרה יומית, שעת התחלה של 10:00 ומשך של שעתיים, ואתם מפעילים מחדש את לוח הזמנים ב-11:00 היום, אז lastStartTime הוא 11:00 היום.
  • המועד הבא (nextStartTime): חותמת הזמן של הפעם הבאה שבה התזמון הזה אמור להיות פעיל.

לוחות זמנים חופפים

יכול להיות שיהיה חפיפה בין שני לוחות זמנים או יותר של שינוי גודל, בהתאם לשעת ההתחלה, למחזוריות, למשך ולאזור הזמן. אם יש יותר מלוח זמנים פעיל אחד, המערכת להגדלת הקיבולת באופן אוטומטי משתמשת במספר הגדול ביותר של מכונות VM נדרשות מכל לוחות הזמנים הפעילים לשינוי גודל. כך תוכלו לוודא שתמיד יש מספיק קיבולת כדי לענות על הצרכים של כל לוח זמנים פעיל. לדוגמה, אם יש לכם תזמון שחוזר על עצמו כל יום בין 8:00 ל-10:00 ודורש לפחות 10 מכונות וירטואליות, אבל יש לכם גם תזמון חד-פעמי ליום שלם שדורש לפחות 20 מכונות וירטואליות, אז הכלי לשינוי גודל אוטומטי ישנה את גודל ה-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 בזמן הרלוונטי למעבר לשעון קיץ.

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