במאמר הזה מוסבר איך להגביל את זמן הריצה של מכונות וירטואליות (VM) חדשות או קיימות, ואיך לעקוב אחרי זמן הריצה של מכונות ה-VM האלה. במקום זאת, אפשר לקרוא על הגבלת זמן הריצה של קבוצת מופעי מכונה מנוהלים (MIG).
כשמגבילים את זמן הפעולה של מכונה וירטואלית, אפשר לתזמן את המכונה כך שהיא תופסק (תכובה או תימחק) באופן אוטומטי כשהיא מגיעה למגבלת זמן מסוימת (משך זמן או שעה). כדי לבצע אופטימיזציה של עומסי עבודה זמניים, אפשר להשתמש במגבלות זמן. הגבלת זמני הריצה של מכונות וירטואליות באופן אוטומטי עוזרת לצמצם את העלויות ולפנות מכסות.
איך מפסיקים או מפעילים מחדש מכונה וירטואלית כדי ללמוד איך למחוק VM באופן מיידי, אפשר לעיין במאמר מחיקת VM.
לפני שמתחילים
-
כדי לקבל את ההרשאות שנדרשות להגבלת זמן הריצה של מכונה וירטואלית, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute (v1) (
roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
הגבלות
הגבלת זמן הריצה של מכונה וירטואלית כפופה להגבלות הבאות:
פעולת הסיום האוטומטית חייבת להיות עצירה או מחיקה. אי אפשר להגדיר מכונה וירטואלית להשהיה אוטומטית כשהמגבלה מגיעה.
מגבלת הזמן המינימלית היא 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
המסוף
נכנסים לדף Create an instance במסוף Cloud de Confiance .
בקטע Availability policies, מרחיבים את VM provisioning model advanced settings.
מסמנים את תיבת הסימון Set a time limit for the VM (הגדרת הגבלת זמן למכונה הווירטואלית). מופיע השדה סוג מגבלת הזמן.
בשדה סוג מגבלת הזמן, בוחרים באפשרות לפי שעות (ברירת מחדל) כדי לציין את מגבלת הזמן כמשך זמן. בשדה הבא, מזינים את משך הזמן בשעות.
ברשימה On VM termination בוחרים מה יקרה כשהזמן שחלף מאז הפעלת מכונת ה-VM יגיע למגבלת הזמן שצוינה:
- כדי לעצור את המכונה הווירטואלית באופן אוטומטי, בוחרים באפשרות Stop (ברירת מחדל).
- כדי למחוק את מכונת ה-VM, בוחרים באפשרות מחיקה.
אופציונלי: מציינים אפשרויות אחרות למכונה הווירטואלית. מידע נוסף זמין במאמר יצירה והפעלה של מכונה וירטואלית.
כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על 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.
- כדי ליצור מכונה וירטואלית (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.
- אם למכונה הווירטואלית יש כונני 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"), השדה"instanceTerminationAction": "TERMINATION_ACTION"הוא אופציונלי. אם משמיטים את השדה הזה, פעולת ברירת המחדל לסיום היא עצירה. - אחרת (ברירת מחדל), חובה למלא את השדה
"instanceTerminationAction": "TERMINATION_ACTION".
- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בשדה
מידע נוסף על האפשרויות שאפשר לציין כשיוצרים מכונה וירטואלית זמין במאמר יצירה והפעלה של מכונה וירטואלית.
הגדרת שעה
time מייצג את התאריך, השעה ואזור הזמן שבהם רוצים להפסיק את פעולת מכונת ה-VM. כדי ליצור מכונה וירטואלית שמסתיימת באופן אוטומטי בזמן ספציפי, משתמשים במסוף Cloud de Confiance , ב-Google Cloud CLI או ב-Compute Engine API.
המסוף
נכנסים לדף Create an instance במסוף Cloud de Confiance .
בקטע Availability policies, מרחיבים את VM provisioning model advanced settings.
מסמנים את תיבת הסימון Set a time limit for the VM (הגדרת הגבלת זמן למכונה הווירטואלית). מופיע השדה סוג מגבלת הזמן.
בשדה סוג מגבלת הזמן, בוחרים באפשרות לפי תאריך כדי לציין את מגבלת הזמן כתאריך ושעה. בשדה הבא, לוחצים על בחירת תאריך ושעה ובוחרים את התאריך, השעה ואזור הזמן של מגבלת הזמן.
ברשימה On VM termination בוחרים מה יקרה כשהזמן שחלף מאז הפעלת מכונת ה-VM יגיע למגבלת הזמן שצוינה:
- כדי לעצור את המכונה הווירטואלית באופן אוטומטי, בוחרים באפשרות Stop (ברירת מחדל).
- כדי למחוק את מכונת ה-VM, בוחרים באפשרות מחיקה.
אופציונלי: מציינים אפשרויות אחרות למכונה הווירטואלית. מידע נוסף זמין במאמר יצירה והפעלה של מכונה וירטואלית.
כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על 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.
- אם למכונה הווירטואלית יש כונני 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: שעה בפורמט של שעה בת 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.
- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בדגל
מידע נוסף על אפשרויות אחרות שאפשר לציין כשיוצרים מכונה וירטואלית זמין במאמר יצירה והפעלה של מכונה וירטואלית.
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".
- אם זו מכונה וירטואלית (VM) מסוג Spot (אם נעשה שימוש בשדה
מידע נוסף על האפשרויות שאפשר לציין כשיוצרים מכונה וירטואלית זמין במאמר יצירה והפעלה של מכונה וירטואלית.
הגבלת זמן הריצה של מכונה וירטואלית קיימת
אפשר להגביל את זמן הריצה של מכונה וירטואלית קיימת על ידי עדכון לוח הזמנים של המכונה הווירטואלית. אם אתם לא יודעים איך להגדיר את ההגדרות של מגבלות הזמן, כדאי לעיין קודם בקטעים הקודמים שבהם מוסבר איך להגביל את זמן הריצה של מכונה וירטואלית חדשה.
אפשר להשתמש במסוף, ב-Google Cloud CLI או ב-Compute Engine API כדי לעדכן את המאפיינים שקשורים לתזמון של המכונה הווירטואלית, כמו שמתואר בקטע הזה. Cloud de Confiance בשיטה הזו צריך קודם לעצור את המכונה הווירטואלית, ואז לעדכן את המאפיינים שלה ולהפעיל אותה מחדש. לחלופין, אם רוצים לעדכן בו-זמנית מאפיינים נוספים של מכונה וירטואלית ולהפסיק ולהפעיל מחדש מכונה וירטואלית באופן אוטומטי, אפשר לעיין במאמר בנושא עדכון מאפייני מכונה.
המסוף
נכנסים לדף VM instances במסוף Cloud de Confiance .
בעמודה Name (שם), לוחצים על שם המכונה הווירטואלית שרוצים לעדכן.
בדף VM instance details (פרטי מכונת ה-VM), מבצעים את השלבים הבאים:
- אם המכונה הווירטואלית פועלת, לוחצים על עצירה כדי לעצור אותה.
- כדי לערוך את המכונה הווירטואלית, לוחצים על Edit (עריכה).
בדף Edit instance (עריכת מופע), מבצעים את הפעולות הבאות:
בקטע Availability policies, משנים את התיבה Set a time limit for the VM ואת השדות שמתחתיה לפי הצורך.
מידע נוסף על הגדרת המאפיינים של מגבלות הזמן זמין במאמר בנושא הגבלת זמן הריצה של מכונה וירטואלית חדשה.
כדי לשמור את השינויים, לוחצים על שמירה.
אופציונלי: אם רוצים להפעיל את המכונה הווירטואלית עכשיו, לוחצים על הפעלה.
gcloud
כדי לעדכן את מגבלת הזמן של מכונת VM באמצעות ה-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בהתאמה. לדוגמה, כדי לציין משך של 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.
- אם מדובר ב-VM במודל Spot (אם נעשה שימוש בדגל
- כדי להגדיר את מגבלת הזמן כזמן או כמשך, צריך להשמיט את הדגל
אם רוצים שה-VM יתחיל לפעול, מפעילים אותו באמצעות הפקודה
gcloud compute instances start:gcloud compute instances start VM_NAME
מחליפים את
VM_NAMEבשם המכונה הווירטואלית.
REST
כדי לעדכן את מגבלת הזמן של מכונה וירטואלית באמצעות Compute Engine API, מבצעים את השלבים הבאים:
אם המכונה הווירטואלית פועלת, מפסיקים את פעולת המכונה הווירטואלית באמצעות השיטה
instances.stop:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המכונה הווירטואלית. -
ZONE: האזור שבו נמצאת המכונה הווירטואלית. -
VM_NAME: השם של מכונת ה-VM שרוצים לעדכן.
-
מעדכנים את המאפיין
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".
- אם זו מכונה וירטואלית (VM) מסוג Spot (אם נעשה שימוש בשדה
אם רוצים שהמכונה הווירטואלית תתחיל לפעול, צריך להפעיל אותה באמצעות השיטה
instances.start:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המכונה הווירטואלית. -
ZONE: האזור שמכיל את המכונה הווירטואלית. -
VM_NAME: השם של המכונה הווירטואלית.
-
מעקב אחר זמן הריצה של מכונה וירטואלית
כדי לעקוב אחרי זמן הריצה של מכונה וירטואלית עם מגבלת זמן, אפשר להשתמש באפשרויות הבאות:
כדי לראות מתי מתוכננת סיום אוטומטי של מכונה וירטואלית שפועלת, צריך להציג את חותמת הזמן של סיום המכונה הווירטואלית:
- הצגת הפרטים של מכונה וירטואלית
- בפלט, בודקים את השדה של המכונה הווירטואלית שבו מופיעה חותמת הזמן של סיום הפעולה:
- אם אתם משתמשים במסוף Cloud de Confiance , תוכלו לראות את השדה משך מקסימלי.
- אם משתמשים ב-Google Cloud CLI או ב-Compute Engine API, צריך לעיין בשדה
terminationTimestamp.
כדי לבדוק אם מכונה וירטואלית הופסקה באופן אוטומטי, אפשר לראות את הפעולות של המכונה הווירטואלית:
- צפייה בפעולות של מכונות וירטואליות
בפלט, אפשר לזהות פעולות של מכונות וירטואליות שנגרמות בגלל מגבלת זמן. כדי לעשות זאת, מחפשים את סוגי הפעולות הבאים:
-
compute.instances.deferredStopמציין פעולת סיום אוטומטית של עצירה -
compute.instances.deferredDeleteמציין פעולת סיום אוטומטית של מחיקה
-
המאמרים הבאים
איך מבצעים אופטימיזציה נוספת של מכונות וירטואליות:
- אם עומסי העבודה שלכם עמידים בפני תקלות, אתם יכולים להשתמש ב-Spot VMs כדי לקבל הנחות משמעותיות ומכסות ייעודיות אופציונליות.
- אם רוצים שמכונה וירטואלית תבצע פקודות באופן אוטומטי לפני כיבוי, אפשר להשתמש בסקריפטים לכיבוי.
מידע על אפשרויות נוספות להגבלת משך הפעולה של מכונות וירטואליות באופן אוטומטי: