סימולציה של אירוע תחזוקה של מארח

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

אתם יכולים לדמות אירוע תחזוקה במכונות הווירטואליות כדי לבדוק את הדברים הבאים:

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

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

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

מגבלות

  • כדי לדמות בצורה נכונה אירוע תחזוקה בקבוצת שרתים לדייר יחיד, שמוגדרת בה מדיניות תחזוקה של מארח מסוג העברה בתוך קבוצת השרתים, צריך להפעיל את אירוע התחזוקה ברצף בכל צומת.
  • בקבוצת צמתים עם דייר יחיד, כשמנסים לדמות אירוע תחזוקת מארח וקבוצת הצמתים כוללת מדיניות תחזוקת מארח שמוגדרת להעברה בתוך קבוצת הצמתים:
    • אם מספר הצמתים שצוין קטן או שווה למספר הכולל של צמתים שמורים, הסימולציה של אירוע התחזוקה של המארח פועלת בו-זמנית בכל הצמתים שצוינו.
    • אם מספר הצמתים שצוין גדול ממספר הצמתים הכולל של קבוצת ההשוואה שהוקצתה, הסימולציה תיכשל.
  • מספר הסימולציות של אירועי תחזוקה שאפשר להפעיל בדקה בכל אזור מוגבל על ידי הגבלת קצב של יצירת בקשות של API עבור המדד simulate_maintenance_event_requests_per_region.

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

אתם יכולים לדמות אירוע תחזוקה למכונת חישוב באמצעות Google Cloud CLI או בקשת API. האירוע המדומה הזה כולל את פעילויות התחזוקה השונות שמתרחשות באירוע תחזוקה רגיל. כך תוכלו לעקוב אחרי התהליך מקצה לקצה ולבדוק אוטומציה שהטמעתם.

במהלך סימולציה של אירוע תחזוקה של מארח עבור מופע שמשתמש בהעברה פעילה, מפתח המטא-נתונים maintenance-event של המופע עובר את השינויים הבאים:

  1. בתחילת הסימולציה, הערך של מפתח המטא-נתונים maintenance-event משתנה מ-NONE ל-MIGRATE_ON_HOST_MAINTENANCE.
  2. במהלך אירוע הסימולציה, הערך נשאר MIGRATE_ON_HOST_MAINTENANCE.
  3. אחרי שהסימולציה מסתיימת, הערך חוזר ל-NONE.

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

gcloud

כדי לדמות אירוע תחזוקה במכונה ולבדוק את הגדרות מדיניות התחזוקה של המארח, משתמשים בפקודה compute instances simulate-maintenance-event:

gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
    --zone=ZONE --with-extended-notifications=True

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

  • ‫INSTANCE_NAME: השם של המכונה שבה רוצים לדמות את אירוע התחזוקה.

    אפשר לציין כמה שמות של מכונות, מופרדים ברווחים בודדים, כדי לדמות סימולציה של אירוע תחזוקה ביותר ממכונה אחת באותו תחום (zone). לדוגמה, instance-1 instance-2 instance-3.

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

REST

יוצרים בקשת POST אל ה-method‏ compute.instances.simulateMaintenanceEvent:

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

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

  • ‫PROJECT_ID: מזהה הפרויקט של הבקשה הזו.
  • ‫INSTANCE_NAME: שם המכונה שבה רוצים לדמות את אירוע התחזוקה.
  • ‫ZONE: האזור שבו נמצאת המכונה.

הדמיה של תחזוקת מארח למכונות Compute Engine שמסתיימות

אתם יכולים לדמות אירוע תחזוקה של מכונה ב-Compute Engine באמצעות Google Cloud CLI או בקשת API. האירוע המדומה הזה כולל את פעילויות התחזוקה השונות שמתרחשות באירוע תחזוקה רגיל. כך תוכלו לעקוב אחרי התהליך מקצה לקצה ולבדוק אוטומציה שהטמעתם.

בנוסף, באמצעות הפרמטר --with-extended-notifications עם סוג מכונה נתמך, אתם יכולים לבדוק הפעלה ידנית של תחזוקת המארח במהלך האירוע המדומה.

gcloud

  1. אפשר להשתמש בפקודה compute instances simulate-maintenance-event כדי לדמות אירוע תחזוקה של מכונה ולבדוק את הגדרות המדיניות שהוגדרו לתחזוקת המארח. אפשר גם להוסיף את הדגל --with-extended-notifications.

    gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
       --zone=ZONE --with-extended-notifications=True
    

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

    • ‫INSTANCE_NAME: השם של המכונה שבה רוצים לדמות את אירוע התחזוקה.

      אפשר לציין כמה שמות של מכונות, מופרדים ברווחים בודדים, כדי לדמות סימולציה של אירוע תחזוקה ביותר ממכונה אחת באותו תחום (zone). לדוגמה, instance-1 instance-2 instance-3.

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

  2. אופציונלי: כדי להפעיל ידנית את סימולציה של אירוע תחזוקה, משתמשים בפקודה compute instances perform-maintenance.

    gcloud compute instances perform-maintenance INSTANCE_NAME \
       --zone=ZONE
    

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

    • ‫INSTANCE_NAME: השם של המכונה שבה רוצים לדמות את אירוע התחזוקה.

      אפשר לציין כמה שמות של מכונות, מופרדים ברווחים בודדים, כדי לדמות סימולציה של אירוע תחזוקה ביותר ממכונה אחת באותו תחום (zone). לדוגמה, instance-1 instance-2 instance-3.

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

REST

  1. יוצרים בקשת POST אל ה-method‏ compute.instances.simulateMaintenanceEvent. אפשר גם לכלול את פרמטר השאילתה withExtendedNotifications.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/simulateMaintenanceEvent?withExtendedNotifications=True
    

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

    • ‫PROJECT_ID: מזהה הפרויקט של הבקשה הזו.
    • ‫INSTANCE_NAME: שם המכונה שבה רוצים לדמות את אירוע התחזוקה.
    • ‫ZONE: האזור שבו נמצאת המכונה.
  2. אופציונלי: כדי להתחיל ידנית את סימולציה של אירוע תחזוקה, יוצרים בקשת POST ל-compute.instances.performMaintenancemethod.

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

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

    • ‫INSTANCE_NAME: השם של מופע Compute שבו רוצים להתחיל את אירוע התחזוקה.

      אפשר לציין כמה שמות של מכונות שמופרדים ברווחים כדי לבצע אירועי תחזוקה ביותר ממכונה אחת באותו אזור. לדוגמה, instance-1 instance-2 instance-3.

    • ‫ZONE: האזור שבו נמצאים המופעים.

הדמיה של אירועי תחזוקה של מארחים בשרתים לדייר יחיד

אתם יכולים לדמות אירוע תחזוקה של מארח בשרתים לדייר יחיד (sole-tenant) באמצעות Google Cloud CLI או בקשת API. במהלך הסימולציה של אירוע תחזוקה של המארח במכונה וירטואלית עם דייר יחיד, הערך של מפתח המטא-נתונים maintenance-event לא משתנה ונשאר NONE לאורך כל הסימולציה.

gcloud

מריצים את הפקודה sole-tenancy node-groups simulate-maintenance-event כדי לאלץ את השרתים לדייר יחיד (sole-tenant) להפעיל את מדיניות התחזוקה שהוגדרה:

 gcloud compute sole-tenancy node-groups simulate-maintenance-event NODE_GROUP \
    --nodes=NODE_NAMES \
    --zone=ZONE \
    --async

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

  • ‫NODE_GROUP: השם של קבוצת הצמתים שבה רוצים לדמות את אירוע התחזוקה.

  • ‫NODE_NAMES: שמות הצמתים שבהם רוצים לדמות את אירוע התחזוקה. כדי לציין כמה שמות של צמתים, צריך להשתמש בערכים מופרדים בפסיקים, לדוגמה, node-1,node-2,node-3.

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

REST

יוצרים בקשת POST ל-method‏ compute.nodeGroups.simulateMaintenanceEvent:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/NODE_GROUP/simulateMaintenanceEvent

{
  "nodes": [
      "NODE_NAMES"
  ]
}

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

  • ‫PROJECT_ID: מזהה הפרויקט של הבקשה הזו.
  • ‫ZONE: האזור שבו נמצאים הצמתים.
  • ‫NODE_GROUP: השם של קבוצת הצמתים שבה רוצים לדמות את אירוע התחזוקה.
  • ‫NODE_NAMES: השמות של הצמתים שבהם רוצים לדמות את אירוע התחזוקה. צריך להקיף את שם הצומת במירכאות כפולות, לדוגמה, "node-1". כשמציינים כמה שמות של צמתים, צריך להשתמש בערכים שמופרדים בפסיקים, לדוגמה: "node-1","node-2","node-3".

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