תזמון של הפעלה והפסקה של מכונה וירטואלית

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

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

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

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

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

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

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

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

    המסוף

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

    gcloud

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

      gcloud init

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

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

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

      התקינו את ה-CLI של Google Cloud.

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

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

התפקידים הנדרשים

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

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

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

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

התפקידים הנדרשים של סוכן השירות של Compute Engine

כדי לוודא שלסוכן השירות של Compute Engine יש את ההרשאות הנדרשות להפעלת לוח הזמנים של המכונה, צריך לבקש מהאדמין להקצות לסוכן השירות של Compute Engine את תפקיד ה-IAM אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) בפרויקט.

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

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

ההרשאות הנדרשות

כדי להריץ תזמון של מכונה, צריך את ההרשאות הבאות:

  • compute.instances.start
  • compute.instances.stop

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

תפקידים נדרשים למשתמש או לחשבון שירות

כדי לוודא שלכם או לחשבון השירות שלכם יש את ההרשאות שנדרשות ליצירה ולניהול של לוחות זמנים של מכונות, בקשו מהאדמין להקצות לכם או לחשבון השירות שלכם את התפקיד אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) ב-IAM בפרויקט או בארגון. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ההרשאות הנדרשות

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

  • יוצרים תזמון מכונה: compute.resourcePolicies.create
  • הצגת לוח זמנים של מופע: compute.resourcePolicies.list
  • תיאור של תזמון מכונה: compute.resourcePolicies.get
  • מחיקת לוח זמנים של מכונה: compute.resourcePolicies.delete
  • כדי לצרף לוח זמנים של מכונה למכונה וירטואלית חדשה:
    • compute.instances.create
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • כדי לצרף תזמון מכונה למכונה וירטואלית קיימת:
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • הסרת תזמון של מכונה ממכונה וירטואלית:
    • compute.resourcePolicies.use
    • compute.instances.removeResourcePolicies

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

מגבלות

  • אפשר לצרף תזמון של מכונה רק למכונות וירטואליות שנמצאות באותו אזור כמו התזמון של המכונה.
  • אי אפשר להשתמש בלוחות זמנים של מכונות כדי לעצור מכונה שיש לה דיסקים מקומיים מסוג SSD.
  • כל מכונת VM יכולה לפעול רק לפי לוח זמנים אחד, אבל אפשר לצרף כל לוח זמנים של מכונות עד 1,000 מכונות VM.
  • תזמונים של מופעים לא מספקים ערבויות לקיבולת, ולכן אם המשאבים שנדרשים למופע של מכונה וירטואלית מתוזמנת לא זמינים בזמן המתוזמן, יכול להיות שהמופע של המכונה הווירטואלית לא יופעל בזמן המתוזמן. אפשר לשריין מראש מכונות וירטואליות כדי להגדיל את הסיכוי שתקבלו בוודאות מספיק קיבולת כשצריך, אבל אי אפשר לתזמן שריון מקום באופן אוטומטי.
  • תזמוני מכונות רק מפעילים ומפסיקים מכונות VM בזמנים שצוינו, אבל אפשר להפעיל ולהפסיק מכונות VM באופן ידני בכל שלב. לדוגמה, נניח שיש לכם תזמון שמתחיל כל יום בשעה 8:00 ומסתיים כל יום בשעה 17:00. אם מצרפים את התזמון הזה למכונה וירטואלית שהופסקה בשעה 16:00, המכונה הווירטואלית לא תופעל עד השעה 08:00 ביום שלמחרת, אלא אם תפעילו אותה ידנית לפני כן.
  • יכול להיות שיעברו עד 15 דקות מהזמן המתוזמן ועד שהמכונות הווירטואליות יתחילו או יפסיקו לפעול. אם אתם צריכים שמכונות וירטואליות יתחילו או יפסיקו לפעול בשעה מסוימת, כדאי לתזמן את הפעולה 15 דקות לפני השעה הרצויה, ולתזמן כל פעולה בהפרש של לפחות 15 דקות.
  • יכול להיות שהתזמון ייכשל אם יש פער של פחות מ-15 דקות בין פעולות ההתחלה וההפסקה. הסיבה לכך היא שפעולת העצירה עשויה להתרחש לפני פעולת ההתחלה, ולמנוע את פעולת ההתחלה.
  • בכל לוח זמנים של מכונה אפשר להגדיר עד פעולת הפעלה אחת ועד פעולת עצירה אחת בשעה.
  • כדי לשנות את לוח הזמנים של מכונה, משתמשים בפעולת תיקון במדיניות של לוח הזמנים של המכונה.

