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

במאמר הזה מוסבר איך לראות את ההגדרות ואת ההתקדמות של כיבוי מסודר במכונה של Compute Engine. מידע נוסף על כיבוי מסודר זמין במאמר סקירה כללית על כיבוי מסודר.

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

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

  • מעקב אחרי כיבוי מבוקר. במהלך כיבוי מסודר, אפשר לבדוק את הדברים הבאים:

    • כשתהליך הכיבוי המבוקר מגיע לזמן הקצוב לתפוגה.

    • אם מתבצעת פעולת עצירה או מחיקה.

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

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי 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 .

התפקידים הנדרשים

כדי לקבל את ההרשאה שנדרשת להצגת כיבוי מסודר של מכונת Compute, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

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

הצגת ההגדרות של כיבוי מבוקר

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

המסוף

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

    כניסה לדף VM instances

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

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

  3. כדי לבדוק את הגדרות הכיבוי המדורג, בקטע Availability policies (מדיניות הזמינות), בודקים את הערך בשדה Graceful shutdown maximum duration (משך הזמן המקסימלי של כיבוי מדורג). בשדה הזה מוצג פרק הזמן של כיבוי מבוקר. אם מופיע מקף (-), המשמעות היא שההשבתה ההדרגתית מושבתת.

gcloud

כדי לראות את הגדרות הכיבוי המדורג במכונה, משתמשים בפקודה gcloud beta compute instances describe:

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

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

  • INSTANCE_NAME: השם של המכונה.

  • ZONE: האזור שבו המכונה קיימת.

אם הכיבוי המבוקר מופעל, הפלט דומה לזה:

...
scheduling:
  ...
  gracefulShutdown:
    enabled: true
    maxDuration:
      seconds: 'MAX_DURATION'
  ...
...

הפלט כולל את הערך MAX_DURATION. הערך הזה מציין את משך תקופת הכיבוי המבוקר בשניות. אם לא ציינתם תקופת כיבוי בהתאמה אישית כשהפעלתם כיבוי תקין במופע, מערכת Compute Engine משמיטה את השדה maxDuration ומגדירה את תקופת הכיבוי התקין ל-10 דקות.

REST

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

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

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

  • PROJECT_ID: מזהה הפרויקט שבו יצרתם את המופע.

  • ZONE: האזור שבו המכונה קיימת.

  • INSTANCE_NAME: השם של המכונה.

אם הכיבוי המבוקר מופעל, הפלט דומה לזה:

{
  ...
  "scheduling": {
    ...
    "gracefulShutdown": {
      "enabled": true,
      "maxDuration": {
        "seconds": "MAX_DURATION"
      }
    }
  },
  ...
}

הפלט כולל את הערך MAX_DURATION. הערך הזה מציין את משך תקופת הכיבוי המבוקר בשניות. אם לא ציינתם תקופת כיבוי בהתאמה אישית כשהפעלתם כיבוי תקין במופע, מערכת Compute Engine משמיטה את השדה maxDuration ומגדירה את תקופת הכיבוי התקין ל-10 דקות.

מעקב אחרי כיבוי מבוקר

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

המסוף

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

    כניסה לדף VM instances

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

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

  3. אם מתבצעת השבתה הדרגתית, בודקים את השדות הבאים בקטע Basic information:

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

    • מצב היעד: בשדה הזה מוצג אם Compute Engine מפסיק (Stopped) או מוחק (Deleted) את המכונה.

gcloud

כדי לעקוב אחרי כיבוי מבוקר של מכונה, משתמשים בפקודה gcloud beta compute instances describe:

gcloud beta compute instances describe INSTANCE_NAME \
    --zone=ZONE

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

  • INSTANCE_NAME: השם של המכונה.

  • ZONE: האזור שבו המכונה קיימת.

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

...
resourceStatus:
  ...
  shutdownDetails:
    maxDuration:
      seconds: 'MAX_DURATION'
    requestTimestamp: 'REQUEST_TIMESTAMP'
    stopState: STOP_STATE
    targetState: TARGET_STATE
...
status: PENDING_STOP
...

