בדף הזה מפורטים שלבים לפתרון בעיות ושגיאות נפוצות שמתרחשות במהלך השימוש במנהל התקן ה-CSI של Google Cloud Managed Lustre ב-Google Kubernetes Engine.
לפני שמבצעים את השלבים לפתרון בעיות שמפורטים בקטע הזה, כדאי לעיין במגבלות כשמתחברים ל-Managed Lustre מ-GKE.
עדכון הקיבולת המינימלית של המופע
הקיבולת המינימלית למכונות Managed Lustre עודכנה ל-9,000 GiB. כדי ליצור מכונות וירטואליות בנפח 9,000GiB באמצעות מנהל ההתקן של Managed Lustre CSI, צריך לשדרג את גרסת האשכול ל-1.34.0-gke.2285000 ואילך.
רמת הביצועים שגויה עבור מכונות Lustre שהוקצו באופן דינמי
כשמבצעים הקצאה דינמית של מופע Lustre, יצירת המופע נכשלת עם השגיאה InvalidArgument עבור PerUnitStorageThroughput, ללא קשר לערך perUnitStorageThroughput שצוין בבקשת ה-API.
הבעיה הזו משפיעה על גרסאות GKE 1.33 לפני 1.33.4-gke.1036000.
פתרון עקיף:
משדרגים את אשכול GKE לגרסה 1.33.4-gke.1036000 ואילך. אם אתם משתמשים בערוץ היציב, יכול להיות שגרסה חדשה יותר עדיין לא זמינה. במקרה כזה, אפשר לבחור באופן ידני גרסה מערוצי ההפצה הרגילים או המהירים שכוללת את התיקון.
יציאות תקשורת של Managed Lustre
הדרייבר של Managed Lustre CSI משתמש ביציאות שונות לתקשורת עם מכונות Managed Lustre, בהתאם לגרסת אשכול GKE ולהגדרות הקיימות של Managed Lustre.
יציאת ברירת המחדל (
988): באשכולות GKE חדשים שמופעלת בהם גרסה1.33.2-gke.4780000ואילך, מנהל ההתקן משתמש ביציאה988לתקשורת Lustre כברירת מחדל.יציאה מדור קודם (
6988): מנהל ההתקן משתמש ביציאה6988בתרחישים הבאים:- גרסאות קודמות של GKE: אם אשכול GKE מריץ גרסה קודמת מ-
1.33.2-gke.4780000, צריך להשתמש בדגל--enable-legacy-lustre-portכשמפעילים את מנהל ההתקן של CSI. הפעלת הדגל הזה מאפשרת לעקוף את הבעיה של התנגשות יציאות עםgke-metadata-serverבצמתים של GKE. - מכונות Managed Lustre קיימות עם תמיכה ב-GKE: אם אתם מתחברים למכונת Managed Lustre קיימת שנוצרה עם הדגל
--gke-support-enabled, אתם צריכים לכלול את--enable-legacy-lustre-portכשמפעילים את מנהל ה-CSI, בלי קשר לגרסת האשכול. בלי הדגל הזה, לא תהיה אפשרות לצרף את מכונת Lustre הקיימת לאשכול GKE.
מידע נוסף על הפעלת מנהל התקן CSI עם יציאה מדור קודם זמין במאמר בנושא יציאות תקשורת של Lustre.
- גרסאות קודמות של GKE: אם אשכול GKE מריץ גרסה קודמת מ-
שאילתות ביומן
כדי לבדוק את היומנים, מריצים את השאילתה הבאה ב-Logs Explorer.
כדי להחזיר יומני שרת של צומת דרייבר של Managed Lustre CSI driver:
resource.type="k8s_container"
resource.labels.pod_name=~"lustre-csi-node*"
פתרון בעיות בהקצאת נפח אחסון
אם ה-PersistentVolumeClaim (PVC) נשאר במצב Pending ולא נוצר PersistentVolume (PV) אחרי 20-30 דקות, יכול להיות שהתרחשה שגיאה.
בודקים את האירועים של ה-PVC:
kubectl describe pvc PVC_NAMEאם השגיאה מצביעה על בעיות בהגדרות או על ארגומנטים לא תקינים, צריך לבדוק את הפרמטרים של StorageClass.
יוצרים מחדש את ה-PVC.
אם הבעיה נמשכת, אפשר לפנות אל Cloud Customer Care.
פתרון בעיות בהוספת נפח אחסון
אחרי שה-Pod מתוזמן לצומת, אמצעי האחסון מותקן. אם הפעולה נכשלת, בודקים את אירועי ה-Pod ואת יומני kubelet.
kubectl describe pod POD_NAME
בעיות בהפעלת מנהל התקן CSI
הסימפטום:
MountVolume.MountDevice failed for volume "yyy" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers
או
MountVolume.SetUp failed for volume "yyy" : kubernetes.io/csi: mounter.SetUpAt failed to get CSI client: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers
הסיבה: מנהל ההתקן של CSI לא מופעל או שהוא עדיין לא פועל.
פתרון:
- מוודאים שדרייבר ה-CSI מופעל.
- אם בוצע לאחרונה שינוי בגודל האשכול או שדרוג שלו, צריך להמתין כמה דקות עד שהדרייבר יפעל.
- אם השגיאה נמשכת, בודקים ביומני
lustre-csi-nodeאם מופיעה השגיאה 'הפעולה לא מורשית'. ההודעה הזו מציינת שהגרסה של הצומת ישנה מדי ולא תומכת ב-Managed Lustre. כדי לפתור את הבעיה, צריך לשדרג את מאגר הצמתים לגרסה1.33.2-gke.1111000ואילך. - אם ביומנים מופיעה השגיאה LNET_PORT mismatch, צריך לשדרג את מאגר הצמתים כדי לוודא שמודולי ליבת Lustre תואמים מותקנים.
נקודת הצירוף כבר קיימת
הסימפטום:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = AlreadyExists
desc = A mountpoint with the same lustre filesystem name "yyy" already exists on
node "yyy". Please mount different lustre filesystems
הסיבה: המערכת לא תומכת בהרכבה של כמה אמצעי אחסון מכמה מופעים שונים של Managed Lustre עם אותו שם של מערכת קבצים בצומת יחיד.
פתרון: צריך להשתמש בשם ייחודי של מערכת קבצים לכל מכונה של Managed Lustre.
הטעינה נכשלה: אין קובץ או ספרייה בשם הזה
הסימפטום:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: No such file or directory
הגורם: שם מערכת הקבצים שצוין שגוי או לא קיים.
פתרון: מוודאים שערך ה-fs_name בהגדרות של StorageClass או PV תואם למכונה של Managed Lustre.
הטעינה נכשלה: שגיאת קלט או פלט
הסימפטום:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: Input/output error
הסיבה: לא ניתן לחבר את האשכול למופע Managed Lustre.
פתרון:
- מאמתים את כתובת ה-IP של מכונת Managed Lustre.
- מוודאים שקלאסטר GKE ומופע Managed Lustre נמצאים באותה רשת VPC או שהם מחוברים בצורה נכונה.
שגיאות פנימיות
הסימפטום: rpc error: code = Internal desc = ...
פתרון: אם השגיאה נמשכת, פנו אל Cloud Customer Care.
פתרון בעיות בביטול הטעינה של נפח אחסון
הסימפטום:
UnmountVolume.TearDown failed for volume "yyy" : rpc error: code = Internal desc = ...
פתרון:
מבצעים מחיקה מאולצת של ה-Pod:
kubectl delete pod POD_NAME --forceאם הבעיה נמשכת, אפשר לפנות אל Cloud Customer Care.
פתרון בעיות במחיקת נפח אחסון
אם ה-PV נשאר במצב Released (שוחרר) למשך תקופה ממושכת (לדוגמה, יותר משעה) אחרי מחיקת ה-PVC, צריך לפנות אל Cloud Customer Care.
פתרון בעיות בהרחבת נפח
PVC תקוע ב-ExternalExpanding
תסמין: הסטטוס של ה-PVC לא משתנה ל-Resizing, ובאירועים מוצג ExternalExpanding.
הסיבה: יכול להיות שהשדה allowVolumeExpansion חסר או שהערך שלו הוא false.
פתרון:
מוודאים של-StorageClass יש allowVolumeExpansion: true.
kubectl get storageclass STORAGE_CLASS_NAME -o yaml
ההרחבה נכשלת: ארגומנט לא תקין
הסימפטום: VolumeResizeFailed: rpc error: code = InvalidArgument ...
הסיבה: הגודל המבוקש לא תקין (לדוגמה, הוא לא כפולה של גודל השלב או שהוא חורג מהמגבלות).
פתרון: צריך לבדוק את טווח הקיבולת התקין ולעדכן את ה-PVC עם גודל תקין.
ההרחבה נכשלת: שגיאה פנימית
הסימפטום: VolumeResizeFailed ... rpc error: code = Internal
פתרון: מנסים להרחיב שוב על ידי החלה מחדש של ה-PVC. אם הפעולה נכשלת שוב ושוב, צריך לפנות אל Cloud Customer Care.
המועד האחרון חלף
תיאור הבעיה: VolumeResizeFailed עם DEADLINE_EXCEEDED.
הסיבה: הפעולה נמשכת יותר זמן מהצפוי, אבל יכול להיות שהיא עדיין מתבצעת.
פתרון: ממתינים לסיום הפעולה. הכלי לשינוי הגודל ינסה שוב באופן אוטומטי. אם הוא נשאר תקוע למשך זמן רב (למשל, יותר מ-90 דקות), פנו לתמיכה.
חריגה מהמכסה
הסימפטום: ההרחבה נכשלת בגלל מגבלות המכסה.
פתרון: צריך לבקש הגדלה של המכסה או לבקש להגדיל את הקיבולת בשיעור קטן יותר.