ניהול לוחות זמנים של מכונות

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

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

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

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. לוחצים על הכרטיסייה Instance schedules (לוחות זמנים של מופעים) בחלק העליון של הדף.

  3. לוחצים על יצירת לוח זמנים. נפתח החלונית Create a schedule (יצירת לוח זמנים).

  4. מזינים שם.

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

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

    משתמשים בשדות ברירת המחדל שעת התחלה,‏ Stop time ו-Frequency, או משתמשים בביטויי cron כדי להגדיר לוח זמנים מורכב יותר.

    • שדות ברירת מחדל:

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

      1. כדי להפעיל ביטויי cron, לוחצים על המתג Use CRON expression (שימוש בביטוי cron) בחלק העליון של החלונית.
      2. מזינים ביטוי CRON להתחלה, ביטוי CRON לעצירה או את שניהם.
        • בשדה Start CRON expression, מזינים ביטוי cron שמתאר מתי להפעיל את המכונות הווירטואליות.
        • בשדה Stop CRON expression, מזינים ביטוי cron שמתאר מתי להפסיק את מכונות ה-VM.
  7. בתפריט הנפתח אזור זמן, בוחרים את אזור הזמן של שעת ההתחלה ושעת הסיום.

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

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

  10. לוחצים על שליחה.

gcloud

כדי ליצור תזמון של מכונה באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute resource-policies create instance-schedule:

gcloud compute resource-policies create instance-schedule SCHEDULE_NAME \
    --region=REGION \
    [--vm-start-schedule='START-OPERATION_SCHEDULE'] \
    [--vm-stop-schedule='STOP-OPERATION_SCHEDULE'] \
    [--timezone=TIME_ZONE] \
    [--initiation-date=INITIATION_DATE] \
    [--end-date=END_DATE]

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

  • ‫SCHEDULE_NAME: השם של לוח הזמנים החדש של המכונה.
  • ‫REGION: האזור שבו נמצאים המכונות הווירטואליות שרוצים לצרף ללוח הזמנים של המכונות.
  • מציינים לפחות אחת מהאפשרויות הבאות:
    • ‫START-OPERATION_SCHEDULE: לוח זמנים שמתאר מתי מופעלים המופעים של מכונות וירטואליות שמצורפים, בפורמט של ביטוי cron. אם אתם צריכים שמופעי מכונות וירטואליות יתחילו בזמן מסוים, כדאי לתזמן את הפעולה 15 דקות לפני הזמן שאתם צריכים. מידע נוסף זמין במאמר בנושא תזמון של פעולות התחלה.
    • ‫STOP-OPERATION_SCHEDULE: לוח זמנים שמתאר מתי המכונות הווירטואליות המצורפות נעצרות, בפורמט של ביטוי cron. אם אתם צריכים שמופעי מכונות וירטואליות ייעצרו בזמן מסוים, כדאי לתזמן את הפעולה 15 דקות לפני הזמן הרצוי. מידע נוסף זמין במאמר בנושא תזמון של הפסקת פעולה.
  • ‫TIME_ZONE: אופציונלי: אזור הזמן של IANA שמבוסס על מיקום, של לוח הזמנים של המכונה. אם לא מציינים ערך, המערכת משתמשת בערך ברירת המחדל UTC. מידע נוסף זמין במאמר בנושא אזור זמן.
  • ‫INITIATION_DATE: אופציונלי: התאריך הראשון שבו לוח הזמנים של המכונה נכנס לתוקף, בפורמט של חותמת זמן RFC 3339. אם לא מציינים תאריך, לוח הזמנים נכנס לתוקף באופן מיידי. מידע נוסף זמין במאמר בנושא תאריך ההתחלה.
  • ‫END_DATE: אופציונלי: התאריך האחרון שבו תזמון המכונה בתוקף, בפורמט של חותמת זמן RFC 3339. אם לא מציינים תאריך סיום, לוח הזמנים תקף ללא הגבלת זמן. מידע נוסף זמין במאמר בנושא תאריך סיום.