הפלט הזה כולל את הערכים הבאים:

  • MAX_DURATION: משך תקופת הכיבוי המדורג בשניות. אחרי ש-Compute Engine מגדיר את STOP_STATE ל-STOPPING, הוא מוחק את השדה maxDuration.

  • REQUEST_TIMESTAMP: חותמת הזמן שבה התחיל STOP_STATE.

  • STOP_STATE: שלב העצירה של המכונה. הערך יכול להיות אחד מהערכים הבאים:

    • PENDING_STOP: שירות Compute Engine התחיל את ההשבתה המדורגת. המופע יישאר במצב הזה עד שתסיימו ידנית את הכיבוי המדורג או עד שתקופת הכיבוי המדורג תסתיים.

    • STOPPING: הסתיים כיבוי תקין, ו-Compute Engine ממשיך בפעולת העצירה או המחיקה.

  • TARGET_STATE: מציין אם Compute Engine מפסיק (STOPPED) או מוחק (DELETED) את המכונה.

אם פעולת עצירה פועלת, אחרי ש-Compute Engine מגדיר את השדה status לערך TERMINATE, הוא מוחק את השדה shutdownDetails.

REST

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

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

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

  • PROJECT_ID: מזהה הפרויקט שבו יצרתם את המופע.

  • ZONE: האזור שבו המכונה קיימת.

  • INSTANCE_NAME: השם של המכונה.

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

{
  ...
  "resourceStatus": {
    ...
    "shutdownDetails": {
      "maxDuration": {
        "seconds": "MAX_DURATION"
      },
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
  },
  ...
  "status": "PENDING_STOP",
  ...
}

הפלט הזה כולל את הערכים הבאים:

  • MAX_DURATION: משך תקופת הכיבוי המדורג בשניות. אחרי ש-Compute Engine מגדיר את STOP_STATE ל-STOPPING, הוא מוחק את השדה maxDuration.

  • REQUEST_TIMESTAMP: חותמת הזמן שבה התחיל STOP_STATE.

  • STOP_STATE: שלב העצירה של המכונה. הערך יכול להיות אחד מהערכים הבאים:

    • PENDING_STOP: שירות Compute Engine התחיל את ההשבתה המדורגת. המופע יישאר במצב הזה עד שתסיימו ידנית את הכיבוי המדורג או עד שתקופת הכיבוי המדורג תסתיים.

    • STOPPING: הסתיים כיבוי תקין, ו-Compute Engine ממשיך בפעולת העצירה או המחיקה.

  • TARGET_STATE: מציין אם Compute Engine מפסיק (STOPPED) או מוחק (DELETED) את המכונה.

אם פעולת עצירה פועלת, אחרי ש-Compute Engine מגדיר את השדה status לערך TERMINATE, הוא מוחק את השדה shutdownDetails.

שרת מטא-נתונים

  1. מתחברים למופע.

  2. שולחים שאילתה לשרת המטא-נתונים:

    curl "http://metadata.google.internal/computeMetadata/v1/instance/shutdown-details/?recursive=true?alt=json" \-H "Metadata-Flavor: Google"
    

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

    {
      "maxDuration": "MAX_DURATION",
      "requestTimestamp": "REQUEST_TIMESTAMP",
      "stopState": "STOP_STATE",
      "targetState": "TARGET_STATE"
    }
    

    הפלט כולל את הערכים הבאים:

    • MAX_DURATION: משך תקופת הכיבוי המדורג בשניות. אחרי ש-Compute Engine מגדיר את STOP_STATE ל-STOPPING, הוא מוחק את השדה maxDuration.

    • REQUEST_TIMESTAMP: חותמת הזמן שבה התחיל STOP_STATE.

    • STOP_STATE: שלב העצירה של המכונה. הערך יכול להיות אחד מהערכים הבאים:

      • PENDING_STOP: מערכת Compute Engine התחילה את תהליך הכיבוי המבוקר. המופע יישאר במצב הזה עד שתסיימו ידנית את הכיבוי המדורג או עד שתקופת הכיבוי המדורג תסתיים.

      • STOPPING: הכיבוי המבוקר הסתיים, ו-Compute Engine ממשיך בפעולת ההפסקה או המחיקה.

    • TARGET_STATE: מציין אם Compute Engine מפסיק (STOPPED) או מוחק (DELETED) את המכונה.

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