שיעור 14: אבחון תקלות — שיעור הסיכום
הגעת לשיעור האחרון, ובו נחבר את הכול לכלי אחד שתשתמש/י בו שוב ושוב: זרימת אבחון מסודרת — runbook. כשמשהו לא עובד בקלאסטר, קל להיכנס ללחץ ולנחש. במקום זה, נעבוד כמו בלשים: קודם אוספים ראיות, ורק אז מאשימים חשוד. סדר הצעדים פשוט וקבוע: קודם kubectl get pods כדי לראות מי במצב לא תקין; אחר כך kubectl de
אבחון תקלות זה כמו להיות בלש: לא מאשימים אף אחד לפני שאוספים ראיות. קודם בודקים מי חשוד (get), קוראים את העדויות (describe ו-logs), ורק אז קובעים מי אשם ומתקנים.
- אבחון תקלות
- תהליך מסודר לאיתור הסיבה לתקלה: אוספים ראיות (get, describe, logs), מגבשים השערה, מתקנים, ומאמתים שהבעיה נפתרה — במקום לנחש.
- ראנבוק
- רשימת צעדים קבועה וחוזרת שמבצעים כשמופיעה תקלה. כך כל אחד בצוות מאבחן באותו סדר ולא שוכח שלב קריטי תחת לחץ.
- קראשלופבקאוף
- מצב Pod שבו הקונטיינר עולה, קורס, ו-Kubernetes מנסה שוב ושוב עם השהיה הולכת וגדלה בין הניסיונות. הסיבה כמעט תמיד בקוד או בקונפיגורציה של האפליקציה — קוראים אותה ב-logs --previous.
- אימג'פולבקאוף
- מצב שבו Kubernetes לא הצליח להוריד (pull) את ה-image של הקונטיינר: שם או תגית שגויים, ה-image לא קיים ב-registry, או חסרות הרשאות. נראה את הסיבה ב-Events של describe.
- פנדינג
- מצב שבו ה-Pod התקבל אבל עדיין לא תוזמן לרוץ על אף node — לרוב כי אין מספיק משאבים (CPU/זיכרון) פנויים, או כי אף node לא תואם את הדרישות שלו.
- אירועים
- יומן קצר של מה ש-Kubernetes ניסה לעשות ל-Pod (תזמן, משך image, הפעיל, נכשל). מופיע בתחתית הפלט של kubectl describe pod והוא בדרך כלל הרמז הראשון לסיבת התקלה.