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