בדף הזה מתוארות שגיאות שקשורות לאחסון שאתם עשויים להיתקל בהן במהלך השימוש ב-Backup for GKE, דברים שכדאי לקחת בחשבון כשמבצעים את הפעולה ושלבים לפתרון הבעיה.
שגיאה 100010105: הגיבוי של PersistentVolumeClaim נכשל – הדיסק שאליו מתייחס PersistentVolume לא קיים
השגיאה 100010105 מתרחשת כשניסיון לגבות PersistentVolumeClaim נכשל כי הוא מפנה לדיסק שלא קיים, וכתוצאה מכך מוצגת הודעת השגיאה Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist.
ב-Google Kubernetes Engine, PersistentVolumeClaims מבקשים אחסון מ-PersistentVolumes. PersistentVolume, בתורו, מייצג חלק מאחסון, לרוב דיסק לאחסון מתמיד ב-Compute Engine. שגיאה יכולה להתרחש כש-PersistentVolumeClaim מאוגד ל-PersistentVolume וההגדרה של PersistentVolume מציינת דיסק קשיח קבוע ב-Compute Engine. עם זאת, לא ניתן למצוא בפרויקט Cloud de Confiance by S3NS את הדיסק בפועל עם השם והמיקום שצוינו בהגדרה PersistentVolume. לכן, אי אפשר להמשיך את הגיבוי ל-GKE של דיסק שלא קיים, והגיבוי נכשל.
כדי לפתור את השגיאה, פועלים לפי ההוראות הבאות:
מזהים את
PersistentVolumeClaimוPersistentVolumeהבעייתיים. השמות שלPersistentVolumeClaimהבעייתי ושלPersistentVolumeהמשויך אליו מופיעים בשדהstate reasonשל פעולת הגיבוי שנכשלה ב-Backup for GKE. מומלץ לתעד אתPersistentVolumeClaimהשם, מרחב השמות והשם שלPersistentVolume.בודקים את
PersistentVolume. כדי לתאר אתPersistentVolume, משתמשים בשםPersistentVolumeשזיהיתם בשדה של סיבת המצב בפקודה הבאה:kubectl describe pv PERSISTENTVOLUME_NAMEמחליפים את
PERSISTENTVOLUME_NAMEבשם של PersistentVolume.בפלט, בודקים את הקטע
source, במיוחד את הקטעcsi. בקטע הזה מתוארVolumeHandleשPersistentVolumeמנסה להפנות אליו. לדוגמה:Source: Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine) PDName: my-non-existent-disk FSType: ext4 Partition: 0 ReadOnly: false In this example, the PD name is my-non-existent-disk. Source: Type: CSI (a Container Storage Interface (CSI) volume) Driver: pd.csi.storage.gke.io VolumeHandle: projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME ...בדוגמה הזו,
VolumeHandleמכיל את הנתיב המלא לדיסק, כולל השם והמיקום שלו. לדוגמה,projects/my-gcp-project/zones/us-central1-a/disks/my-disk-name.משתמשים ב-
VolumeHandleשמתקבל מהתיאור שלPersistentVolumeכדי לזהות את שם הדיסק והאזור.כדי לוודא שהדיסק קיים ב Cloud de Confiance by S3NS פרויקט, אפשר להשתמש באחת מהשיטות הבאות:
דיסק אזורי
אם אתם משתמשים בדיסק אזורי, מריצים את הפקודה
gcloud compute disks describeבאמצעות Google Cloud CLI:gcloud compute disks describe DISK_NAME \ --zone=ZONE_NAME \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
DISK_NAME: השם של הדיסק שקיבלתם מהתיאור שלPersistentVolume.
ZONE_NAME: האזור של הדיסק שהתקבל מתיאורPersistentVolume.
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
דיסק אזורי
אם אתם משתמשים בדיסק אזורי, מריצים את הפקודה
gcloud compute disks describeבאמצעות Google Cloud CLI:gcloud compute disks describe DISK_NAME \ --region=REGION_NAME \ --project=PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
DISK_NAME: השם של הדיסק שקיבלתם מהתיאור שלPersistentVolume.
REGION_NAME: האזור של הדיסק שקיבלתם מהתיאור שלPersistentVolume.
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
אם מופיעה הודעת השגיאה
Resource not foundאוThe resource DISK_NAME was not found, הדיסק לא קיים. כדי לפתור את הבעיה, אפשר להשתמש באחת מהשיטות הבאות, בהתאם לתרחיש שהכי מתאים לצרכים שלכם:אם הדיסק נמחק בטעות או ששמו שונה ואתם רוצים לשמור את הנתונים או את
PersistentVolumeClaim, או אםPersistentVolumeהוגדר עם שם דיסק שגוי, אתם יכולים להשתמש באחת מהשיטות הבאות כדי לפתור את הבעיה:שחזור הדיסק: אם יש לכם גיבוי של הדיסק, שחזרו אותו עם אותו שם ומיקום בדיוק שאליהם מתייחס
PersistentVolume.יצירת דיסק חדש: אם שחזור הדיסק לא אפשרי, יוצרים דיסק חדש עם אותו שם ומיקום שמופיעים בהגדרות
PersistentVolume.
אם אין יותר צורך ב-
PersistentVolumeClaimאו ב-PersistentVolume, בנתונים שלהם או באפליקציה, מומלץ להסיר את הישות שלא נחוצה:- מחיקת
PersistentVolumeClaim: מוחקים אתPersistentVolumeClaimבאמצעות הכליkubectlשל שורת הפקודה כדי להריץ את הפקודהkubectl delete pvc:
kubectl delete pvc PVC_NAME -n NAMESPACEמחליפים את מה שכתוב בשדות הבאים:
PVC_NAME: השם שלPersistentVolumeClaimשרוצים למחוק.
NAMESPACE: מרחב השמות שלPersistentVolumeClaimשרוצים למחוק.
- מחיקת
המערכת לניתוב שיחות
PersistentVolumeעדיין קיימת אחרי שמוחקים אתPersistentVolumeClaim: אםPersistentVolumeReclaimPolicyשלPersistentVolumeמוגדר לערךDelete, המערכת לניתוב שיחותPersistentVolumeנמחקת אוטומטית כשמוחקים אתPersistentVolumeClaim. אם הערך שלpersistentVolumeReclaimPolicyהואRetain, צריך למחוק ידנית אתPersistentVolumeאחרי המחיקה שלPersistentVolumeClaim. כדי למחוק אתPersistentVolume, משתמשים בכליkubectlשל שורת הפקודה כדי להריץ את הפקודהkubectl delete pv:kubectl delete pv PV_NAMEמחליפים את
PV_NAMEבשם שלPersistentVolumeשרוצים למחוק.
אם הפעולה ממשיכה להיכשל, פנו אל Cloud Customer Care לקבלת עזרה נוספת.
שגיאה 100010202: יצירת תמונת המצב של נפח האחסון נכשלה
השגיאה 100010202 מתרחשת כשנכשלת יצירה של צילום מצב של דיסק קשיח ב-Compute Engine, וכתוצאה מכך מוצגת הודעת השגיאה Snapshotting volume failed.
פעולת snapshot של דיסק מתמשך ב-Compute Engine נכשלת אם מצב הצירוף של הדיסק למכונה וירטואלית (VM) משתנה במהלך תהליך יצירת ה-snapshot שהופעל על ידי שירות הגיבוי ל-GKE. דוגמאות לתרחישים נפוצים שגורמים לכך:
- תיקון אוטומטי של צמתים: צמתים לא תקינים נוצרים מחדש, מה שגורם לתזמון מחדש של Pods ולניתוק וחיבור מחדש של דיסקים.
- שדרוגים של צמתים: במהלך שדרוגים של מאגרי צמתים, הצמתים בדרך כלל מרוקנים ומוחלפים. ה-Pods מסיימים את הפעולה בצורה מסודרת ומתוזמנים מחדש בצמתים החדשים, מה שגורם לניתוק הדיסק ולמחזורי חיבור מחדש.
- התאמה לעומס (autoscaling) באשכול: במהלך אירועי הקטנת קיבולת, אם המידרוג האוטומטי באשכול מסיר צומת, כל ה-Pods בצומת הזה עם דיסקים קשיחים מתנתקים, וגורמים לניתוק הדיסקים. אם יתבצע תזמון מחדש של ה-Pods האלה במקום אחר, הקבצים המצורפים יצורפו לצמתים החדשים. במהלך אירועי הגדלה, צמתים חדשים לא גורמים ישירות לחיבורים מחדש, אבל יחידות Pod שמתוזמנות בהם יפעילו חיבורים ראשוניים.
זו שגיאה זמנית. הגיבוי בדרך כלל מצליח בהפעלה האוטומטית הבאה אחרי שהחיבור של הדיסק מתייצב. כדי למנוע מאירועים באשכול להשפיע על הגיבויים, מומלץ לפעול לפי ההמלצות הבאות:
הפעלת תזמון חכם: הגדרת תוכנית הגיבוי באמצעות תזמון חכם (לוח זמנים שמבוסס על RPO). כך המערכת יכולה לנסות שוב באופן אוטומטי כשלים זמניים במסגרת חלון הזמן שצוין, בלי להשפיע על RPO הכולל של תוכנית הגיבוי.
הגדרת חלונות החרגה לגיבוי: אם אתם מבצעים שדרוגים של מאגרי צמתים או פעולות שינוי גודל של אשכולות, כדאי להוסיף חלון החרגה לגיבוי להגדרות הגיבוי במהלך המרווחים האלה. כך שירות הגיבוי של GKE יושהה ולא יתזמן צילומי מצב בזמן שהאשכול משנה באופן פעיל את קבצים מצורפים לדיסק.
ניסיון חוזר של גיבויים ידניים: במקרה של גיבויים ידניים או גיבויים לפי דרישה, צריך לנסות שוב את פעולת הגיבוי אחרי שאירוע האשכול מסתיים.
אם הפעולה ממשיכה להיכשל, פנו אל Cloud Customer Care לקבלת עזרה נוספת.