אפשר להיעזר בשלבים האלה כדי לפתור בעיות שונות שעלולות להתרחש כשמשתמשים ב-Kf ServiceInstances.
האובייקט נתקע במהלך המחיקה
מריצים את הפקודה הבאה כדי לקבל את פרטי המשאב, ואז בודקים אם אחת מהסיבות שמופיעות בהמשך רלוונטית:
kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yamlCLI kf יכול לעזור לבדוק חלק מהבעיות:
kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME| סיבה אפשרית | פתרון |
|---|---|
| חותמת הזמן של המחיקה היא בעתיד. |
במקרה של הטיה בשעון, יכול להיות שהזמן לתפוגה |
| יש finalizers באובייקט. |
ה-Finalizers קיימים באובייקט, והם צריכים להיות מוסרים על ידי בקר שהגדיר אותם לפני שהאובייקט נמחק. אם רוצים לכפות מחיקה בלי לחכות לפונקציות ה-finalizer, צריך לערוך את האובייקט כדי להסיר אותן מהמערך אזהרה: הסרה של finalizers בלי לאפשר לבקרים להשלים את הפעולה עלולה לגרום לשגיאות, לבעיות אבטחה, לאובדן נתונים או למשאבים יתומים. |
| יכול להיות שיש אובייקטים תלויים. |
יכול להיות שהאובייקט ממתין למחיקה של אובייקטים שתלויים בו לפני שהוא יימחק. מידע נוסף זמין במדריך בנושא איסוף נתונים מיותרים ב-Kubernetes. אדמין צריך לבדוק את כל האובייקטים במרחב השמות ובאשכול כדי לראות אם אחד מהם חוסם את המחיקה. אם אתם צריכים להסיר את האובייקט בלי לחכות לאובייקטים שתלויים בו, אתם יכולים להשתמש בדגל |
שינוי לא רצוי במצב של יצירת אובייקט
מריצים את הפקודה הבאה כדי לקבל את פרטי המשאב, ואז בודקים אם אחת מהסיבות שמופיעות בהמשך רלוונטית:
kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yamlCLI kf יכול לעזור לבדוק חלק מהבעיות:
kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME| סיבה אפשרית | פתרון |
|---|---|
| יש הבדלים בין גרסאות של אובייקטים. |
השגיאה הזו בדרך כלל מתרחשת כשבקר Kf לא קורא את הגרסה העדכנית של האובייקט. השגיאה הזו בדרך כלל נפתרת מעצמה אחרי שהרפליקות של Kubernetes מגיעות למודל עקביות הדרגתי, ובדרך כלל לא נדרשת פעולה מצד המשתמשים. |
התאמת האובייקט נכשלה
מריצים את הפקודה הבאה כדי לקבל את פרטי המשאב, ואז בודקים אם אחת מהסיבות שמופיעות בהמשך רלוונטית:
kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yamlCLI kf יכול לעזור לבדוק חלק מהבעיות:
kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME| סיבה אפשרית | פתרון |
|---|---|
| לאובייקט יש TemplateError |
בדרך כלל השגיאה הזו קורית אם המשתמש הזין מאפיין לא תקין במפרט של המשאב המותאם אישית, או שההגדרה של המרחב או האשכול לא תקינה. כדי להבין את שורש הבעיה, המשתמש יכול לקרוא את הודעת השגיאה הארוכה יותר ב- |
| באובייקט יש שגיאה מסוג ChildNotOwned (התנגשויות בשמות) |
בדרך כלל, השגיאה הזו מצביעה על כך שהאובייקטים שהבקר מנסה ליצור כבר קיימים. זה קורה אם המשתמש יצר משאב K8s עם אותו שם שהבקר מנסה ליצור, אבל לרוב זה קורה אם המשתמש מוחק משאב ואז בקר Kf מנסה ליצור אותו מחדש. אם משאב צאצא עדיין קיים, הבעלים שלו יהיה המשאב הישן שכבר לא קיים. כדי לפתור את השגיאה, מומלץ למשתמש למחוק את המשאב המושפע ואז ליצור אותו מחדש. כדי למחוק את האובייקט, משתמשים בפקודת מחיקה של Kf או בפקודה כדי ליצור מחדש משאב, משתמשים בפקודת Kf. לדוגמה: |
| לאובייקט יש ReconciliationError |
בדרך כלל השגיאה הזו מציינת שמשהו השתבש בקריאת ה-HTTP שבוצעה (על ידי בקר Kf) לשרת Kubernetes API כדי ליצור או לעדכן משאב. כדי להבין את שורש הבעיה, המשתמש יכול לקרוא את הודעת השגיאה הארוכה יותר ב- |
הסנכרון של משאב הגיבוי נכשל
מריצים את הפקודה הבאה כדי לקבל את פרטי המשאב, ואז בודקים אם אחת מהסיבות שמופיעות בהמשך רלוונטית:
kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yamlCLI kf יכול לעזור לבדוק חלק מהבעיות:
kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME| סיבה אפשרית | פתרון |
|---|---|
| שגיאה מסוג DeprovisionFailed במשאב הגיבוי. |
השגיאה הזו מתרחשת בדרך כלל כשמשאבי גיבוי (מסד נתונים של MySQL שמתארח בשרת OSB חיצוני) לא מצליחים לבטל את ההקצאה שלהם. מערכת Kf לא יכולה לקבוע באופן בטוח אם המשאב התלוי בוטל. כדי לפתור את השגיאה, מומלץ לקרוא את הודעת השגיאה המפורטת באובייקט אחרי שמאשרים את הודעת השגיאה, צריך לבקש מאדמין לבדוק את משאב הגיבוי ולנקות אותו באופן ידני. אחרי שנקבע שהמשאב הבסיסי שניתן לו גיבוי יכול להיות משוחרר בבטחה, אפשר לבצע גישור מוצלח של משאב Kf שהושפע מהבעיה. לשם כך, צריך להסיר את |