במאמר הזה מוסבר איך לצפות בפעולות תחזוקה של מארחים באמצעות שורת הפקודה ולוח הבקרה של 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:
כדי לראות אירועי תחזוקה מהזמן האחרון, משתמשים בפקודה
kubectlהבאה:kubectl get events -n kube-system --field-selector involvedObject.kind=Nodeאירועים ב-Kubernetes נשמרים באשכול למשך 60 דקות, ולכן הפקודה הזו מפיקה רק את האירועים האחרונים האלה לכל צומת.
כדי לראות אירועים ב-Cloud Logging:
נכנסים לדף Logs Explorer במסוף Cloud de Confiance :
משתמשים בשאילתה הבאה:
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. מוצגים מחזורי התחזוקה, סטטוס הצמתים ומדדי זמן ההשבתה ההיסטוריים.
המאמרים הבאים
- איך מנהלים שיבושים בצמתים במהלך תחזוקת המארח
- איך מבצעים תחזוקה של מארחים עבור צמתים שמריצים עומסי עבודה של מאיצים
- מידע על חלונות תחזוקה והחרגות ב-GKE