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

במאמר הזה מוסבר איך להציג פעולות תחזוקה של מארחים באמצעות שורת הפקודה ולוח הבקרה לתחזוקה של 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:

  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 מבודד את הצומת ומתזמן את פינוי ה-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. מוצגים בו מחזורי תחזוקה, סטטוסים של צמתים ומדדים היסטוריים של זמני השבתה.

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