במאמר הזה מוסבר איך להגביל את זמן הריצה של מכונות וירטואליות (VM) חדשות או קיימות, ואיך לעקוב אחרי זמן הריצה של המכונות הווירטואליות האלה. במקום זאת, אפשר לקרוא על הגבלת זמן הריצה של קבוצת מופעי מכונה מנוהלים (MIG).
כשמגבילים את זמן הריצה של מכונה וירטואלית, אפשר לתזמן את המכונה כך שהיא תופסק (תעצור או תימחק) באופן אוטומטי כשהיא מגיעה למגבלת זמן ספציפית (משך זמן או שעה). כדי לבצע אופטימיזציה של עומסי עבודה זמניים, כדאי להשתמש במגבלות זמן. הגבלה אוטומטית של זמני ההפעלה של מכונות וירטואליות יכולה לעזור לצמצם את העלויות ולפנות מכסות.
איך מפסיקים או מפעילים מחדש מכונה וירטואלית כדי למחוק מכונה וירטואלית באופן מיידי, קראו את המאמר מחיקת מכונה וירטואלית.
לפני שמתחילים
-
כדי לקבל את ההרשאות שנדרשות להגבלת זמן הריצה של מכונה וירטואלית, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute (v1) (
roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-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 .
הגבלות
להגבלת זמן הריצה של מכונה וירטואלית יש את ההגבלות הבאות:
פעולת הסיום האוטומטית חייבת להיות עצירה או מחיקה. אי אפשר להגדיר השהיה אוטומטית של מכונה וירטואלית כשהמגבלה מגיעה.
מגבלת הזמן המינימלית היא 30 שניות ומגבלת הזמן המקסימלית היא 120 ימים.
יכול להיות שההפסקה האוטומטית תימשך עד 30 שניות יותר מהמשך או מהזמן שציינתם כדי להתחיל להפסיק או למחוק את המכונה הווירטואלית.
אי אפשר להשתמש במגבלות זמן עם מכונות וירטואליות קודמות שניתנות להפסקת פעולה. במקום זאת, אפשר להשתמש במגבלות זמן עם VM במודל Spot.
אי אפשר לשמור את הנתונים של SSD מקומי במכונה וירטואלית כשהמכונה הווירטואלית נעצרת באופן אוטומטי בגלל מגבלת זמן. מידע נוסף זמין במאמר איך מפסיקים מכונה וירטואלית עם SSD מקומי.
הגבלת זמן הריצה של מכונה וירטואלית חדשה
בקטעים הבאים מוסבר איך להגדיר מגבלת זמן כשיוצרים מכונה וירטואלית חדשה. אתם יכולים לציין את מגבלת הזמן, כלומר מתי אתם רוצים שהמכונה הווירטואלית תסתיים באופן אוטומטי, כמשך זמן (maxRunDuration) או כשעה (terminationTime).
כשמחליטים על סוג מגבלת הזמן למכונה וירטואלית, צריך לקחת בחשבון שהמכונה הווירטואלית עלולה להיות מופרעת – למשל, על ידי בקשת משתמש או על ידי אירוע במארח. ההתנהגות של מגבלת זמן משתנה בהתאם לסוג ההפרעה ולסוג מגבלת הזמן:
חותמת הזמן של סיום הפעולה של מכונה וירטואלית (
terminationTimestamp) היא שדה לקריאה בלבד שמייצג את הזמן המתוכנן לסיום אוטומטי, והיא מוגדרת באופן אוטומטי על ידי Compute Engine בכל פעם שלמכונה וירטואלית יש מגבלת זמן והיא עוברת למצבRUNNING.חותמת הזמן של סיום השימוש מתבטלת אוטומטית בכל פעם ש מפסיקים או משעים מכונה וירטואלית. עם זאת, חותמת הזמן של סיום הפעולה לא משתנה כשמאפסים או מפעילים מחדש את ה-VM.
חותמת הזמן של הסיום מוגדרת מחדש באופן אוטומטי בכל פעם שמפעילים מחדש את מכונת ה-VM או מחדשים את הפעולה שלה, בהתאם לסוג מגבלת הזמן שהגדרתם:
- אם מגדירים משך זמן למכונה הווירטואלית, חותמת הזמן של הסיום מחושבת מחדש על ידי הוספת משך הזמן הזה לשעת ההתחלה האחרונה של המכונה הווירטואלית.
- אם מגדירים זמן למכונה הווירטואלית, חותמת הזמן של הסיום מוגדרת לזמן הזה. עם זאת, הזמן חייב להיות בעתיד. אחרת, כל בקשה ליצור או להפעיל מחדש את המכונה הווירטואלית תיכשל עד שתעדכנו או תסירו את הזמן.
הגדרת משך זמן
משך מייצג את זמן הריצה הכולל שרוצים להגדיר למכונה וירטואלית. כדי ליצור מכונה וירטואלית שמסתיימת אוטומטית אחרי שהיא פועלת למשך זמן מסוים, משתמשים ב Google Cloud מסוף, ב-Google Cloud CLI, ב-Terraform או ב-Compute Engine API.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
בקטע Availability policies, מרחיבים את VM provisioning model advanced settings.
מסמנים את תיבת הסימון הגדרת מגבלת זמן למכונה הווירטואלית. מופיע השדה סוג מגבלת הזמן.
בשדה סוג מגבלת זמן, בוחרים באפשרות לפי שעות (ברירת מחדל) כדי לציין את מגבלת הזמן כמשך זמן. בשדה הבא, מזינים את משך הזמן בשעות.
ברשימה On VM termination בוחרים מה יקרה כשהזמן שחלף מאז הפעלת מכונת ה-VM יגיע למגבלת הזמן שצוינה:
- כדי לעצור את מכונת ה-VM באופן אוטומטי, בוחרים באפשרות Stop (ברירת מחדל).
- כדי למחוק את המכונה הווירטואלית, לוחצים על מחיקה.
אופציונלי: מציינים אפשרויות אחרות למכונה הווירטואלית. מידע נוסף זמין במאמר יצירה והפעלה של מכונה וירטואלית.
כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על 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.
- אם למכונה הווירטואלית יש כונני SSD מקומיים ופעולת הסיום (
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.
- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בדגל
מידע נוסף על אפשרויות אחרות שאפשר לציין כשיוצרים מכונה וירטואלית זמין במאמר יצירה והפעלה של מכונה וירטואלית.
Terraform
כדי ליצור מכונה וירטואלית באמצעות Terraform, משתמשים במשאב google_compute_instance.
- כדי ליצור מכונה וירטואלית שמסתיימת אוטומטית אחרי פרק זמן מסוים, צריך לכלול את הארגומנט
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.
- אם למכונה הווירטואלית יש כונני SSD מקומיים ופעולת הסיום (הארגומנט
מידע נוסף מופיע במאמרי העזרה של 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"של מכונת ה-VM), השדה"instanceTerminationAction": "TERMINATION_ACTION"הוא אופציונלי. אם משמיטים את השדה הזה, פעולת ברירת המחדל לסיום היא עצירה. - אחרת (ברירת המחדל), השדה
"instanceTerminationAction": "TERMINATION_ACTION"הוא חובה.
- אם זו מכונת VM מסוג Spot (אם נעשה שימוש בשדה
מידע נוסף על האפשרויות שאפשר לציין כשיוצרים מכונה וירטואלית זמין במאמר יצירה והפעלה של מכונה וירטואלית.
הגדרת שעה
השעה מייצגת את התאריך, השעה ואזור הזמן שבהם רוצים להפסיק את פעילות מכונת ה-VM. כדי ליצור מכונה וירטואלית שמסתיימת באופן אוטומטי בזמן ספציפי, משתמשים במסוף Google Cloud , ב-Google Cloud CLI או ב-Compute Engine API.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
בקטע Availability policies (מדיניות הזמינות), מרחיבים את VM provisioning model advanced settings (הגדרות מתקדמות של מודל הקצאת מכונות וירטואליות).
מסמנים את תיבת הסימון הגדרת מגבלת זמן למכונה הווירטואלית. מופיע השדה סוג מגבלת הזמן.
בשדה סוג מגבלת הזמן, בוחרים באפשרות לפי תאריך כדי לציין את מגבלת הזמן כתאריך ושעה. בשדה הבא, לוחצים על בחירת תאריך ושעה ובוחרים את התאריך, השעה ואזור הזמן של מגבלת הזמן.
ברשימה On VM termination בוחרים מה יקרה כשהזמן שחלף מאז הפעלת מכונת ה-VM יגיע למגבלת הזמן שצוינה:
- כדי לעצור את מכונת ה-VM באופן אוטומטי, בוחרים באפשרות Stop (ברירת מחדל).
- כדי למחוק את המכונה הווירטואלית, לוחצים על מחיקה.
אופציונלי: מציינים אפשרויות אחרות למכונה הווירטואלית. מידע נוסף זמין במאמר יצירה והפעלה של מכונה וירטואלית.
כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על Create.
gcloud
כדי ליצור מכונה וירטואלית (VM) באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud compute instances create.
- כדי ליצור מכונה וירטואלית שתסתיים באופן אוטומטי בזמן מסוים, צריך לכלול את הדגל
--termination-time. - כדי לציין את פעולת הסיום, צריך לכלול את הדגל
--instance-termination-action, שהוא אופציונלי ל-VM במודל Spot. - מגדירים את הדגל
--discard-local-ssds-at-termination-timestamp:- אם למכונה הווירטואלית יש כונני SSD מקומיים והוגדרה פעולת סיום (
TERMINATION_ACTION) לעצירה (STOP), צריך לכלול את הדגל--discard-local-ssds-at-termination-timestamp=true. - אם לא, משמיטים את הדגל
--discard-local-ssds-at-termination-timestamp.
- אם למכונה הווירטואלית יש כונני SSD מקומיים והוגדרה פעולת סיום (
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: שעה בפורמט של 24 שעות, עם שתי ספרות לשעה, שתי ספרות לדקה ושתי ספרות לשנייה, מופרדות בנקודתיים. -
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.
- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בדגל
מידע נוסף על אפשרויות אחרות שאפשר לציין כשיוצרים מכונה וירטואלית זמין במאמר יצירה והפעלה של מכונה וירטואלית.
REST
כדי ליצור מכונה וירטואלית מ-Compute Engine API, משתמשים ב-method instances.insert.
צריך לציין שם, סוג מכונה ודיסק אתחול למכונה הווירטואלית.
כדי ליצור מכונה וירטואלית שתופסק אוטומטית בשעה מסוימת, צריך לכלול את השדה 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: האזור שבו רוצים ליצור את המכונה הווירטואלית. האזור צריך לתמוך גם בסוג המכונה שבה משתמשים ב-VM החדש. -
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: שעה בפורמט של 24 שעות, עם שתי ספרות לשעה, שתי ספרות לדקה ושתי ספרות לשנייה, מופרדות בנקודתיים. -
OFFSET: אזור הזמן בפורמט של היסט מהזמן האוניברסלי המתואם (UTC). לדוגמה, כדי להשתמש בשעון החוף המערבי של ארה"ב (PST), שמקדים ב-8 שעות את שעון UTC, מציינים-08:00. לחלופין, כדי לא להשתמש בהזחה (UTC+0), מצייניםZ.
-
TERMINATION_ACTION: פעולת הסיום של המכונה הווירטואלית הזו, שיכולה להיות עצירה (STOP) או מחיקה (DELETE). הדרישה למילוי השדה הזה או ערך ברירת המחדל שלו משתנים בהתאם למודל ההקצאה של המכונה הווירטואלית::- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בשדה
"provisioningModel": "SPOT"), השדה"instanceTerminationAction": "TERMINATION_ACTION"הוא אופציונלי. אם משמיטים את השדה הזה, פעולת ברירת המחדל לסיום היא עצירה. - אחרת (ברירת המחדל), השדה
"instanceTerminationAction": "TERMINATION_ACTION"הוא חובה.
- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בשדה
מידע נוסף על האפשרויות שאפשר לציין כשיוצרים מכונה וירטואלית זמין במאמר יצירה והפעלה של מכונה וירטואלית.
הגבלת זמן הריצה של מכונה וירטואלית קיימת
כדי להגביל את זמן הריצה של מכונה וירטואלית קיימת, אפשר לעדכן את לוח הזמנים שלה. אם אתם לא יודעים איך להגדיר הגדרות של מגבלות זמן, כדאי לעיין קודם בקטעים הקודמים שבהם מוסבר איך להגביל את זמן הריצה של מכונה וירטואלית חדשה.
כדי לעדכן את המאפיינים שקשורים לתזמון של המכונה הווירטואלית, אתם יכולים להשתמש במסוף Google Cloud , ב-Google Cloud CLI או ב-Compute Engine API, כמו שמתואר בקטע הזה. בשיטה הזו צריך קודם לעצור את ה-VM, אחר כך לעדכן את המאפיינים שלו ואז להפעיל אותו מחדש. לחלופין, אם רוצים לעדכן בו-זמנית מאפיינים נוספים של מכונה וירטואלית ולהפסיק ולהפעיל מחדש מכונה וירטואלית באופן אוטומטי, אפשר לעיין במאמר בנושא עדכון מאפיינים של מכונה וירטואלית.
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
בעמודה Name (שם), לוחצים על שם המכונה הווירטואלית שרוצים לעדכן.
בדף פרטי המכונה הווירטואלית, מבצעים את השלבים הבאים:
- אם המכונה הווירטואלית פועלת, לוחצים על עצירה כדי לעצור אותה.
- כדי לערוך את המכונה הווירטואלית, לוחצים על Edit (עריכה).
בדף Edit instance (עריכת מופע), מבצעים את הפעולות הבאות:
בקטע Availability policies, משנים את התיבה Set a time limit for the VM ואת השדות שמתחתיה לפי הצורך.
למידע נוסף על הגדרת המאפיינים של מגבלות הזמן, קראו את המאמר הגבלת זמן הריצה של מכונה וירטואלית חדשה.
כדי לשמור את השינויים, לוחצים על שמירה.
אופציונלי: אם רוצים להפעיל את המכונה הווירטואלית עכשיו, לוחצים על הפעלה.
gcloud
כדי לעדכן את מגבלת הזמן של מכונה וירטואלית באמצעות ה-CLI של gcloud, מבצעים את השלבים הבאים:
אם ה-VM פועל, עוצרים אותו באמצעות הפקודה
gcloud compute instances stop:gcloud compute instances stop VM_NAME
מחליפים את
VM_NAMEבשם המכונה הווירטואלית שרוצים לעדכן.מעדכנים את מגבלת הזמן של ה-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בהתאמה. לדוגמה, מציינים30mלמשך 30 דקות, או מציינים1d2h3m4sלמשך יום אחד, שעתיים, 3 דקות ו-4 שניות. משך הזמן המינימלי הוא 30 שניות (30s) והמקסימלי הוא 120 ימים (120d).
TIME: השעה שבה רוצים שהמכונה הווירטואלית הזו תופסק באופן אוטומטי. הזמן שאתם מציינים צריך להיות לפחות 30 שניות מהזמן הנוכחי ולכל היותר 120 ימים מהזמן הנוכחי. מגדירים את הזמן כחותמת זמן בפורמט RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
מחליפים את מה שכתוב בשדות הבאים:
-
YYYY-MM-DD: תאריך בפורמט של שנה בת 4 ספרות, חודש בן 2 ספרות ויום בחודש בן 2 ספרות, עם מקפים להפרדה. -
HH:MM:SS: שעה בפורמט של 2 ספרות, דקה בפורמט של 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.
- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בדגל
- כדי להגדיר את מגבלת הזמן כזמן או כמשך, בהתאמה, צריך להשמיט את הדגל
אם רוצים שה-VM יתחיל לפעול, מפעילים אותו באמצעות הפקודה
gcloud compute instances start:gcloud compute instances start VM_NAME
מחליפים את
VM_NAMEבשם המכונה הווירטואלית.
REST
כדי לעדכן את מגבלת הזמן של מכונה וירטואלית באמצעות Compute Engine API, מבצעים את השלבים הבאים:
אם ה-VM פועל, עוצרים אותו באמצעות השיטה
instances.stop:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את ה-VM. -
ZONE: האזור שבו נמצאת המכונה הווירטואלית. -
VM_NAME: השם של המכונה הווירטואלית שרוצים לעדכן.
-
מעדכנים את המאפיין
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: שעה בפורמט של 24 שעות, עם שתי ספרות לשעה, שתי ספרות לדקה ושתי ספרות לשנייה, מופרדות בנקודתיים. -
OFFSET: אזור הזמן בפורמט של היסט מהזמן האוניברסלי המתואם (UTC). לדוגמה, כדי להשתמש בשעון החוף המערבי של ארה"ב (PST), שמקדים ב-8 שעות את שעון UTC, מציינים-08:00. לחלופין, כדי לא להשתמש בהזחה (UTC+0), מצייניםZ.
-
TERMINATION_ACTION: פעולת הסיום של המכונה הווירטואלית, שיכולה להיות עצירה (STOP) או מחיקה (DELETE). אם השדה הזה נדרש או שיש לו ערך ברירת מחדל, זה תלוי במודל ההקצאה של המכונה הווירטואלית:- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בשדה
"provisioningModel": "SPOT"), השדה"instanceTerminationAction": "TERMINATION_ACTION"הוא אופציונלי. אם משמיטים את השדה הזה, פעולת הסיום שמוגדרת כברירת מחדל היא עצירה. - אחרת (ברירת מחדל), השדה
"instanceTerminationAction": "TERMINATION_ACTION"הוא חובה.
- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בשדה
אם רוצים שה-VM יתחיל לפעול, מפעילים אותו באמצעות השיטה
instances.start:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המכונה הווירטואלית. -
ZONE: האזור שבו נמצאת המכונה הווירטואלית. -
VM_NAME: השם של המכונה הווירטואלית.
-
מעקב אחרי זמן הריצה של מכונה וירטואלית
כדי לעקוב אחרי זמן הריצה של מכונה וירטואלית עם הגבלת זמן, אפשר להשתמש באפשרויות הבאות:
כדי לראות מתי מתוכננת סיום אוטומטי של מכונה וירטואלית שפועלת, צריך להציג את חותמת הזמן של סיום המכונה הווירטואלית:
- הצגת הפרטים של מכונה וירטואלית
- בפלט, בודקים את השדה של חותמת הזמן לסיום של המכונה הווירטואלית:
- אם אתם משתמשים במסוף Google Cloud , תוכלו לראות את השדה Max duration.
- אם משתמשים ב-Google Cloud CLI או ב-Compute Engine API, צריך לעיין בשדה
terminationTimestamp.
כדי לוודא שמכונה וירטואלית הופסקה אוטומטית, אפשר לראות את הפעולות של המכונה הווירטואלית:
- לצפייה בפעולות של מכונות וירטואליות
בפלט, אפשר לזהות פעולות של מכונות וירטואליות שנגרמות בגלל מגבלת זמן. לשם כך, מחפשים את סוגי הפעולות הבאים:
-
compute.instances.deferredStopמציין פעולת סיום אוטומטית של עצירה -
compute.instances.deferredDeleteמציין פעולת סיום אוטומטית של מחיקה
-
המאמרים הבאים
איך מבצעים אופטימיזציה נוספת של המכונות הווירטואליות:
- אם עומסי העבודה שלכם עמידים בפני תקלות, אתם יכולים להשתמש ב-VM במודל Spot כדי לקבל הנחות משמעותיות ומכסה ייעודית אופציונלית.
- אם אתם רוצים שהמכונה הווירטואלית תריץ פקודות באופן אוטומטי לפני הכיבוי, אתם יכולים להשתמש בסקריפטים של כיבוי.
מידע ולמידה על אפשרויות נוספות להגבלת זמן הריצה של מכונות וירטואליות באופן אוטומטי: