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

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

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

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

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

הגבלות

הגבלת זמן הריצה של מכונה וירטואלית כפופה להגבלות הבאות:

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

  • מגבלת הזמן המינימלית היא 30 שניות ומגבלת הזמן המקסימלית היא 120 ימים.

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

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

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

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

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

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

  • חותמת הזמן של סיום הפעולה של מכונה וירטואלית (terminationTimestamp) היא שדה לקריאה בלבד שמייצג את הזמן המתוכנן לסיום אוטומטי, והיא מוגדרת באופן אוטומטי על ידי Compute Engine בכל פעם שלמכונה וירטואלית יש מגבלת זמן והיא עוברת למצב RUNNING.

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

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

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

הגדרת משך זמן

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

המסוף

  1. נכנסים לדף Create an instance במסוף Cloud de Confiance .

    כניסה לדף Create an instance

  2. בקטע Availability policies, מרחיבים את VM provisioning model advanced settings.

  3. מסמנים את תיבת הסימון Set a time limit for the VM (הגדרת הגבלת זמן למכונה הווירטואלית). מופיע השדה סוג מגבלת הזמן.

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

  5. ברשימה On VM termination בוחרים מה יקרה כשהזמן שחלף מאז הפעלת מכונת ה-VM יגיע למגבלת הזמן שצוינה:

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

  7. כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על Create.

gcloud

כדי ליצור מכונה וירטואלית באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute instances create.

  • כדי ליצור מכונה וירטואלית (VM) שמסתיימת אוטומטית אחרי משך זמן מסוים, צריך לכלול את הדגל --max-run-duration.
  • כדי לציין את פעולת הסיום, צריך לכלול את הדגל --instance-termination-action.
  • מגדירים את הדגל --discard-local-ssds-at-termination-timestamp:
    • אם למכונה הווירטואלית יש כונני SSD מקומיים ופעולת הסיום (TERMINATION_ACTION) היא עצירה (STOP), צריך לכלול את הדגל --discard-local-ssds-at-termination-timestamp=true.
    • אם לא, משמיטים את הדגל --discard-local-ssds-at-termination-timestamp.
gcloud compute instances create VM_NAME \
    --max-run-duration=DURATION \
    --instance-termination-action=TERMINATION_ACTION

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

  • VM_NAME: השם של המכונה הווירטואלית החדשה.
  • DURATION: משך הזמן שבו רוצים שהמכונה הווירטואלית הזו תפעל לפני שהיא תופסק אוטומטית. צריך לפרמט את משך הזמן כמספר הימים, השעות, הדקות והשניות, ואחרי כל אחד מהם להוסיף את התווים d, h, m ו-s בהתאמה. לדוגמה, כדי לציין משך של 30 דקות, כותבים 30m, וכדי לציין משך של יום אחד, שעתיים, 3 דקות ו-4 שניות, כותבים 1d2h3m4s. משך הזמן המינימלי הוא 30 שניות (30s) והמקסימלי הוא 120 ימים (120d).
  • TERMINATION_ACTION: פעולת הסיום של המכונה הווירטואלית הזו, שיכולה להיות עצירה (STOP) או מחיקה (DELETE). הדרישה להזין ערך בשדה הזה או ערך ברירת המחדל משתנה בהתאם למודל ההקצאה של המכונה הווירטואלית:
    • אם זו מכונה וירטואלית (VM) במודל Spot (אם נעשה שימוש בדגל --provisioning-model=SPOT), הדגל --instance-termination-action=TERMINATION_ACTION הוא אופציונלי. אם לא מציינים את הדגל הזה, פעולת ברירת המחדל של סיום התהליך היא עצירה.
    • אחרת (ברירת מחדל), נדרש הדגל --instance-termination-action=TERMINATION_ACTION.

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

Terraform

כדי ליצור מכונה וירטואלית באמצעות Terraform, משתמשים במשאב google_compute_instance.

  • כדי ליצור מכונה וירטואלית (VM) שמסתיימת אוטומטית אחרי פרק זמן מסוים, צריך לכלול את הארגומנט max_run_duration.
  • כדי לציין את פעולת הסיום, צריך לכלול את הארגומנט instance_termination_action. חובה לכלול את הארגומנט instance_termination_action, אלא אם יוצרים VM במודל Spot (מגדירים את הארגומנט provisioning_model לערך SPOT), שברירת המחדל שלה היא עצירה (STOP).
  • מגדירים את הארגומנט on_instance_stop_action:
    • אם למכונה הווירטואלית יש כונני SSD מקומיים ופעולת הסיום (הארגומנט instance_termination_action) היא עצירה (STOP), צריך להגדיר את הארגומנט on_instance_stop_action כ-true ‏ (true).
    • אחרת, משמיטים את הארגומנט on_instance_stop_action.

מידע נוסף מופיע במאמרי העזרה של Terraform בנושא משאב google_compute_instance.

REST

כדי ליצור מכונה וירטואלית באמצעות Compute Engine API, משתמשים ב-method ‏instances.insert. צריך לציין שם, סוג מכונה ודיסק אתחול למכונה הווירטואלית.

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ]
  "scheduling":
  {
    "maxRunDuration":
    {
      "seconds": DURATION
    },
    "instanceTerminationAction": "TERMINATION_ACTION"
  },
}

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

  • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
  • ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית. בנוסף, האזור צריך לתמוך בסוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית החדשה.
  • MACHINE_TYPE: סוג המכונה מוגדר מראש או מותאם אישית של המכונה הווירטואלית החדשה.
  • VM_NAME: השם של המכונה הווירטואלית החדשה.
  • IMAGE_PROJECT: הפרויקט שמכיל את התמונה. לדוגמה, אם מציינים את family/debian-10 כתמונה, צריך לציין את debian-cloud כפרויקט התמונה.
  • IMAGE: התמונה של המכונה הווירטואלית החדשה. אפשר לציין גרסה ספציפית של תמונה ציבורית או משפחה של תמונות. לדוגמה, אם מציינים את family/debian-10 כתמונה ואת debian-cloud כפרויקט התמונה, מערכת Compute Engine יוצרת מכונה וירטואלית מהגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות של Debian 10.
  • DURATION: משך הזמן בשניות שבו רוצים שהמכונה הווירטואלית הזו תפעל לפני שהיא תופסק באופן אוטומטי. משך הזמן המינימלי הוא 30 שניות (30s) והמקסימלי הוא 120 ימים (120d).
  • TERMINATION_ACTION: פעולת הסיום של המכונה הווירטואלית הזו, שיכולה להיות עצירה (STOP) או מחיקה (DELETE). הדרישה להזין ערך בשדה הזה או ערך ברירת המחדל משתנה בהתאם למודל ההקצאה של המכונה הווירטואלית:
    • אם מדובר ב-VM במודל Spot (אם נעשה שימוש בשדה "provisioningModel": "SPOT"), השדה "instanceTerminationAction": "TERMINATION_ACTION" הוא אופציונלי. אם משמיטים את השדה הזה, פעולת ברירת המחדל לסיום היא עצירה.
    • אחרת (ברירת מחדל), חובה למלא את השדה "instanceTerminationAction": "TERMINATION_ACTION".

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

הגדרת שעה

time מייצג את התאריך, השעה ואזור הזמן שבהם רוצים להפסיק את פעולת מכונת ה-VM. כדי ליצור מכונה וירטואלית שמסתיימת באופן אוטומטי בזמן ספציפי, משתמשים במסוף Cloud de Confiance , ב-Google Cloud CLI או ב-Compute Engine API.

המסוף

  1. נכנסים לדף Create an instance במסוף Cloud de Confiance .

    כניסה לדף Create an instance

  2. בקטע Availability policies, מרחיבים את VM provisioning model advanced settings.

  3. מסמנים את תיבת הסימון Set a time limit for the VM (הגדרת הגבלת זמן למכונה הווירטואלית). מופיע השדה סוג מגבלת הזמן.

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

  5. ברשימה On VM termination בוחרים מה יקרה כשהזמן שחלף מאז הפעלת מכונת ה-VM יגיע למגבלת הזמן שצוינה:

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

  7. כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על Create.

gcloud

כדי ליצור מכונה וירטואלית באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute instances create.

  • כדי ליצור מכונה וירטואלית (VM) שמסתיימת באופן אוטומטי בשעה מסוימת, צריך לכלול את הדגל --termination-time.
  • כדי לציין את פעולת הסיום, צריך לכלול את הדגל --instance-termination-action, שהוא אופציונלי למכונות וירטואליות מסוג Spot.
  • מגדירים את הדגל --discard-local-ssds-at-termination-timestamp:
    • אם למכונה הווירטואלית יש כונני SSD מקומיים והוגדרה פעולת סיום (TERMINATION_ACTION) לעצירה (STOP), צריך לכלול את הדגל --discard-local-ssds-at-termination-timestamp=true.
    • אם לא, משמיטים את הדגל --discard-local-ssds-at-termination-timestamp.
gcloud compute instances create VM_NAME \
    --termination-time=TIME \
    --instance-termination-action=TERMINATION_ACTION

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

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

    YYYY-MM-DDTHH:MM:SSOFFSET
    

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

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

    • אם מדובר ב-VM במודל Spot (אם נעשה שימוש בדגל --provisioning-model=SPOT), הדגל --instance-termination-action=TERMINATION_ACTION הוא אופציונלי. אם לא מציינים את הדגל הזה, פעולת ברירת המחדל של סיום התהליך היא עצירה.
    • אחרת (ברירת מחדל), חובה להשתמש בדגל --instance-termination-action=TERMINATION_ACTION.

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

REST

כדי ליצור מכונה וירטואלית באמצעות Compute Engine API, משתמשים ב-method ‏instances.insert. צריך לציין שם, סוג מכונה ודיסק אתחול למכונה הווירטואלית.

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ]
  "scheduling":
  {
    "terminationTime": "TIME",
    "instanceTerminationAction": "TERMINATION_ACTION"
  },
}

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

  • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
  • ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית. בנוסף, האזור צריך לתמוך בסוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית החדשה.
  • MACHINE_TYPE: סוג המכונה מוגדר מראש או מותאם אישית של המכונה הווירטואלית החדשה.
  • VM_NAME: השם של המכונה הווירטואלית החדשה.
  • IMAGE_PROJECT: הפרויקט שמכיל את התמונה. לדוגמה, אם מציינים את family/debian-10 כתמונה, צריך לציין את debian-cloud כפרויקט התמונה.
  • IMAGE: התמונה של המכונה הווירטואלית החדשה. אפשר לציין גרסה ספציפית של תמונה ציבורית או משפחה של תמונות. לדוגמה, אם מציינים את family/debian-10 כאימג' ואת debian-cloud כפרויקט האימג',‏ Compute Engine יוצר מכונה וירטואלית מהגרסה האחרונה של אימג' מערכת ההפעלה במשפחת האימג'ים של Debian 10.
  • TIME: השעה שבה רוצים שהמכונה הווירטואלית הזו תופסק באופן אוטומטי. הזמן שאתם מציינים צריך להיות לפחות 30 שניות מהיום ולכל היותר 120 ימים מהיום. מגדירים את הפורמט של השעה כחותמת זמן RFC 3339:

    YYYY-MM-DDTHH:MM:SSOFFSET
    

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

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

    • אם זו מכונה וירטואלית (VM) מסוג Spot (אם נעשה שימוש בשדה "provisioningModel": "SPOT" של ה-VM), השדה "instanceTerminationAction": "TERMINATION_ACTION" הוא אופציונלי. אם משמיטים את השדה הזה, פעולת ברירת המחדל לסיום היא עצירה.
    • אחרת (ברירת מחדל), חובה למלא את השדה "instanceTerminationAction": "TERMINATION_ACTION".

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

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

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

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

המסוף

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

    כניסה לדף VM instances

  2. בעמודה Name (שם), לוחצים על שם המכונה הווירטואלית שרוצים לעדכן.

  3. בדף VM instance details (פרטי מכונת ה-VM), מבצעים את השלבים הבאים:

    1. אם המכונה הווירטואלית פועלת, לוחצים על עצירה כדי לעצור אותה.
    2. כדי לערוך את המכונה הווירטואלית, לוחצים על Edit (עריכה).
    3. בדף Edit instance (עריכת מופע), מבצעים את הפעולות הבאות:

      1. בקטע Availability policies, משנים את התיבה Set a time limit for the VM ואת השדות שמתחתיה לפי הצורך.

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

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

    4. אופציונלי: אם רוצים להפעיל את המכונה הווירטואלית עכשיו, לוחצים על הפעלה.

gcloud

כדי לעדכן את מגבלת הזמן של מכונת VM באמצעות ה-CLI של gcloud, מבצעים את השלבים הבאים:

  1. אם ה-VM פועל, מפסיקים את הפעולה שלו באמצעות הפקודה gcloud compute instances stop:

    gcloud compute instances stop VM_NAME
    

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

  2. כדי לעדכן את מגבלת הזמן של ה-VM, משתמשים בפקודה gcloud compute instances set-scheduling.

    gcloud compute instances set-scheduling VM_NAME \
        --max-run-duration=DURATION \
        --termination-time=TIME \
        --instance-termination-action=TERMINATION_ACTION \
        --discard-local-ssds-at-termination-timestamp=true
    

    מגדירים את הדגלים הבאים:

    • כדי להגדיר את מגבלת הזמן כזמן או כמשך, צריך להשמיט את הדגל --max-run-duration או את הדגל --termination-time, בהתאמה.
    • כוללים את הדגל --instance-termination-action כדי להגדיר את פעולת הסיום.
    • אם למכונה הווירטואלית יש SSD מקומי והפעולה להפסקת המכונה (TERMINATION_ACTION) מוגדרת להפסקה (STOP), צריך לכלול את הדגל --discard-local-ssds-at-termination-timestamp=true. אם לא, משמיטים את הדגל --discard-local-ssds-at-termination-timestamp=true.

    לאחר מכן, מחליפים את הפרטים הבאים:

    • VM_NAME: השם של מכונת ה-VM שרוצים לעדכן.
    • DURATION: משך הזמן שבו רוצים שהמכונה הווירטואלית הזו תפעל לפני שהיא תופסק אוטומטית. צריך לפרמט את משך הזמן כמספר הימים, השעות, הדקות והשניות, ואחרי כל אחד מהם להוסיף את התווים d, h, m ו-s בהתאמה. לדוגמה, כדי לציין משך של 30 דקות, כותבים 30m, וכדי לציין משך של יום אחד, שעתיים, 3 דקות ו-4 שניות, כותבים 1d2h3m4s. משך הזמן המינימלי הוא 30 שניות (30s) והמקסימלי הוא 120 ימים (120d).
    • TIME: השעה שבה רוצים שהמכונה הווירטואלית הזו תופסק באופן אוטומטי. הזמן שאתם מציינים צריך להיות לפחות 30 שניות מהיום ולכל היותר 120 ימים מהיום. מגדירים את הפורמט של השעה כחותמת זמן RFC 3339:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

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

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

      • אם מדובר ב-VM במודל Spot (אם נעשה שימוש בדגל --provisioning-model=SPOT), הדגל --instance-termination-action=TERMINATION_ACTION הוא אופציונלי. אם לא מציינים את הדגל הזה, פעולת ברירת המחדל של סיום התהליך היא עצירה.
      • אחרת (ברירת מחדל), חובה להשתמש בדגל --instance-termination-action=TERMINATION_ACTION.
  3. אם רוצים שה-VM יתחיל לפעול, מפעילים אותו באמצעות הפקודה gcloud compute instances start:

    gcloud compute instances start VM_NAME
    

    מחליפים את VM_NAME בשם המכונה הווירטואלית.

REST

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

  1. אם המכונה הווירטואלית פועלת, מפסיקים את פעולת המכונה הווירטואלית באמצעות השיטה instances.stop:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

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

    • PROJECT_ID: מזהה הפרויקט שמכיל את המכונה הווירטואלית.
    • ZONE: האזור שבו נמצאת המכונה הווירטואלית.
    • VM_NAME: השם של מכונת ה-VM שרוצים לעדכן.
  2. מעדכנים את המאפיין scheduling של ה-VM, כולל שדות למגבלת הזמן של ה-VM, באמצעות השיטה instances.setScheduling. כדי להגדיר את מגבלת הזמן כמשך או כשעה, צריך לכלול את השדה maxRunDuration או את השדה terminationTime:

    • כדי להגדיר משך זמן, משתמשים בבקשה הבאה:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "maxRunDuration":
        {
          "seconds": DURATION
        },
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      
    • כדי להגדיר שעה, משתמשים בבקשה הבאה:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "terminationTime": "TIME",
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      

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

    • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
    • ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית. בנוסף, האזור צריך לתמוך בסוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית החדשה.
    • MACHINE_TYPE: סוג המכונה המוגדר מראש או המותאם אישית של המכונה הווירטואלית החדשה.
    • VM_NAME: השם של המכונה הווירטואלית החדשה.
    • IMAGE_PROJECT: הפרויקט שמכיל את התמונה. לדוגמה, אם מציינים את family/debian-10 כתמונה, צריך לציין את debian-cloud כפרויקט התמונה.
    • IMAGE: התמונה של המכונה הווירטואלית החדשה. אפשר לציין גרסה ספציפית של תמונה ציבורית או משפחה של תמונות. לדוגמה, אם מציינים את family/debian-10 כתמונה ואת debian-cloud כפרויקט התמונה, מערכת Compute Engine יוצרת מכונה וירטואלית מהגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות של Debian 10.
    • DURATION: משך הזמן בשניות שבו רוצים שהמכונה הווירטואלית הזו תפעל לפני שהיא תופסק באופן אוטומטי. משך הזמן המינימלי הוא 30 שניות (30s) והמקסימלי הוא 120 ימים (120d).
    • TIME: השעה שבה רוצים שהמכונה הווירטואלית הזו תופסק באופן אוטומטי. הזמן שאתם מציינים צריך להיות לפחות 30 שניות מהיום ולכל היותר 120 ימים מהיום. מגדירים את הפורמט של השעה כחותמת זמן RFC 3339:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

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

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

      • אם זו מכונה וירטואלית (VM) מסוג Spot (אם נעשה שימוש בשדה "provisioningModel": "SPOT" של ה-VM), השדה "instanceTerminationAction": "TERMINATION_ACTION" הוא אופציונלי. אם משמיטים את השדה הזה, פעולת ברירת המחדל לסיום היא עצירה.
      • אחרת (ברירת מחדל), חובה למלא את השדה "instanceTerminationAction": "TERMINATION_ACTION".
  3. אם רוצים שהמכונה הווירטואלית תתחיל לפעול, צריך להפעיל אותה באמצעות השיטה instances.start:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

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

    • PROJECT_ID: מזהה הפרויקט שמכיל את המכונה הווירטואלית.
    • ZONE: האזור שמכיל את המכונה הווירטואלית.
    • VM_NAME: השם של המכונה הווירטואלית.

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

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

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

    1. הצגת הפרטים של מכונה וירטואלית
    2. בפלט, בודקים את השדה של המכונה הווירטואלית שבו מופיעה חותמת הזמן של סיום הפעולה:
      • אם אתם משתמשים במסוף Cloud de Confiance , תוכלו לראות את השדה משך מקסימלי.
      • אם משתמשים ב-Google Cloud CLI או ב-Compute Engine API, צריך לעיין בשדה terminationTimestamp.
  • כדי לבדוק אם מכונה וירטואלית הופסקה באופן אוטומטי, אפשר לראות את הפעולות של המכונה הווירטואלית:

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

      • compute.instances.deferredStop מציין פעולת סיום אוטומטית של עצירה
      • compute.instances.deferredDelete מציין פעולת סיום אוטומטית של מחיקה

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