השבתת כיבוי מבוקר במכונה של Compute Engine

במאמר הזה מוסבר איך להשבית את הכיבוי המבוקר במכונה קיימת של Compute Engine.

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

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

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

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי 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 ‏ (v1) (roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה כולל את ההרשאה compute.instances.update במכונה, שנדרשת כדי להשבית את הכיבוי המבוקר במכונה.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.

השבתת הכיבוי המבוקר במכונה

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

כדי להשבית את הכיבוי המבוקר במכונה, בוחרים באחת מהאפשרויות הבאות:

המסוף

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

    כניסה לדף VM instances

  2. בעמודה Name, לוחצים על השם של המכונה. דף הפרטים של המכונה נפתח בכרטיסייה Details.

  3. לוחצים על עריכה.

  4. בקטע Management, מבטלים את הסימון של התיבה Gracefully shut down the VM.

  5. לוחצים על Save.

gcloud

כדי להשבית את הכיבוי המבוקר במכונה, משתמשים בפקודה gcloud compute instances update עם הדגל --no-graceful-shutdown:

gcloud compute instances update INSTANCE_NAME \
    --no-graceful-shutdown \
    --zone=ZONE

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

  • ‫INSTANCE_NAME: השם של המכונה הווירטואלית.

  • ‫ZONE: האזור שבו נמצאת המכונה.

REST

  1. יוצרים קובץ JSON ריק.

  2. כדי לראות את המאפיינים של מכונה קיימת, שולחים בקשת GET אל ה-method‏ instances.get:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
    

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

    • ‫PROJECT_ID: מזהה הפרויקט שבו נמצאת המכונה.

    • ‫ZONE: האזור שבו נמצאת המכונה.

    • ‫INSTANCE_NAME: השם של מכונה קיימת.

  3. בקובץ ה-JSON הריק שיצרתם בשלבים הקודמים:

    1. מזינים את פרטי ההגדרה של המכונה מהפלט של הבקשה GET.

    2. מאתרים את השדה gracefulShutdown.enabled ומשנים את הערך שלו ל-false:

      {
        ...
        "scheduling": {
          ...
          "gracefulShutdown": {
            "enabled": false
          }
        },
        ...
      }
      
  4. כדי לעדכן את המכונה, שולחים בקשת PUT אל ה-method‏ instances.update. מוסיפים את הפרטים הבאים:

    • בכתובת ה-URL של הבקשה, מוסיפים את פרמטר השאילתה mostDisruptiveAllowedAction.

    • בגוף הבקשה, כוללים את המאפיינים של המכונה מקובץ ה-JSON שיצרתם ועדכנתם בשלבים הקודמים.

    בקשת ה-PUT לעדכון המכונה דומה לבקשה הבאה:

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=ALLOWED_ACTION
    
    {
      ...
      "scheduling": {
        ...
        "gracefulShutdown": {
          "enabled": false
        }
      },
      ...
    }
    

    מחליפים את ALLOWED_ACTION באחד מהערכים הבאים:

    • ‫NO_EFFECT: הבקשה בודקת אם בקשת העדכון תקינה ואם המשאבים זמינים, אבל לא מעדכנת את המכונה.

    • ‫REFRESH: אם המאפיינים ששונו לא מחייבים הפעלה מחדש של המכונה, Compute Engine מעדכן את המכונה.

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

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