במאמר הזה מוסבר איך לקצר את זמן ההשבתה של מכונה ב-Compute Engine על ידי הגדרת המכונה כך שהיא תדלג על השבתת מערכת ההפעלה של האורח בעצירה או במחיקה.
אם מגדירים מופע לדלג על כיבוי מערכת ההפעלה של האורח בהפסקה או במחיקה,
אז Compute Engine מכבה מיד את מערכת ההפעלה של האורח כשמצב המופע משתנה לSTOPPING. הפעולה הזו עוזרת לכם לפנות מכסת אחסון או משאבים מהר יותר, כי היא מזרזת את התהליך של עצירה או מחיקה של מופע. מידע נוסף על השלבים שמופע עובר במהלך עצירה או מחיקה, כולל מרווח הזמן שמוגדר כברירת מחדל לכיבוי נקי של מערכת ההפעלה האורחת, זמין במאמר פעולת עצירה.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
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 .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להגדרת מכונה כך שהיא תדלג על כיבוי מערכת ההפעלה האורחת, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute (v1) (roles/compute.instanceAdmin.v1) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות להגדרת מכונה כדי לדלג על כיבוי מערכת ההפעלה של האורח. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להגדיר מופע כך שידלג על כיבוי מערכת ההפעלה של האורח, צריך את ההרשאות הבאות:
-
כדי ליצור מופע:
-
compute.instances.createבפרויקט - כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM):
compute.images.useReadOnlyבקובץ אימג' - כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית:
compute.snapshots.useReadOnlyבקובץ ה-snapshot - כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית:
compute.instanceTemplates.useReadOnlyבתבנית של הגדרות המכונה - כדי להקצות רשת מדור קודם למכונה הווירטואלית:
compute.networks.useבפרויקט - כדי לציין כתובת IP סטטית למכונה הווירטואלית:
compute.addresses.useבפרויקט - כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם:
compute.networks.useExternalIpבפרויקט - כדי לציין רשת משנה למכונה הווירטואלית:
compute.subnetworks.useבפרויקט או ברשת המשנה שנבחרה - כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC:
compute.subnetworks.useExternalIpבפרויקט או ברשת המשנה שנבחרה - כדי להגדיר מטא-נתונים של המכונה הווירטואלית:
compute.instances.setMetadataבפרויקט - כדי להגדיר תגים למכונה הווירטואלית:
compute.instances.setTagsבמכונה הווירטואלית - כדי להגדיר תוויות למכונה הווירטואלית:
compute.instances.setLabelsבמכונה הווירטואלית - כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית:
compute.instances.setServiceAccountבמכונה הווירטואלית - כדי ליצור דיסק חדש למכונה הווירטואלית:
compute.disks.createבפרויקט - כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה:
compute.disks.useבדיסק - כדי לצרף דיסק קיים במצב קריאה-בלבד:
compute.disks.useReadOnlyבדיסק
-
-
כדי ליצור תבנית של הגדרות מכונה:
compute.instanceTemplates.createבפרויקט -
כדי לעדכן מכונה:
compute.instances.updateבמכונה
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הגדרת מקרים שבהם מכונות לא יכבו את מערכת ההפעלה של האורח
כדי להגדיר מכונת חישוב כך שהיא תדלג על כיבוי מערכת ההפעלה של האורח כשמפסיקים או מוחקים את המכונה, אפשר להשתמש באחת מהשיטות הבאות:
הגדרת כיבוי של מערכת ההפעלה של האורח כשיוצרים מכונות בכמות גדולה
הגדרת כיבוי של מערכת ההפעלה של האורח במהלך יצירת תבנית של הגדרות מכונה
הגדרת כיבוי של מערכת הפעלה אורחת במכונה קיימת
אפשר להגדיר מכונת חישוב לדלג על כיבוי מערכת ההפעלה של האורח רק אם המכונה מושבתת (TERMINATED).
כדי להגדיר מופע שידלג על כיבוי מערכת ההפעלה של האורח, בוחרים באחת מהאפשרויות הבאות:
gcloud
אם עדיין לא עשיתם את זה, מפסיקים את המופע.
כדי להגדיר מכונה כך שתדלג על כיבוי מערכת ההפעלה האורחת, משתמשים בפקודה
gcloud beta compute instances set-schedulingעם הדגל--skip-guest-os-shutdown:gcloud compute instances set-scheduling INSTANCE_NAME \ --skip-guest-os-shutdown \ --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
INSTANCE_NAME: השם של המכונה.
ZONE: האזור שבו המכונה קיימת.
REST
אם עדיין לא עשיתם את זה, מפסיקים את המופע.
כדי להגדיר מכונה כך שתדלג על כיבוי מערכת ההפעלה של האורח, שולחים בקשת
POSTאל ה-methodinstances.setScheduling. בגוף הבקשה, כוללים את השדהskipGuestOsShutdownומגדירים אותו ל-true:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling { "skipGuestOsShutdown": true }
מידע נוסף על עדכון מופע זמין במאמר בנושא עדכון מאפייני מופע.
הגדרת כיבוי של מערכת הפעלה אורחת בזמן יצירת מכונה
כדי ליצור מכונת Compute שמוגדרת לדלג על כיבוי מערכת ההפעלה של האורח, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי ליצור מכונה שמוגדרת לדלג על כיבוי מערכת ההפעלה האורחת, משתמשים בפקודה gcloud compute instances create עם הדגל --skip-guest-os-shutdown:
gcloud compute instances create INSTANCE_NAME \
--machine-type=MACHINE_TYPE \
--skip-guest-os-shutdown \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
INSTANCE_NAME: השם של המכונה.
MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המופע.
ZONE: האזור שבו רוצים ליצור את המכונה.
REST
כדי ליצור מכונה שמוגדרת לדלג על כיבוי מערכת ההפעלה של האורח, שולחים בקשת POST אל ה-method instances.insert.
בגוף הבקשה, כוללים את השדה skipGuestOsShutdown עם הערך true:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "INSTANCE_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"scheduling": {
"skipGuestOsShutdown": true
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה.
ZONE: האזור שבו רוצים ליצור את המכונה.
INSTANCE_NAME: השם של המכונה.
MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המופע.
IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמהdebian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר תמונות ציבוריות.
IMAGE: מציינים אחת מהאפשרויות הבאות:גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה,
debian-12-bookworm-v20240617.משפחת תמונות, שצריך להזין אותה בפורמט
family/IMAGE_FAMILY. הערך הזה מציין את תמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מצייניםfamily/debian-12, Compute Engine משתמש בגרסה האחרונה במשפחת התמונות של Debian 12. מידע נוסף על השימוש במשפחות תמונות זמין במאמר שיטות מומלצות לשימוש במשפחות תמונות.
למידע נוסף על יצירת מכונה, אפשר לעיין במאמר בנושא יצירה והפעלה של מכונה של Compute Engine.
הגדרת כיבוי של מערכת הפעלה לאורחים בזמן יצירת מספר גדול של מכונות וירטואליות
כדי ליצור כמה מכונות וירטואליות בבת אחת שמוגדרות לדלג על כיבוי מערכת ההפעלה של האורח, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי ליצור כמות גדולה של מכונות שמוגדרות לדלג על כיבוי מערכת ההפעלה האורחת, משתמשים בפקודה gcloud compute instances bulk create עם הדגל --skip-guest-os-shutdown.
לדוגמה, כדי ליצור כמות גדולה של מכונות שמשתמשות בתבנית שם באזור יחיד, מריצים את הפקודה הבאה:
gcloud compute instances bulk create \
--count=COUNT \
--machine-type=MACHINE_TYPE \
--name-pattern="NAME_PATTERN" \
--skip-guest-os-shutdown \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
COUNT: מספר המופעים שרוצים ליצור.
MACHINE_TYPE: סוג המכונה לשימוש במופעים.
NAME_PATTERN: תבנית השם של המכונות. כדי להחליף סדרה של מספרים בשם של מופע, משתמשים בסדרה של תווים מסוג סולמית (#). לדוגמה, אם משתמשים ב-instance-#כתבנית שם, Compute Engine יוצר מכונות עם שמות שמתחילים ב-instance-1, instance-2, וממשיך עם התבנית הזו עד למספר המכונות שמציינים ב-COUNT.
ZONE: האזור שבו רוצים ליצור מופעים.
REST
כדי ליצור כמות גדולה של מכונות שמוגדרות לדלג על כיבוי מערכת ההפעלה של האורח, שולחים בקשת POST אל ה-method instances.bulkInsert.
בגוף הבקשה, כוללים את השדה skipGuestOsShutdown עם הערך true.
לדוגמה, כדי ליצור כמות גדולה של מכונות שמשתמשות בתבנית שמות באזור יחיד, שולחים בקשת POST באופן הבא:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
"count": COUNT,
"namePattern": "NAME_PATTERN",
"instanceProperties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"scheduling": {
"skipGuestOsShutdown": true
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור כמה מופעים בבת אחת.
ZONE: האזור שבו רוצים ליצור מופעים.
COUNT: מספר המופעים שרוצים ליצור.
NAME_PATTERN: תבנית השם של המכונות. כדי להחליף סדרה של מספרים בשם של מופע, משתמשים בסדרה של תווים מסוג סולמית (#). לדוגמה, אם משתמשים ב-instance-#כתבנית שם, Compute Engine יוצר מכונות עם שמות שמתחילים ב-instance-1, instance-2, וממשיך עם התבנית הזו עד למספר המכונות שמציינים ב-COUNT.
MACHINE_TYPE: סוג המכונה לשימוש במופעים.
IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמהdebian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר תמונות ציבוריות.
IMAGE: מציינים אחת מהאפשרויות הבאות:גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה,
debian-12-bookworm-v20240617.משפחת תמונות, שצריך להזין אותה בפורמט
family/IMAGE_FAMILY. הערך הזה מציין את תמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מצייניםfamily/debian-12, Compute Engine משתמש בגרסה האחרונה במשפחת התמונות של Debian 12. מידע נוסף על השימוש במשפחות תמונות זמין במאמר שיטות מומלצות לשימוש במשפחות תמונות.
מידע נוסף על יצירת כמות גדולה של מכונות זמין במאמר בנושא יצירת כמות גדולה של מכונות.
הגדרת כיבוי של מערכת הפעלה של אורח בזמן יצירת תבנית של הגדרות מכונה
אחרי שיוצרים תבנית של הגדרות מכונה שמוגדרת לדלג על כיבוי מערכת ההפעלה האורחת כשמפסיקים או מוחקים מכונות, אפשר להשתמש בתבנית של הגדרות המכונה כדי לבצע את הפעולות הבאות:
אתם יכולים להגדיר את מכונות המופע בקבוצת מופעי מכונה מנוהלים (MIG) כך שידלגו על כיבוי מערכת ההפעלה של האורח בעצירה או במחיקה, אם אתם מבצעים את הפעולות הבאות:
כדי ליצור תבנית של הגדרות מכונה שמוגדרת לדלג על כיבוי מערכת ההפעלה של האורח, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי ליצור תבנית של הגדרות מכונה שמוגדרת לדלג על כיבוי מערכת ההפעלה האורחת, משתמשים בפקודה gcloud compute instance-templates create עם הדגל --skip-guest-os-shutdown.
לדוגמה, כדי ליצור תבנית של הגדרות מכונה אזורית שמציינת לדלג על כיבוי מערכת ההפעלה של האורח, מריצים את הפקודה הבאה. כדי ליצור תבנית של הגדרות מכונה גלובלית, משתמשים באותה פקודה בלי הדגל --instance-template-region.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--instance-template-region=REGION \
--machine-type=MACHINE_TYPE \
--skip-guest-os-shutdown
מחליפים את מה שכתוב בשדות הבאים:
INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
REGION: האזור שבו רוצים ליצור את תבנית של הגדרות מכונה.
MACHINE_TYPE: סוג המכונה שצריך לציין בתבנית של הגדרות המכונה.
REST
כדי ליצור תבנית של הגדרות מכונה שמוגדרת לדלג על כיבוי מערכת ההפעלה של האורח, שולחים בקשת POST לאחת מהשיטות הבאות:
כדי ליצור תבנית גלובלית של הגדרות מכונה:
instanceTemplates.insertmethodכדי ליצור תבנית של הגדרות מכונה אזורית:
regionInstanceTemplates.insertשיטה
בגוף הבקשה, כוללים את השדה skipGuestOsShutdown עם הערך true.
לדוגמה, כדי ליצור תבנית של הגדרות מכונה אזורית שבה מצוין לדלג על כיבוי מערכת ההפעלה של האורח, שולחים בקשת POST באופן הבא:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"scheduling": {
"skipGuestOsShutdown": true
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את תבנית של הגדרות מכונה.
REGION: האזור שבו רוצים ליצור את תבנית של הגדרות מכונה.
INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
IMAGE_PROJECT: פרויקט התמונה שמכיל את התמונה, לדוגמהdebian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר תמונות ציבוריות.
IMAGE: מציינים אחת מהאפשרויות הבאות:גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה,
debian-12-bookworm-v20240617.משפחת תמונות, שצריכה להיות בפורמט
family/IMAGE_FAMILY. המאפיין הזה מציין את תמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מצייניםfamily/debian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת תמונות Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.
MACHINE_TYPE: סוג המכונה שצריך לציין בתבנית של הגדרות המכונה.
מידע נוסף על יצירת תבנית של הגדרות מכונה זמין במאמר יצירת תבניות של הגדרות מכונה.
צפייה בהגדרת הכיבוי של מערכת ההפעלה של האורח
אתם יכולים לבדוק אם Compute Engine מדלג על כיבוי מערכת ההפעלה של האורח כשאתם מפסיקים או מוחקים מופע של Compute.
כדי לראות את זמן ההשבתה של מערכת ההפעלה של האורח במופע, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי לראות את הפרטים של מכונה ולבדוק אם היא מדלגת על כיבוי מערכת ההפעלה של האורח, משתמשים בפקודה gcloud compute instances describe:
gcloud compute instances describe INSTANCE_NAME \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
INSTANCE_NAME: השם של המכונה.
ZONE: האזור שבו המכונה קיימת.
אם הגדרתם את המכונה לדלג על כיבוי מערכת ההפעלה של האורח, הפלט יכיל את השדה skipGuestOsShutdown עם הערך true, כמו בדוגמה הבאה:
...
scheduling:
automaticRestart: true
skipGuestOsShutdown: true
onHostMaintenance: MIGRATE
preemptible: false
provisioningModel: STANDARD
...
אחרת, אם השדה skipGuestOsShutdown חסר או מוגדר לערך false, מערכת ההפעלה של האורח משתמשת בזמן ברירת המחדל לכיבוי.
REST
כדי לראות את הפרטים של מכונה ולבדוק אם היא מדלגת על כיבוי מערכת ההפעלה של האורח, שולחים בקשת GET אל ה-method instances.get:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו נמצא המופע.
ZONE: האזור שבו המכונה קיימת.
INSTANCE_NAME: השם של המכונה.
אם הגדרתם את המכונה לדלג על כיבוי מערכת ההפעלה של האורח, הפלט יכיל את השדה skipGuestOsShutdown עם הערך true, כמו בדוגמה הבאה:
{
...
"scheduling": {
"automaticRestart": true,
"skipGuestOsShutdown": true,
"onHostMaintenance": "MIGRATE",
"preemptible": false,
"provisioningModel": "STANDARD"
},
...
}
אחרת, אם השדה skipGuestOsShutdown חסר או מוגדר לערך false, מערכת ההפעלה של האורח משתמשת בזמן ברירת המחדל לכיבוי.