REST

כדי ליצור תזמון של מכונה באמצעות Compute Engine API, שולחים בקשה באמצעות השיטה resourcePolicies.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies
{
  "name": "SCHEDULE_NAME",
  "instanceSchedulePolicy": {
    "vmStartSchedule": {
      "schedule": "START-OPERATION_SCHEDULE"
    },
    "vmStopSchedule": {
      "schedule": "STOP-OPERATION_SCHEDULE"
    },
    "timeZone": "TIME_ZONE",
    "startTime":"INITIATION_DATE",
    "expirationTime":"END_DATE"
  }
}

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

  • ‫PROJECT: מזהה הפרויקט.
  • ‫REGION: האזור שבו נמצאות המכונות הווירטואליות שרוצים לצרף ללוח הזמנים הזה.
  • ‫SCHEDULE_NAME: השם של לוח הזמנים החדש של המכונה.
  • ‫START-OPERATION_SCHEDULE או STOP-OPERATION_SCHEDULE: צריך לציין לפחות אחד מהערכים הבאים:
    • ‫START-OPERATION_SCHEDULE: לוח זמנים שמתאר מתי מופעלים המופעים של מכונות וירטואליות שמצורפים, בפורמט של ביטוי cron. אם אתם צריכים שמופעים של מכונות וירטואליות יתחילו בזמן מסוים, כדאי לתזמן את הפעולה 15 דקות לפני הזמן שבו אתם צריכים אותם. מידע נוסף זמין במאמר בנושא start-operation schedule.
    • ‫STOP-OPERATION_SCHEDULE: לוח זמנים שמתאר מתי המכונות הווירטואליות המצורפות נעצרות, בפורמט של ביטוי cron. אם אתם צריכים שמופעי מכונות וירטואליות ייעצרו בזמן מסוים, כדאי לתזמן את הפעולה 15 דקות לפני הזמן הרצוי. מידע נוסף זמין במאמר בנושא תזמון של הפסקת פעולה.
  • ‫TIME_ZONE: אזור הזמן של IANA שמבוסס על מיקום ללוח הזמנים של המופע הזה. מידע נוסף זמין במאמר בנושא אזור זמן.
  • ‫INITIATION_DATE: אופציונלי: התאריך הראשון שבו לוח הזמנים של המופע תקף, בפורמט של חותמת זמן RFC 3339. אם לא מציינים תאריך, לוח הזמנים נכנס לתוקף באופן מיידי. מידע נוסף זמין במאמר בנושא תאריך ההתחלה.
  • ‫END_DATE: אופציונלי: התאריך האחרון שבו לוח הזמנים של המופע בתוקף, בפורמט של חותמת זמן RFC 3339. אם לא מציינים תאריך, התזמון תקף ללא הגבלת זמן. מידע נוסף זמין במאמר בנושא תאריך סיום.

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

לוח זמנים להפעלת המכונה, לוח זמנים להפסקת המכונה

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

כשיוצרים לוחות זמנים של מופעים באמצעות Google Cloud המסוף, אפשר לבחור שעת התחלה, שעת סיום ותדירות, או לעצב כל לוח זמנים כביטוי cron. כשיוצרים תזמון של מכונות באמצעות ה-CLI של gcloud או Compute Engine API, צריך לעצב כל תזמון כביטוי cron.

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

דקה שעה יום בחודש חודש היום בשבוע
0-59 0-23 ‫1-31

כאשר 29-31 רלוונטיים רק לחודשים הרלוונטיים

1-12 ‫0-6 או SUN-SAT (ראשון עד שבת)

כאשר 0=SUN, 1=MON, … 6=SAT

בנוסף לערכים האלה, אפשר להשתמש גם בתווים המיוחדים הבאים בכל שדה בביטוי cron.
תו מיוחד משמעות דוגמה
* הכול אם השדות של היום בחודש, החודש והיום בשבוע מוגדרים כולם כ-*, לוח הזמנים חוזר על עצמו כל יום.
- טווח אם השדה של היום בשבוע מוגדר לערך MON-FRI (או 1-5), לוח הזמנים חוזר על עצמו כל שבוע מיום שני עד שישי.
, list אם שדה החודש מוגדר ל-1-6,8-12, לוח הזמנים חוזר על עצמו כל חודש חוץ מיולי.

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

  • משתמשים ברווח לבן כדי להפריד בין השדות של ביטוי cron. חשוב לזכור לא להוסיף רווחים מיותרים בשדה שכולל תווים מיוחדים.
  • כשמציינים גם יום בשבוע וגם יום בחודש (כששני השדות לא מוגדרים לערך *), המערכת משתמשת באיחוד של הערכים האלה ולא בחיתוך שלהם. לדוגמה, התזמון 0 8 1 * MON מתחיל בשעה 8:00 בכל יום שני וביום הראשון של כל חודש. הלו"ז הזה לא מתחיל ב-8:00 רק בימי שני שהם גם היום הראשון בחודש.
אזור זמן

אזור הזמן של IANA שמבוסס על מיקום, ללוח הזמנים של תחילת הפעולה וללוח הזמנים של הפסקת הפעולה. רשימת הערכים הזמינים מוגדרת במסד הנתונים של אזורי הזמן של IANA. אזור הזמן הזה משמש כהפניה רק לתזמונים של הפעולות start-operation ו-stop-operation – הוא לא משמש לתאריך ההתחלה ולתאריך הסיום. אזור הזמן הוא אופציונלי כשמשתמשים ב-CLI של gcloud או ב-API של Compute Engine. אם לא מציינים ערך, המערכת משתמשת בערך ברירת המחדל UTC.

בחלק מאזורי הזמן של IANA יש שעון קיץ (DST), שיכול להשפיע על לוחות הזמנים של המופעים. הפרטים של שעון הקיץ – כמו מתי הוא מתחיל ומסתיים, וכמה זמן מדלגים או חוזרים – משתנים בהתאם לכל אזור זמן.

תאריך התחלה, תאריך סיום

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

כשיוצרים תזמונים של מכונות באמצעות מסוף Google Cloud , בוחרים תאריך, שעה ואזור זמן באמצעות השדות Initiate date ו-End date.

כשיוצרים לוחות זמנים למכונות באמצעות ה-CLI של gcloud או Compute Engine API, הערכים האלה מופיעים בפורמט של חותמת זמן לפי RFC 3339:

  YYYY-MM-DDTHH:MM:SSOFFSET

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

  • ‫YYYY-MM-DD: תאריך בפורמט של שנה בת 4 ספרות, חודש בן 2 ספרות ויום בחודש בן 2 ספרות, עם מקפים להפרדה.
  • ‫HH:MM:SS: שעה בפורמט של 24 שעות עם 2 ספרות, דקה עם 2 ספרות ושנייה עם 2 ספרות, מופרדות בנקודתיים.
  • ‫OFFSET: אזור הזמן בפורמט של היסט מהזמן האוניברסלי המתואם (UTC). לדוגמה, שעון החוף המערבי של ארה"ב (PST), שמקדים ב-8 שעות את שעון UTC, נכתב כך: -08:00. לחלופין, כדי לא להשתמש בהזחה (אזור הזמן UTC), כותבים Z.

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

List instances schedules to view all existing instance schedules for your project.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

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

gcloud

כדי להציג רשימה של כל מדיניות המשאבים, כולל לוחות זמנים של מכונות, באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute resource-policies list. אפשר גם להוסיף את הדגל --filter כדי להגביל את התוצאות לאזור מסוים.

gcloud compute resource-policies list \
    [--filter="region:(REGION)"]

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

  • ‫REGION: אופציונלי: האזור שבו נמצאים לוחות הזמנים של המכונות שרוצים להציג.

REST

