מעקב אחרי אירועי תחזוקה

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

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

פרטים נוספים על תחזוקת מארחים ב-GKE זמינים במאמר הסבר על תחזוקת מארחים ב-GKE.

מעקב אחרי התראות לגבי פעולות תחזוקה

לפני שמתרחש אירוע תחזוקה מתוזמן במכונה וירטואלית, מערכת Compute Engine שולחת התראות לכל המכונות הווירטואליות שלה. ההתראות האלה מדווחות על תחילת חלון הזמן לתחזוקה של Compute Engine. אם מכונה וירטואלית מתזמנת תחזוקה קרובה אבל היא לא פעילה, GKE מוסיף את התווית scheduled-maintenance-time לצומת.

כדי לעקוב אחרי אירועי תחזוקה קרובים ולזהות אותם, צריך לעיין בהתראות מ-GKE ומ-Compute Engine.

הצגת תחזוקה עתידית ב-Compute Engine

בעיות ב-Compute Engine התראות כשמתוזמנים צמתים ומכונות וירטואליות בסיסיות לאירועים משבשים במארח, וכשהאירועים האלה הופכים לפעילים. ההתראות כוללות מידע על שעת ההתחלה המתוכננת, סוג האירוע ופרטים נוספים.

הצגת תחזוקה קרובה ב-GKE

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

  • לסוגי מכונות עם מעבדי GPU או TPU שמצורפים אליהן, גרסה 1.31.1-gke.2008000 ואילך
  • לסוגי מכונות Z3 עם יותר מ-18 TiB של SSD,‏ 1.32.4-gke.1376000 ואילך
  • לסוגי מכונות H4D, גרסה 1.32.6-gke.1060000 ואילך
  • ל-c4a-highmem-96-metal, גרסה 1.35.0-gke.2232000 ואילך

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

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

    kubectl get nodes -l cloud.google.com/scheduled-maintenance-time \
        -L cloud.google.com/scheduled-maintenance-time
    

    הפלט אמור להיראות כך:

    NAME                         STATUS    SCHEDULED-MAINTENANCE-TIME
    <gke-accelerator-node-name>  Ready     1733083200
    <gke-accelerator-node-name>  Ready     1733083200
    [...]
    

    העמודה SCHEDULED-MAINTENANCE-TIME מייצגת שניות, שמוצגות בפורמט של זמן Unix epoch.

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

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

הצגת אירועי Kubernetes לצורך תחזוקת המארח

ב-GKE מגרסה 1.35 ואילך, מתבצעת פליטה של אירועי Kubernetes שעוקבים אחרי מחזור החיים של תחזוקת המארח. אירועי Kubernetes האלה מספקים תצוגה מפורטת של חלונות מתוזמנים של Compute Engine, פעולות שמתבצעות ומקרים חריגים כמו תיקונים או ביטולים, וכך מאפשרים לכם לעקוב אחרי שיבושים ישירות בסביבת Kubernetes.

אפשר לראות את האירועים האלה באמצעות כלים סטנדרטיים של Kubernetes או דרך Cloud Logging:

  1. כדי לראות אירועי תחזוקה מהזמן האחרון, משתמשים בפקודה kubectl הבאה:

    kubectl get events -n kube-system --field-selector involvedObject.kind=Node
    

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

  2. כדי לראות אירועים ב-Cloud Logging:

    1. נכנסים לדף Logs Explorer במסוף Cloud de Confiance :

      כניסה לדף Logs Explorer

    2. משתמשים בשאילתה הבאה:

    resource.type="k8s_node"
    log_id("events")
    jsonPayload.metadata.annotations."maintenance.gke.io/category"="HostMaintenance"
    

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

אירועים של מחזור חיים של תחזוקה מופקים במשאבי צומת של Kubernetes. בטבלה הבאה מפורטים האירועים שמופקים על ידי GKE במהלך מחזור החיים של תחזוקת המארח ב-Compute Engine:

סיבה תיאור
MaintenanceWindowScheduled חלון זמן לתחזוקה של מארח Compute Engine נקבע לצומת
MaintenanceWindowCancelled חלון זמן לתחזוקה של מארח Compute Engine נוקה בצומת
MaintenanceWindowRescheduled חלון זמן לתחזוקה של המארח ב-Compute Engine שנקבע בעבר הועבר, ושעת ההתחלה של התחזוקה עודכנה
CustomerTriggeredMaintenance תחזוקת המארח של Compute Engine הופעלה באופן ידני דרך GKE
MaintenanceWindowStarted התחילה תחזוקה של מארח Compute Engine
TerminateOnHostMaintenance האירוע הזה מופק כש-Compute Engine מנפיק את אות הסיום (TERMINATE_ON_HOST_MAINTENANCE). אם הסיום ההדרגתי מופעל, GKE מבודד את הצומת ומתזמן את פינוי הפוד (SIGTERM). עומסי עבודה מקבלים הודעה מראש של 5 עד 60 דקות, בהתאם לרמת המכונה.
PodEvictionComplete כל ה-pods הוצאו מהצומת
MaintenanceWindowCleared התחזוקה של המארח ב-Compute Engine הסתיימה והצומת חזר למצב מוכן.

פרטי המטען הייעודי של האירוע

אם מידע על אירועי תחזוקה עתידיים זמין דרך Compute Engine, כל אירוע כולל גם מטען ייעודי (payload) שמכיל נתוני הערות עם המידע הבא:

  • פרטים בחלון Compute Engine: כולל windowStartTime,‏ windowEndTime ו-latestWindowStartTime.
  • מטא-נתונים של תחזוקה: הסטטוס של מחזור התחזוקה בזמן האירוע, הסיבה לתחזוקה (הסיבה יכולה להיות SCHEDULED או UNSCHEDULED), והאם אפשר לתזמן מחדש את חלון הזמן של Compute Engine.
  • מטא-נתונים של Kubernetes: כולל Cluster_name,‏ nodepool_name ו-node_name.

תצוגה של פעולות תחזוקה של המארח בלוח הבקרה של GKE Maintenance

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

לוח הבקרה מבוסס על Observability Analytics. מוצגים מחזורי התחזוקה, סטטוס הצמתים ומדדי זמן ההשבתה ההיסטוריים.

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