במאמר הזה מוסבר איך להציג פעולות תחזוקה של מארחים באמצעות שורת הפקודה ולוח הבקרה לתחזוקה של GKE.
הצגת פעולות התחזוקה של המארח יכולה לעזור לכם לצמצם את ההפרעות לעומסי העבודה, במיוחד באשכול GKE שפועל לאורך זמן עם עומסי עבודה שעלולים להיות מופרעים בגלל הפרעות תקופתיות בתשתית.
איך מבצעים תחזוקה של מארחים ב-GKE
מעקב אחרי התראות לגבי פעולות תחזוקה
לפני שמתרחש אירוע תחזוקה מתוזמן במכונה וירטואלית, Compute Engine שולח התראות לכל המכונות הווירטואליות שלו. ההתראות האלה מדווחות על תחילת חלון הזמן לתחזוקה של Compute Engine. כשמתוזמנת פעולת תחזוקה קרובה במכונה הווירטואלית אבל היא לא פעילה, GKE מוסיף את הערך scheduled-maintenance-time לתווית של הצומת.
כדי לעקוב אחרי אירועי תחזוקה קרובים ולזהות אותם, צריך להציג את ההתראות גם מ-GKE וגם מ-Compute Engine.
איך בודקים אם יש עבודות תחזוקה קרובות ב-Compute Engine
Compute Engine שולח התראות כשמתוזמנים אירועים מארחים שמשבשים את הצמתים ואת המכונות הווירטואליות הבסיסיות שלהם, וכשהאירועים האלה מתחילים. ההתראות כוללות מידע על שעת ההתחלה המתוכננת, סוג האירוע ופרטים נוספים.
איך בודקים מתי מתוכננת תחזוקה ב-GKE
אתם יכולים לעקוב אחרי אירועי תחזוקה קרובים ב-GKE לסוגי מכונות ספציפיים. בטבלה הבאה מפורטים סוגי המכונות הנתמכים וגרסת ה-GKE המינימלית הנדרשת לכל אחד מהם:
| סוג המכונה | גרסת GKE מינימלית |
|---|---|
| סוגי מכונות עם מעבדי GPU או TPU מצורפים | 1.31.1-gke.2008000 ואילך |
| סוגי מכונות H4D | 1.32.6-gke.1060000 ואילך |
c4a-highmem-96-metal |
1.35.0-gke.2232000 ואילך |
| מכונות מסוג Z3 עם יותר מ-18 TiB של Titanium SSD | 1.32.4-gke.1376000 ואילך |
| מכונות מסוג Z4D עם יותר מ-42 TiB של Titanium SSD מחובר | 1.36.3-gke.1244000 ואילך |
| סוגי מכונות Z4M עם יותר מ-48 TiB של Titanium SSD מחובר, או כל מכונות Z4M שמשתמשות ב-Cloud RDMA | 1.36.3-gke.1767000 ואילך |
כדי לראות את אירועי התחזוקה הקרובים, אתם יכולים:
שליחת שאילתות לגבי התראות ברמת הצומת. כדי לעשות את זה, מריצים את הפקודה הבאה:
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 לתחזוקת מארח
בגרסה 1.35 ואילך של GKE, נשלחים אירועים של 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 מבודד את הצומת ומתזמן את פינוי ה-Pod (SIGTERM). עומסי העבודה מקבלים התראה של 5 עד 60 דקות, בהתאם לרמת המכונה. |
PodEvictionComplete |
כל הפודים פונו מהצומת |
MaintenanceWindowCleared |
התחזוקה של המארח ב-Compute Engine הסתיימה והצומת חזר למצב מוכן. |
מידע על המטען הייעודי של האירוע
אם מידע על אירועי תחזוקה קרובים זמין דרך Compute Engine, כל אירוע כולל גם מטען ייעודי (payload) שמכיל נתוני הערות עם המידע הבא:
- פרטי החלון של Compute Engine: כולל את
windowStartTime,windowEndTimeו-latestWindowStartTime. - מטא-נתונים של תחזוקה: הסטטוס של מחזור התחזוקה בזמן האירוע, הסיבה לתחזוקה (הסיבה יכולה להיות
SCHEDULEDאוUNSCHEDULED) ואם אפשר לתזמן מחדש את החלון של Compute Engine. - מטא-נתונים של Kubernetes: כוללים את Cluster_name, nodepool_name ו-node_name.
תצוגה של פעולות תחזוקה של מארחים במרכז הבקרה לתחזוקה של GKE
בלוח הבקרה של GKE Maintenance מוצגת תצוגה מאוחדת של פעולות התחזוקה של המארח. בלוח הבקרה מוצג מידע מקיף על פעילויות התחזוקה ברמות האשכול, מאגר הצמתים והצומת.
לוח הבקרה מבוסס על Observability Analytics. מוצגים בו מחזורי תחזוקה, סטטוסים של צמתים ומדדים היסטוריים של זמני השבתה.
המאמרים הבאים
- איך מנהלים את השיבושים בצמתים במהלך תחזוקת המארח
- איך מבצעים תחזוקה של מארח לצמתים שמריצים עומסי עבודה של מאיצים
- מידע על חלונות זמן לתחזוקה והחרגות ב-GKE