כדי להציג רשימה של כל מדיניות המשאבים, כולל לוחות הזמנים של המכונות, באזור ספציפי באמצעות Compute Engine API, שולחים בקשה באמצעות ה-method‏ resourcePolicies.list:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies

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

  • ‫PROJECT: מזהה הפרויקט.
  • ‫REGION: האזור שבו נמצאים לוחות הזמנים של המכונות שרוצים להציג.

תיאור של לוח זמנים של מופע

כדי לראות את התיאור, התזמון, הפעולות ורשימה של כל מכונות ה-VM שמצורפות לתזמון של המכונה, צריך לתאר את התזמון.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

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

  3. לוחצים על השם של תזמון המכונה שרוצים לתאר. ייפתח הדף פרטי לוחות הזמנים של המופע של לוח הזמנים הזה.

gcloud

כדי לתאר תזמון של מופע באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute resource-policies describe:

gcloud compute resource-policies describe SCHEDULE_NAME \
    --region=REGION

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

  • ‫SCHEDULE_NAME: השם של התזמון של המופע שרוצים לתאר.
  • ‫REGION: האזור שבו נמצא לוח הזמנים של המכונה.

הפלט אמור להיראות כך:

...
description: Every Monday to Friday in 2022, start VMs at 8 AM and stop VMs at 5 PM.
...
instanceSchedulePolicy:
 expirationTime: '2022-12-31T23:59:59Z'
 startTime: '2022-01-01T00:00:00Z'
 timeZone: UTC
 vmStartSchedule:
   schedule: 0 8 * * MON-FRI
 vmStopSchedule:
   schedule: 0 17 * * MON-FRI
...
name: example-instance-schedule
region: https://www.googleapis.com/compute/v1/projects/example-project/regions/us-west1
resourceStatus:
 instanceSchedulePolicy:
   nextRunStartTime: '2022-01-03T08:00:00Z'
...
status: READY

REST

כדי לתאר לוח זמנים של מכונה באמצעות Compute Engine API, שולחים בקשה באמצעות ה-method‏ resourcePolicies.get:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME

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

  • ‫PROJECT: מזהה הפרויקט.
  • ‫REGION: האזור שבו נמצא לוח הזמנים של המכונה.
  • ‫SCHEDULE_NAME: השם של התזמון של המופע שרוצים לתאר.

הפלט אמור להיראות כך:

{
  ...
  "description": "Every Monday to Friday in 2022, start VMs at 8 AM and stop VMs at 5 PM.",
  "name": "example-instance-schedule",
  "instanceSchedulePolicy": {
    "vmStartSchedule": {
      "schedule": "0 8 * * MON-FRI"
    },
    "vmStopSchedule": {
      "schedule": "0 17 * * MON-FRI"
    },
    "timeZone": "UTC",
    "startTime": "2022-01-01T00:00:00Z",
    "expirationTime": "2022-12-31T23:59:59Z"
  },
  "status": "READY",
  "resourceStatus": {
    "instanceSchedulePolicy": {
      "nextRunStartTime": "2022-01-03T08:00:00Z"
    }
  },
  ...
}

מחיקת לוח זמנים של מכונה

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

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

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

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

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

  5. בתיבת הדו-שיח, לוחצים על מחיקה.

gcloud

  1. אם לוח הזמנים של המכונה הזו מצורף למכונות VM כלשהן, צריך להסיר אותן.
    1. כדי לבדוק לאילו מכונות וירטואליות מחובר לוח הזמנים הזה, מתארים את לוח הזמנים של המכונה.
    2. לכל מכונה וירטואלית שהלוח זמנים הזה מצורף אליה, מסירים את לוח הזמנים של המכונה.
  2. כדי למחוק תזמון של מכונה באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute resource-policies delete:

    gcloud compute resource-policies delete SCHEDULE_NAME \
       --region=REGION
    

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

    • ‫SCHEDULE_NAME: השם של התזמון של המופע שרוצים למחוק.
    • ‫REGION: האזור שבו נמצא לוח הזמנים של המכונה.

REST

  1. אם לוח הזמנים של המכונה הזו מצורף למכונות VM כלשהן, צריך להסיר אותן.
    1. כדי לבדוק לאילו מכונות וירטואליות מחובר לוח הזמנים הזה, מתארים את לוח הזמנים של המכונה.
    2. מסירים את לוח הזמנים של המכונה מכל מכונה וירטואלית שמצורפת ללוח הזמנים הזה.
  2. כדי למחוק לוח זמנים של מכונה באמצעות Compute Engine API, שולחים בקשה באמצעות השיטה resourcePolicies.delete:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME
    

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

    • ‫PROJECT: מזהה הפרויקט.
    • ‫REGION: האזור שבו נמצא לוח הזמנים של המכונה.
    • ‫SCHEDULE_NAME: השם של התזמון של המופע שרוצים למחוק.

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

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

צירוף תזמון מכונה בזמן יצירת מכונה וירטואלית חדשה

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

המסוף

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

gcloud

כדי לחבר תזמון של מכונה למופע של מכונה וירטואלית באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute instances create עם הדגל --resource-policies. לדוגמה, כדי ליצור מכונה וירטואלית מאימג' ציבורי עם תזמון מכונה מצורף, משתמשים בפקודה הבאה:

gcloud compute instances create VM_NAME \
    --resource-policies=SCHEDULE_NAME \
    --zone=ZONE \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    [--image-project IMAGE_PROJECT]

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

  • ‫VM_NAME: השם של המכונה הווירטואלית שרוצים לצרף אליה את לוח הזמנים.
  • ‫SCHEDULE_NAME: השם של התזמון של המופע שרוצים לצרף.
  • ‫ZONE: האזור שבו נמצא המופע של המכונה הווירטואלית.
  • אופציונלי: יצירת מכונה וירטואלית מקובץ אימג' ציבורי:
    • ‫IMAGE או IMAGE_FAMILY: מציינים אחת מהאפשרויות הבאות:
    • ‫IMAGE: הגרסה הנדרשת של תמונה ציבורית. לדוגמה, --image debian-10-buster-v20200309.
    • ‫IMAGE_FAMILY: משפחת תמונות. כך המכונה הווירטואלית נוצרת מהתמונה העדכנית ביותר של מערכת ההפעלה, שלא הוצאה משימוש. לדוגמה, אם מציינים --image-family debian-10,‏ Compute Engine יוצר מכונה וירטואלית מהגרסה העדכנית של קובץ אימג' של מערכת ההפעלה במשפחת התמונות Debian 10.
    • ‫IMAGE_PROJECT: הפרויקט שמכיל את קובץ האימג'.

REST

כדי לצרף תזמון הפעלה למכונה וירטואלית באמצעות Compute Engine API, שולחים בקשה באמצעות השיטה instances.insert וכוללים את המאפיין resourcePolicies. לדוגמה, כדי ליצור מכונת VM מקובץ אימג' ציבורי עם תזמון מכונה מצורף, שולחים את הבקשה הבאה:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "resourcePolicies": [
    "https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"
  ]
}

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

  • ‫PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מכונת ה-VM.
  • ‫ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית.
  • ‫MACHINE_TYPE_ZONE: האזור שמכיל את סוג המכונה שרוצים להשתמש בו עבור המכונה הווירטואלית החדשה.
  • ‫MACHINE_TYPE: סוג המכונה, מוגדר מראש או מותאם אישית, של המכונה הווירטואלית החדשה.
  • ‫VM_NAME: השם של מכונת ה-VM החדשה.
  • אופציונלי: יוצרים מכונת VM מקובץ אימג' ציבורי:
    • ‫IMAGE_PROJECT: הפרויקט שמכיל את התמונה. לדוגמה, אם מציינים את family/debian-10 כמשפחת התמונות, מציינים את debian-cloud כפרויקט התמונות.
    • ‫IMAGE או IMAGE_FAMILY: מציינים אחת מהאפשרויות הבאות:
    • ‫IMAGE: הגרסה הנדרשת של תמונה ציבורית. לדוגמה, "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • ‫IMAGE_FAMILY: משפחת תמונות. כך נוצרת מכונה וירטואלית מקובץ אימג' של מערכת ההפעלה העדכני ביותר שלא הוצא משימוש. לדוגמה, אם מציינים את הערך "sourceImage": "projects/debian-cloud/global/images/family/debian-10", המערכת של Compute Engine יוצרת מכונה וירטואלית מהגרסה העדכנית של קובץ האימג' של מערכת ההפעלה במשפחת קובצי האימג' של Debian 10.
  • ‫REGION: האזור שבו נמצא לוח הזמנים של המכונה.
  • ‫SCHEDULE_NAME: השם של תזמון המכונה שרוצים לצרף.

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

צירוף של תזמון מכונה למכונה וירטואלית קיימת

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

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

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

  3. לוחצים על השם של לוח הזמנים של המכונה שרוצים לצרף. הדף Instance schedule details נפתח.

  4. לוחצים על הוספת מופעים ללוח הזמנים. נפתח החלונית הוספת מופעים ללוח הזמנים.

  5. מסמנים את התיבה לצד כל מכונה וירטואלית שרוצים לצרף אליה את התזמון.

  6. לוחצים על הוספה.

gcloud

כדי לצרף תזמון של מכונה למופע של מכונה וירטואלית באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute instances add-resource-policies:

gcloud compute instances add-resource-policies VM_NAME \
    --resource-policies=SCHEDULE_NAME \
    --zone=ZONE

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

  • ‫VM_NAME: השם של המכונה הווירטואלית שרוצים לצרף אליה את לוח הזמנים.
  • ‫SCHEDULE_NAME: השם של התזמון של המופע שרוצים לצרף.
  • ‫ZONE: האזור שבו נמצא המופע של המכונה הווירטואלית.

REST

כדי לצרף לוח זמנים למכונה וירטואלית באמצעות Compute Engine API, שולחים בקשה באמצעות ה-method‏ instances.addResourcePolicies:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME/addResourcePolicies
{
  "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"
}

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

  • ‫PROJECT: מזהה הפרויקט.
  • ‫ZONE: האזור שבו נמצא המופע של המכונה הווירטואלית.
  • ‫VM_NAME: השם של המכונה הווירטואלית שרוצים לצרף אליה את לוח הזמנים.
  • ‫REGION: האזור שבו נמצא לוח הזמנים של המכונה.
  • ‫SCHEDULE_NAME: השם של התזמון של המופע שרוצים לצרף.

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

הסרת לוח זמנים של מופע ממכונה וירטואלית

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

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

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

  3. לוחצים על השם של תזמון המכונה שרוצים להסיר. נפתח הדף Instance schedule details (פרטי תזמון המופע).

  4. בקטע Attached Instances, מסמנים את התיבה של כל מכונת וירטואלית שרוצים להסיר מהתזמון הזה.

  5. לוחצים על Remove instances from schedule. תיפתח תיבת דו-שיח חדשה לאישור הפעולה.

  6. בתיבת הדו-שיח, לוחצים על הסרה.

gcloud

כדי להסיר תזמון של מכונה וירטואלית באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute instances remove-resource-policies:

gcloud compute instances remove-resource-policies VM_NAME \
    --resource-policies=SCHEDULE_NAME \
    --zone=ZONE

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

  • ‫VM_NAME: השם של המופע של המכונה הווירטואלית שרוצים להסיר ממנו את לוח הזמנים של המופע.
  • ‫SCHEDULE_NAME: השם של התזמון של המופע שרוצים להסיר.
  • ‫ZONE: האזור שבו נמצא המכונה הווירטואלית.

REST

כדי להסיר תזמון של מכונה וירטואלית באמצעות Compute Engine API, שולחים בקשה באמצעות השיטה instances.removeResourcePolicies:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME/removeResourcePolicies
{
  "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"
}

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

  • ‫PROJECT: מזהה הפרויקט.
  • ‫ZONE: האזור שבו נמצא המכונה הווירטואלית.
  • ‫VM_NAME: השם של המופע של המכונה הווירטואלית שרוצים להסיר ממנו את לוח הזמנים של המופע.
  • ‫REGION: האזור שבו נמצא לוח הזמנים של המכונה.
  • ‫SCHEDULE_NAME: השם של התזמון של המופע שרוצים להסיר.

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