בדף הזה מפורטות בעיות ידועות ב-GKE. הדף הזה מיועד לאדמינים ולארכיטקטים שמנהלים את מחזור החיים של תשתית הטכנולוגיה הבסיסית, ומגיבים להתראות ולדפים כשלא עומדים ביעדי רמת השירות (SLO) או כשהאפליקציות נכשלות.
בדף הזה מפורטות בעיות מוכרות בכל הגרסאות הנתמכות ובשתי גרסאות המשנה שקודמות לגרסה המוקדמת ביותר בתמיכה מורחבת. אחרי שגרסה מסוימת מגיעה לסוף תקופת התמיכה המורחבת, כל הבעיות שקשורות לגרסה N-2 מוסרות. לדוגמה, כשגרסה 1.30 מגיעה לסוף התקופה של התמיכה המורחבת, אנחנו מסירים בעיות מוכרות שספציפיות לגרסאות 1.28 וקודמות.
אם אתם משתתפים ב-Google Developer Program, כדאי לשמור את הדף הזה כדי לקבל התראות כשמתפרסם הערת גרסה שקשורה לדף הזה. מידע נוסף זמין במאמר בנושא דפים שמורים.
כדי לסנן את הבעיות הידועות לפי גרסת מוצר או קטגוריה, בוחרים את המסננים מהתפריטים הנפתחים הבאים.
בוחרים את גרסת GKE:
בחירת קטגוריית הבעיה:
אפשר גם לחפש את הבעיה:
| קטגוריה | גרסאות שזוהו | גרסאות שבהן הבעיה נפתרה | בעיה ופתרון עקיף |
|---|---|---|---|
| פעולה |
|
TBD |
בקשות HTTP POST לקבלת טוקנים משרת המטא-נתונים נכשלות עם הודעת השגיאה 400 Bad Request
יכול להיות שעומסי עבודה שמשתמשים ב-איחוד זהויות של עומסי עבודה ל-GKE כדי לבצע אימות ל-API של Google Cloud באמצעות בקשה לאסימוני גישה לחשבון שירות או לאסימוני זהות משרת המטא-נתונים של GKE (כמו
הבעיה הזו מתרחשת כשיישום, ספריית לקוח או שער API שולחים בקשת HTTP פתרון עקיף:
כדי לפתור את הבעיה, צריך להגדיר את האפליקציה, ספריית הלקוח או שער ה-API כך שישתמשו בשיטה curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token"
אם עומס העבודה משתמש ב-SDK או בשער של צד שלישי (כמו MuleSoft Flex Gateway, IBM App Connect או סקריפטים מותאמים אישית של HTTP) שמוגדרים כברירת מחדל לשליחת בקשות |
| פעולה | 1.37.0-gke.2941000 ואילך | TBD |
צמתים שטענו נפחי NFS צוברים רשומות טעינה ומפסיקים ליצור קונטיינריםבצמתים שמופעלות בהם גרסאות מושפעות, הרכבה של נפח NFS משאירה רשומות נוספות בטבלת ההרכבה של הצומת. בנוסף, כש-Pod שמשתמש בנפח NFS מסתיים, הניסיונות לבטל את הטעינה נכשלים, ולכן כשטבלת ההרכבה מגיעה למגבלת הליבה, זמן הריצה של הקונטיינר לא יכול יותר ליצור קונטיינרים בצומת הזה. הצומת מפסיק להריץ Pods חדשים, יכול לדווח על סטטוס באירועי ה-Pod וביומנים של MountVolume.SetUp failed for volume "VOLUME_NAME" : mount failed: exit status 1 mount: /etc: mount(2) system call failed: No space left on device הבעיה הזו משפיעה על מאגרי צמתים שטעונים בהם נפחי אחסון של NFS באמצעות מנהל התקן ה-NFS בתוך העץ של Kubernetes. ההשפעה לא חלה על צמתים שלא משתמשים במנהל ההתקן NFS בתוך העץ כדי לטעון נפחי NFS. פתרון עקיף: כדי לשחזר צומת מושפע, מפעילים אותו מחדש או יוצרים אותו מחדש. רשומות ההרכבה הנוספות קיימות רק במצב הפעלה של הצומת, ולכן הן נמחקות כשהצומת מופעל מחדש. אפשר להסיר פודים שנתקעו במצב kubectl delete pod POD_NAME --namespace NAMESPACE --force --grace-period=0 כדי שהבעיה לא תחזור באשכולות Standard, צריך לשדרג לאחור את מאגרי הצמתים שמבצעים mount של נפחי NFS לגרסה 1.36. מגדירים החרגה של תחזוקה כדי ש-GKE לא ישדרג אוטומטית את מאגרי הצמתים בחזרה לגרסה מושפעת. אם אשכול Autopilot מריץ גרסה מושפעת, אפשר להשתמש באחת מהאפשרויות הבאות:
|
| שדרוגים | 1.34.9-gke.1065000 ואילך, 1.35.6-gke.1049000 ואילך, וכל גרסאות התיקונים של 1.36 | 1.34.10-gke.1328000 ואילך, 1.35.8-gke.1026000 ואילך, 1.36.4-gke.1058000 ואילך (עדיין אין תיקון לגרסה 1.37) |
כשלים בעומס העבודה של GPU A4X Max (GB300)יצירה או שדרוג של מאגרי צמתים מסוג A4X Max ( פתרון: משדרגים כל אשכול ומאגר צמתים שהושפעו לגרסה מתוקנת. GKE מונע יצירה של מאגרי צמתים של A4X Max עם גרסאות מושפעות, ולא ישדרג אוטומטית את מאגרי הצמתים לגרסאות מושפעות. ב-GKE אפשר לבצע שדרוגים ידניים לגרסאות המושפעות. עם זאת, כדי להימנע מהכשלים, אנחנו ממליצים לא לשדרג לגרסאות המושפעות. פתרון עקיף: אם אי אפשר לשדרג, צריך למחוק את כל מאגרי הצמתים של A4X Max שמופעלים בגרסאות מושפעות, וליצור מחדש את מאגרי הצמתים באמצעות גרסה קודמת שלא הושפעה. חשוב לזכור: מכיוון שקיבולת A4X מקסימלית חייבת להתקבל באמצעות הזמנה, לא תאבדו קיבולת אם תמחקו את מאגרי הצמתים. |
| פעולה | גרסאות 1.33 מוקדמות יותר מ-1.33.5-gke.2469000, גרסאות 1.34 מוקדמות יותר מ-1.34.1-gke.2037001 | 1.33.5-gke.2469000 ואילך, 1.34.1-gke.2037001 ואילך, 1.35 ואילך |
צמתים של GPU או TPU נתקעים עם כתמי impending-node-termination אחרי תחזוקת מארחבאשכולות GKE עם צמתי האצה (GPU או TPU) שמריצים גרסאות מושפעות, יכול להיות שהצמתים יישארו תקועים עם ההגדרות פתרון עקיף: כדי לפתור את הבעיה של המצב התקוע, צריך להסיר באופן ידני את התוויות של תחזוקה פעילה בניהול GKE ואת ה-taints מהצמתים המושפעים. אם תסירו רק את ה-taints, בקר התחזוקה של GKE יחיל אותם מחדש באופן אוטומטי. כדי לנקות את התוויות וההכתמות, מריצים את הפקודות הבאות: kubectl label nodes NODE_NAME cloud.google.com/active-node-maintenance- kubectl label nodes NODE_NAME cloud.google.com/scheduled-maintenance-time- kubectl label nodes NODE_NAME cloud.google.com/scheduled-maintenance-time-latest- kubectl taint nodes NODE_NAME cloud.google.com/impending-node-termination- kubectl taint nodes NODE_NAME cloud.google.com/maintenance-window-started- מחליפים את |
| פעולה |
|
1.34.1-gke.1829001 ואילך |
כניסה של Pod נכשלה עבור עומסי עבודה של TPU v7 בגלל דיווח על מספר שגוי של שבבים.GKE מפרסם באופן שגוי שמונה שבבי TPU שניתנים להקצאה למאיצי TPU v7 (tpu7x) עם טופולוגיה של 2x2x1, אבל בפועל יש רק ארבעה שבבים. הפער הזה בדיווח מונע תזמון של Pod לעומסי עבודה של TPU v7. הארכיטקטורה של TPU v7 עם שני שבבים לא מטופלת בצורה נכונה בגרסאות קודמות, ולכן יש כשלים בהקצאת משאבים ל-Pod. בהתאם למשאבי ה-TPU המבוקשים, השגיאות הבאות מתרחשות:
פתרון עקיף: כדי לפתור את הבעיה, צריך לשדרג את אשכול GKE לגרסה 1.34.1-gke.1829001 ואילך. |
| פעולה | 1.35.3-gke.1234000 ואילך | TBD |
לקוח Lustre לא משתמש בכרטיסי NIC משניים בצמתים עם multi-NICבצמתים של GKE עם כמה כרטיסי ממשק רשת (NIC), דרייבר ה-CSI של Managed Lustre מופעל כברירת מחדל כדי להשתמש בכל כרטיסי ה-NIC הזמינים לצבירת רוחב הפס על ידי פיזור תעבורת האחסון של TCP על פני ממשקי הרשת. עם זאת, בגלל בעיה מוכרת, יכול להיות שלקוחות Lustre החל מגרסה פתרון עקיף: אם עומסי העבודה שלכם דורשים צבירת רוחב פס של multi-NIC עבור Managed Lustre, צריך לשנמך את מאגרי הצמתים לגרסת GKE מוקדמת יותר מ-1.35.3-gke.1234000, כמו 1.35.2-gke.1842000. |
| פעולה | 1.35 ואילך | TBD |
זמן קצוב לתפוגה של החיבור או שהחיבור נדחה להפניות אוטומטיות לשרת המטא-נתונים של GKEב-GKE בגרסה 1.35 ואילך, עומסי עבודה שמשתמשים ב-Workload Identity כדי לבצע אימות ל-Google Cloud APIs עשויים לחוות פסק זמן זמני לחיבור או חיבורים שנדחו לשרת המטא-נתונים של GKE מיד אחרי הפעלת הצומת. פתרון עקיף: המלצות ופתרונות עקיפים זמינים במאמר בנושא פתרון בעיות שקשורות לפסק זמן בהפעלה של Pod. |
| פעולה | 1.33.8-gke.1026000 ואילך | גרסה 1.35.1 ואילך |
gVisor shim לא מצליח לנקות, היומנים מציגים שגיאה
|
| פעולה | 1.35.0-gke.2232000 ואילך | 1.35.3-gke.1.35.3-gke.1290000 ואילך |
נפחים דינמיים חוזרים לסוג הדיסק שמוגדר כברירת מחדליכול להיות שעומסי עבודה שמשתמשים בנפחים דינמיים ב-GKE בגרסה 1.35.0-gke.2232000 ואילך לא יצליחו לתזמן או לצרף. הבעיה הזו יכולה גם לגרום להקצאת נפחי אחסון באמצעות חלופת ברירת המחדל הבעיה הזו מתרחשת כי שרת הצומת PDCSI לא מאכלס את האובייקט פתרון עקיף: שדרוג לגרסה 1.35.3-gke.1290000 ואילך. |
| שדרוגים ועדכונים |
|
|
בעיות בהפעלה של Pod במהלך שדרוגים ל-GKE 1.35 באשכולות GKE Dataplane V2אשכולות שמשדרגים את מישור הבקרה לגרסה 1.35.0-gke.2232000 ואילך של GKE מגרסאות
anetd DaemonSet.
אם עומסי עבודה חדשים מתוזמנים להפעלה בצומת עם גרסה לא עדכנית של
הבעיה הזו מתרחשת כי GKE משתמש במצב identity-management-mode של Operator, שבו כל הסוכנים וה-Operator צריכים להציג תצוגה מסונכרנת של identity-relevant labels. החל מ-GKE 1.35.0-gke.2232000, התוויות פתרון עקיף:
|
| שדרוגים ועדכונים |
|
|
עיכובים בתזמון של Pod בצמתים חדשים עם מדיניות רשת ב-Kubernetes Calico מופעלת
באשכולות GKE שבהם מופעלת מדיניות רשת ב-Kubernetes Calico, רגרסיה
בגרסאות המושפעות עלולה לגרום לעיכובים משמעותיים בתזמון של Pod בצמתים חדשים או בצמתים שנוצרו מחדש.
העיכובים האלה עלולים לגרום לכך שהצמתים יישארו במצב הבעיה נגרמת בגלל שסקריפט לטעינה בזמן ההפעלה של Calico CNI מעצב באופן שגוי את כתובת ה-URL של שרת Kubernetes API עבור כתובות IPv4, על ידי הוספת סוגריים מרובעים ([]) סביבן. הגישה הזו מובילה לשגיאת ניתוח של כתובת ה-URL כשיוצרים ארגזי חול חדשים של Pod, שמופיעה ביומני kubelet:
פתרון עקיף: גרסת רכיב Calico נקבעת לפי גרסת מישור הבקרה של האשכול. כדי לצמצם את הבעיה, צריך לשדרג את רמת הבקרה של האשכול לאחת מהגרסאות המתוקנות. אחרי שמשדרגים את מישור הבקרה, צריך ליצור מחדש את הצמתים במאגרי הצמתים כדי לוודא שהם משתמשים בפורמט הנכון של כתובת ה-URL של שרת Kubernetes API. כדי לעשות את זה, אפשר לבצע שדרוג במקום של מאגר הצמתים לאותה גרסה או לגרסה חדשה יותר, או ליצור מחדש את מאגרי הצמתים באופן ידני. |
| ביצועים |
|
|
הביצועים של רשתות למטרות כלליות יורדים בסוגי מכונות מסדרות A ו-G4 GPUבאשכולות GKE עם צומתי GPU מסדרות A ו-G4, הביצועים של רישות למטרות כלליות ב-GKE 1.32.8-gke.1134000 ואילך ב-GKE 1.32, וב-GKE 1.33.3-gke.1392000 ואילך, נמוכים מהרגיל. הירידה בביצועים ברשתות למטרות כלליות משפיעה על סוגי מכונות GPU, כולל סדרת מכונות A3, סדרת מכונות A4, סדרת מכונות A4X וסדרת מכונות G4. שימו לב ש-GPUDirect-TCPXO ב-A3 Mega ו-GPUDirect-RDMA ב-A3 Ultra, A4 ו-A4X לא מושפעים. השגיאה הזו מתרחשת כי הסקריפט ברמת הצומת ( פתרון עקיף: משדרגים כל מאגר צמתים שהושפע לגרסה מתוקנת. |
| ביצועים |
|
|
הביצועים של GPUDirect-TCPX יורדים ב-A3 Highבאשכולות GKE עם צמתים מסוג A3 High ( השגיאה הזו מתרחשת כי הסקריפט ברמת הצומת ( פתרון עקיף: במאגרי צמתים של GKE 1.32, משדרגים את גרסאות מאגר הצמתים של GKE לגרסה 1.32.11-gke.1075000 ואילך. במאגרי צמתים של GKE מגרסה 1.33 ואילך, צריך לשדרג את גרסאות מאגרי הצמתים של GKE לגרסה 1.33.5-gke.2392000 ואילך.1392000. למאגרי צמתים של GKE 1.34, אפשר לעיין במאמר GPUDirect-TCPX לא זמין עם A3 High ל-GKE מגרסה 1.34 ואילך. |
| שדרוגים | 1.35 |
1.35.0-gke.2232000 ואילך. |
שכפול זהויות של Cilium באשכולות GKE Dataplane V2באשכולות GKE שמופעלת בהם גרסה 1.35 עם GKE Dataplane V2, יכול להיות שיהיה גידול במספר המשאבים המותאמים אישית גם באשכולות אזוריים וגם באשכולות אזוריים, תזמון של עומס עבודה חדש עלול לגרום לשכפול זמני של זהות Cilium. הכפילות הזו מתרחשת כי ל-Pods יש זהות אחת בזמן היצירה על סמך תוויות ראשוניות, ועוד זהות אחרי שמוסיפים תוויות טופולוגיה כשה-Pod מתוזמן לצומת. באשכולות אזוריים, מספר הזהויות עשוי לגדול גם בפקטור שפרופורציונלי למספר האזורים שהאשכול משתרע עליהם. השפעה: אם המספר הכולל של הזהויות גדול מ-65,535, יכול להיות שלא תהיה אפשרות לתזמן עומסי עבודה חדשים. פתרון עקיף: כדי להגביל את המספר הכולל של הזהויות, אל תוסיפו ל-Pods תוויות עם מספר גדול של ערכים ייחודיים. מידע נוסף זמין במאמרי העזרה הבאים של Cilium: צריך לבצע שדרוגים ידניים מגרסאות 1.34.3-gke.1208000 ואילך. אם תתחילו את השדרוג מגרסה מוקדמת יותר מ-1.34.3-gke.1208000, יכול להיות שתיתקלו בבעיות זמניות בתזמון של Pod במהלך תהליך השדרוג. |
| שדרוגים |
|
בנוסף, צריך להשתמש בגרסה 3.1.9 ואילך של קובץ ההתקנה של GPUDirect-TCPX ובגרסה 2.0.12 ואילך של sidecar. הגרסאות של תוכנת ההתקנה ושל קובץ העזר ממופות אחת לאחת, והן צריכות להיות זהות. לדוגמה, גרסת תוכנת ההתקנה של GPUDirect-TCPX 3.1.12 תואמת לגרסת ה-sidecar 2.0.15. מידע נוסף על גרסאות של קובצי התקנה ו-sidecar זמין בהערות לגבי הגרסה של GPUDirect-TCPX. |
GPUDirect-TCPX לא זמין ב-A3 High לגרסאות GKE ספציפיותאשכולות GKE עם צמתים מסוג A3 High ( סוגי מכונות אחרים של GPU מסוג A3 High ( פתרון: כדי לפתור את הבעיה, צריך לשדרג לתיקוני GKE גרסה קבועים. לפרטים על הגדרה ושדרוג של מאגרי צמתים עם GPUDirect-TCPX, אפשר לעיין במאמרים הגדלת רוחב הפס של רשת ה-GPU באשכולות רגילים או הגדלת רוחב הפס של רשת ה-GPU באשכולות Autopilot. כשמריצים בדיקות של NCCL בגרסאות קבועות, יכול להיות שיוצגו האזהרות הבאות שלא משפיעות על הביצועים או על הפונקציונליות:
|
| פעולה | כל הגרסאות לפני 1.34.0-gke.2285000 | 1.34.0-gke.2285000 ואילך |
עדכון הקיבולת המינימלית של המופעהקיבולת המינימלית למכונות Managed Lustre עודכנה ל-9,000 GiB. באשכולות שמריצים גרסאות מוקדמות מ-1.34.0-gke.2285000, אי אפשר ליצור מכונות עם הקיבולת המינימלית הזו באמצעות מנהל ההתקנים של Managed Lustre CSI. פתרון עקיף: כדי ליצור מופעי Managed Lustre עם קיבולת מינימלית של 9,000GiB, צריך לשדרג את גרסת האשכול לגרסה 1.34.0-gke.2285000 ואילך. |
| פעולה | כל הגרסאות | TBD |
ממשק המשתמש שלGoogle Cloud הופך ללא ניתן לעריכה במהלך תיקון אוטומטי של הצומתכשצומת GKE עובר תיקון אוטומטי, אי אפשר לערוך את מאגר הצמתים דרך Google Cloud המסוף בגלל פעולה שמתבצעת. פתרון עקיף: עדיין אפשר לערוך את ההגדרות של מאגר הצמתים באמצעות פקודות של ה-CLI של gcloud. |
| פעולה | גרסאות 1.33 לפני 1.33.4-gke.1036000 | 1.33.4-gke.1036000 ואילך |
רמת הביצועים שגויה עבור מכונות Lustre שהוקצו באופן דינמיכשמבצעים הקצאה דינמית של מופע Lustre, יצירת המופע נכשלת עם שגיאת פתרון עקיף: משדרגים את אשכול GKE לגרסה 1.33.4-gke.1036000 ואילך. אם אתם משתמשים בערוץ היציב, יכול להיות שגרסה חדשה יותר עדיין לא זמינה. במקרה כזה, אפשר לבחור באופן ידני גרסה מערוצי ההפצה הרגילים או המהירים שכוללת את התיקון. |
| פעולה |
|
1.33.3-gke.1266000 ואילך |
שגיאת קלט/פלט כשמשנים את השם של קבצים או מעבירים אותם באמצעות מנהל התקן ה-CSI של Cloud Storage FUSEכשמשתמשים בגרסה מושפעת של מנהל התקן ה-CSI של Cloud Storage FUSE, יכול להיות ששינוי שם של קבצים או העברה שלהם לקטגוריות של Cloud Storage ייכשלו עם שגיאת קלט/פלט. פתרון עקיף: מוסיפים באופן זמני הגדרה ספציפית של תמונת sidecar למניפסט של ה-Pod. בקטע # Add the following block to use the fixed sidecar image - name: gke-gcsfuse-sidecar image: gcr.io/gke-release/gcs-fuse-csi-driver-sidecar-mounter:v1.8.9-gke.2 מידע נוסף זמין במאמר בנושא הגדרת תמונה פרטית עבור קונטיינר sidecar. אחרי שמשדרגים את האשכול לגרסה קבועה של GKE או לגרסה חדשה יותר, צריך להסיר את כל הבלוק |
| רישום ביומן ומעקב | כל הגרסאות | TBD |
מרוץ תהליכים ב-
|
| שדרוגים | 1.33 | 1.33.2-gke.1043000 |
הורדת מכסת הקבצים הפתוחים ב-containerd 2.0במאגרי צמתים שפועלים בגרסה 1.33 של GKE, שמשתמשת ב-containerd 2.0, המגבלה הרכה שמוגדרת כברירת מחדל לקבצים פתוחים ( זהו שינוי ב-containerd עצמו (ראו containerd PR #8924) שבו עומסי עבודה שמצפים למגבלה רכה גבוהה יותר כברירת מחדל (לדוגמה, עומסי עבודה שמסתמכים באופן מרומז על ברירת המחדל הקודמת שהייתה גבוהה יותר) עלולים להיכשל, למשל להציג שגיאות פתרון: שדרוג מגרסת תיקון קודמת של 1.33 לגרסה 1.33.2-gke.1043000 ואילך. פתרון עקיף: כדי להגדיל את מכסת הקבצים הפתוחים לעומסי העבודה, אפשר להשתמש באחת מהשיטות הבאות:
|
| שדרוגים | 1.31.5-gke.1169000, 1.32.1-gke.1376000 | 1.31.7-gke.1164000, 1.32.3-gke.1512000 |
סטטוס CRD לא תקין.storedVersions ל-CRD מנוהליםיכול להיות שלחלק מ-CRD שמנוהלים על ידי GKE יש שדה הבעיה הזו משפיעה על אשכולות שעומדים בשני התנאים הבאים:
פתרון עקיף: הפתרון המומלץ הוא לדחות את השדרוגים של האשכולות עד שהבעיה תיפתר. לחלופין, אם אתם יודעים שהאשכול שלכם מכיל גרסאות לא נתמכות של אובייקטים מסוג CRD, אתם יכולים להוסיף את הגרסאות האלה לשדה |
| תפעול, רישום ביומן ומעקב | 1.32.2-gke.1652000, 1.31.6-gke.1221000, 1.30.10-gke.1227000 |
|
מדדים חסרים או שהמידרוג האוטומטי של עומס העבודה לא פועליכול להיות שתבחינו בפערים בנתוני המדדים בגרסאות המושפעות אחרי שגודל האשכול גדל ביותר מחמישה צמתים. הבעיה הזו עשויה להשפיע גם על פעולות של שינוי גודל אוטומטי. הבעיה הזו משפיעה רק על אשכולות ששודרגו לגרסאות המושפעות. קלאסטרים חדשים שנוצרו אמורים לפעול כצפוי. פתרון עקיף: אם אתם מושפעים מהבעיה, אתם יכולים לשדרג לגרסאות החדשות המתוקנות או לשנמך לגרסה אחת קודמת. |
| פעולה |
מגבלות הגודל והקבצים המצורפים של Google Cloud Hyperdiskבדרך כלל, אם אי אפשר לתזמן Pod בגלל מגבלות על volume attachment של צומת, מופעלת הקצאת משאבים אוטומטית של צומת חדש. כשמריצים עומסי עבודה שמשתמשים במוצר Hyperdisk ומתוזמנים לצומת שמריץ מכונה וירטואלית C3, לא מתבצעת הקצאת צמתים אוטומטית (NAP) וה-Pod מתוזמן לצומת שכבר מלא. עומס העבודה מתוזמן לצומת למרות שאין דיסק זמין לצירוף. גם הפעלת עומס העבודה נכשלת, בגלל שגיאה כמו הבאה: AttachVolume.Attach failed for volume "[VOLUME NAME]" : rpc error: code = InvalidArgument desc = Failed to Attach: failed when waiting for zonal op: rpc error: code = InvalidArgument desc = operation operation-[OPERATION NUMBERS] failed (UNSUPPORTED_OPERATION): Maximum hyperdisk-balanced disks count should be less than or equal to [16], Requested : [17] הבעיה קיימת בכל מוצרי Hyperdisk במכונות C3. מגבלות הצירוף של Hyperdisk משתנות בהתאם למספר ליבות ה-vCPU של מכונת ה-VM ולמוצר Hyperdisk. מידע נוסף זמין במאמר בנושא מגבלות הביצועים של Hyperdisk. פתרון עקיף: מוצרי Google Cloud Hyperdisk מפעילים הקצאת משאבים אוטומטית בצורות אחרות של מכונות וירטואליות. מומלץ לבחור צורה שתומכת רק ב-Google Cloud Hyperdisk. |
||
| פעולה | 1.32.3-gke.1927000, 1.32.3-gke.1785000, 1.32.3-gke.1717000, 1.32.3-gke.1440000, 1.32.3-gke.1170000, 1.32.3-gke.1250000, 1.32.3-gke.1671000, 1.32.3-gke.1596000, 1.32.3-gke.1298000 |
תהליך gke-metadata-server נקטל בגלל חריגה מזיכרון (OOM) בצמתים של TPU/GPUבצמתים של GKE TPU (לדוגמה, פתרון עקיף: אם אתם רואים אירועי |
|
| פעולה |
|
|
יכול להיות ששינוי הגודל של נפחים נתקע בגלל סטטוס NodePendingResize תלוי ב-PVC.בגרסה 1.32, אשכולות עם צמתים בגרסה 1.31 או בגרסאות קודמות לא יצליחו לעדכן את הסטטוס של PersistentVolumeClaim במהלך שינוי הגודל. הסטטוס השגוי הזה מונע את תחילת הפעולות הבאות של שינוי הגודל, ולמעשה מונע שינויי גודל נוספים. ל-PVC במצב הזה יש שדה אם נוצר PVC בזמן שהאשכול היה בגרסה מושפעת, יכול להיות שהבעיה הזו תימשך גם אחרי שהאשכול ישודרג לגרסה ידועה שבה הבעיה תוקנה. בתרחיש הזה, צריך להחיל תיקון על ה-PVC כדי להסיר את השדה פתרון עקיף: אפשר לתקן PVCs שנתקעו בגלל סטטוס לא תקין כדי להסיר את הסטטוס הזה. כדי להסיר את הסטטוס 'תלוי ועומד', אפשר להשתמש בפקודת תיקון כמו זו שבהמשך: kubectl patch pvc $PVC_NAME --subresource='status' --type='merge' -p '{"status":{"allocatedResourceStatuses":null}}'kubectl patch pvc $PVC_NAME --subresource='status' --type='merge' -p '{"status":{"allocatedResources":null}}' |
| פעולה |
|
|
יכול להיות שהרישום ביומן של מנהל ההתקן PDCSI יהיה מוגזםיכול להיות שבאשכולות GKE בגרסאות ספציפיות של 1.32 יופיעו הודעות יומן מוגזמות מדרייבר PDCSI. הרישום העודף הזה ינצל את המכסה של Cloud Logging Write API. פתרון עקיף: כדי לצמצם את הרישום המוגזם הזה, אפשר להוסיף מסנן החרגה. כדי לא לכלול את הודעות היומן בהעברה ל-Cloud Logging, משתמשים בשאילתה הבאה:
resource.type="k8s_container"
resource.labels.container_name="gce-pd-driver"
(sourceLocation.file="cache.go" OR "Cannot process volume group")
|
| תפעול |
|
|
תצורות Pod שמנסות לטעון כרכים קבועים של NFS בצמתים של COS שבעבר היה להם טעינה במצב קריאה בלבד (RO) ייטענו רק במצב ROב-GKE מגרסה 1.27 ואילך, אפשר לטעון נפחי NFS באמצעות מנהל התקן ה-CSI של Kubernetes בתוך העץ רק כנפחים קבועים במצב RO אחרי טעינת RO קודמת באותו הצומת. פתרון עקיף: הורדת גרסה של מאגרי צמתים לגרסה שקודמת לגרסאות המושפעות |
| תפעול |
|
פודים שמנסים לטעון נפחי אחסון קבועים של NFS בצמתי Ubuntu לא יוכלו לפעול.ב-GKE מגרסה 1.32 ואילך, לא ניתן לטעון נפחי NFS באמצעות מנהל התקן ה-CSI של Kubernetes בתוך העץ בצמתים של Ubuntu. במקרה כזה, יכול להיות שיופיעו הודעות השגיאה הבאות: "MountVolume.SetUp failed for volume 'nfs-storage' : mount failed: exit status 1" Output: Mount failed: mount failed: exit status 127 "Output: chroot: failed to run command 'mount': No such file or directory failed to run command mount on Ubuntu nodes" בנוסף להודעות השגיאה האלה, לא ניתן יהיה להפעיל את ה-Pods שמשתמשים באמצעי האחסון האלה. פתרון עקיף: הורדת הגרסה של מאגרי הצמתים לגרסה 1.31. |
|
| פעולה | >= 1.28.15-gke.1436000, < 1.28.15-gke.1668000, >= 1.29.12-gke.1040000, < 1.29.13-gke.1028000, >= 1.30.8-gke.1053000, < 1.30.8-gke.1287000, >= 1.31.4-gke.1057000, < 1.31.6-gke.1020000, >= 1.32.0-gke.1281000, < 1.32.1-gke.1369000 |
|
יכול להיות שפודים שמשתמשים בקריאות מערכת שקשורות ל-io_uring ייתקעו במצב Terminating
יכול להיות שפודים שמשתמשים בקריאות מערכת שקשורות ל-io_uring ייכנסו למצב D (המתנה לדיסק), שנקרא גם TASK_UNINTERRUPTIBLE, בגלל באג בליבת לינוקס. אי אפשר להעיר תהליכים במצב D באמצעות אותות, כולל
כש-Pod מושפע מהבעיה הידועה הזו, יכול להיות שהקונטיינרים שלו לא יסיימו את הפעולה בצורה תקינה. ביומנים של containerd, יכול להיות שתראו הודעות חוזרות שדומות להודעה הבאה:
או
התסמינים האלה מצביעים על תהליכים בתוך הקונטיינר שנתקעו במצב שינה שלא ניתן להפריע לו (מצב D), מה שמונע את הסיום התקין של ה-Pod.
עומסי עבודה שמשתמשים ב-io_uring באופן ישיר, או שמשתמשים ב-io_uring באופן עקיף דרך זמן ריצה של שפה כמו NodeJS, עשויים להיות מושפעים מהבעיה הידועה הזו. עומסי העבודה המושפעים כוללים תהליך במצב D (שינה של הדיסק) בקובץ פתרון עקיף: משדרגים את הצמתים באשכול לגרסה קבועה או לגרסה חדשה יותר. |
| פעולה | 1.28, 1.29, 1.30, 1.31 |
|
עומסי עבודה שמשתמשים בסטרימינג של תמונות נכשלים עם שגיאות אימותבאג בתכונה Image streaming עלול לגרום לכשלי עומסי עבודה אם מתקיימים תנאים ספציפיים בזמן שהקונטיינר קורא קבצים. יכול להיות שיופיעו הודעות שגיאה שקשורות לכשלים באימות ביומן של gcfsd.
כדי לבדוק אם הבעיה משפיעה עליכם, מחפשים ביומנים באמצעות שאילתת החיפוש הבאה:
הופעת השגיאות האלה מצביעה על כך שהצמתים מושפעים. אם הבעיה הזו משפיעה עליכם, אתם יכולים לשדרג את מאגרי הצמתים לגרסה של GKE עם תיקון. |
| פעולה |
|
|
שיעורי פינוי גבוהים יותר של Pod בגרסאות GKE 1.30 ו-1.31
בגרסאות מסוימות של GKE 1.30 ו-GKE 1.31 שמשתמשות ב-COS 113 וב-COS 117 בהתאמה, יש ליבות שנבנו עם האפשרות
אפשרות ההגדרה יכול להיות שלא תמיד תראו שיעור חריג של הוצאת Pods כי הבעיה הזו תלויה בדפוס השימוש בזיכרון של עומס העבודה. קיים סיכון גבוה יותר ש-kubelet יסלק את ה-Pods עבור עומסי עבודה שלא הוגדרה להם מגבלת זיכרון בשדה resources. הסיבה לכך היא שעומסי העבודה עשויים לבקש יותר זיכרון ממה ש-kubelet מדווח כזמין. אם אתם רואים שימוש גבוה יותר בזיכרון של אפליקציה אחרי שדרוג לגרסאות GKE שצוינו בלי לבצע שינויים אחרים, יכול להיות שאתם מושפעים מאפשרות הליבה.
כדי לבדוק אם יש שיעורי הוצאה חריגים של Pod, מנתחים את המדדים הבאים באמצעות Metrics Explorer:
אפשר להשתמש בשאילתות PromQL הבאות. מחליפים את הערכים של
max by (pod_name)(max_over_time(kubernetes_io:container_memory_used_bytes{monitored_resource="k8s_container",memory_type="non-evictable",cluster_name="REPLACE_cluster_name",namespace_name="REPLACE_namespace",metadata_system_top_level_controller_type="REPLACE_controller_type",metadata_system_top_level_controller_name="REPLACE_controller_name"}[${__interval}]))
sum by (pod_name)(avg_over_time(kubernetes_io:container_memory_request_bytes{monitored_resource="k8s_container",cluster_name="REPLACE_cluster_name",namespace_name="REPLACE_namespace",metadata_system_top_level_controller_type="REPLACE_controller_type",metadata_system_top_level_controller_name="REPLACE_controller_name"}[${__interval}]))
אם אתם רואים עליות חריגות בשימוש בזיכרון שחורגות מהזיכרון המבוקש, יכול להיות שעומס העבודה נמחק לעיתים קרובות יותר. דרך לעקיפת הבעיהאם אתם לא יכולים לשדרג לגרסאות המתוקנות ואתם מריצים בסביבת GKE שבה אתם יכולים לפרוס Pods עם הרשאות, אתם יכולים להשבית את האפשרות Multi-Gen LRU באמצעות DaemonSet.
אחרי ש-DaemonSet פועל בכל מאגרי הצמתים שנבחרו, השינוי נכנס לתוקף באופן מיידי וחישוב השימוש בזיכרון של kubelet חוזר למצב תקין. |
| פעולה | 1.28, 1.29, 1.30, 1.31 |
|
Pods נתקעים בסטטוס Terminating (הפסקת פעולה)באג בזמן הריצה של הקונטיינר (containerd) עלול לגרום לכך ש-Pods וקונטיינרים ייתקעו בסטטוס Terminating (סיום) עם שגיאות דומות לאלה: OCI runtime exec failed: exec failed: cannot exec in a stopped container: unknown
אם הבעיה הזו משפיעה עליכם, אתם יכולים לשדרג את הצמתים לגרסת GKE עם גרסה קבועה של containerd. |
| פעולה |
|
|
הסטרימינג של התמונה נכשל בגלל קישורים סמלייםבאג בתכונה Image streaming עלול לגרום לכך שמאגרי תמונות לא יופעלו. יכול להיות שלא תצליחו ליצור קונטיינרים שפועלים בצומת עם סטרימינג של תמונות שמופעל בגרסאות ספציפיות של GKE, ותקבלו את השגיאה הבאה: "CreateContainer in sandbox from runtime service failed" err="rpc error: code = Unknown desc = failed to create containerd container: failed to mount [PATH]: too many levels of symbolic links"
פתרון עקיף: כדי לפתור את הבעיה, צריך לשדרג את מאגרי הצמתים לגרסה קבועה (1.35.6-gke.1005000 ואילך, או 1.36.0-gke.2459000 ואילך). אם אי אפשר לשדרג, אפשר לבדוק אם יש שכבות ריקות או שכבות כפולות. אם אתם לא מצליחים להסיר שכבות ריקות או שכבות כפולות, צריך להשבית את הזרמת התמונות. |
| פעולה | 1.27, 1.28, 1.29 |
|
הזרמת התמונות נכשלת בגלל קבצים חסריםבאג בתכונה Image streaming עלול לגרום לכשלים במאגרי תמונות בגלל קובץ או קבצים חסרים. יכול להיות שקונטיינרים שפועלים בצומת עם סטרימינג של תמונות שמופעל בגרסאות הבאות לא יתחילו לפעול או יפעלו עם שגיאות שמציינות שקבצים מסוימים לא קיימים. דוגמאות לשגיאות כאלה:
אם הבעיה הזו משפיעה עליכם, אתם יכולים להשבית את הסטרימינג של התמונות. |
| Networking,שדרוגים ועדכונים | 1.28 |
שגיאה בהגדרת TLS של שערזיהינו בעיה בהגדרת TLS לשערי כניסה באשכולות שמופעלת בהם גרסת GKE 1.28.4-gke.1083000. הדבר משפיע על הגדרות TLS שמשתמשות ב-SSLCertificate או ב-CertificateMap. אם משדרגים אשכול עם שערים קיימים, העדכונים שבוצעו בשער ייכשלו. במקרה של שערים חדשים, מאזני העומסים לא יוקצו. הבעיה הזו תיפתר בגרסת תיקון (patch) של GKE 1.28 שתצא בקרוב. |
|
| שדרוגים ועדכונים | 1.27 | גרסה 1.27.8 ואילך |
בעיה בתוסף של מכשיר GPU
יכול להיות שיהיו בעיות בתוספים של מכשירי ה-GPU בצמתים (
|
| פעולה | 1.27,1.28 |
|
השינוי האוטומטי של נפח האחסון לכל עומסי העבודה מפסיק
יכול להיות שהתכונות HorizontalPodAutoscaler (HPA) ו-VerticalPodAutoscaler (VPA) יפסיקו את ההתאמה האוטומטית של כל עומסי העבודה באשכול אם הוא מכיל אובייקטים של פתרון עקיף:
כדי לתקן אובייקטים של
מידע נוסף על הגדרת אובייקטים של |
| פעולה | 1.28,1.29 |
|
פריסת התכונה 'זיהוי איומים בקונטיינר' נכשלתיכול להיות שפריסת התכונה 'זיהוי איומים בקונטיינרים' באשכולות Autopilot שפועלות בהם הגרסאות הבאות של GKE תיכשל:
|
| Networking, Upgrades | 1.27, 1.28, 1.29, 1.30 |
|
בעיות בקישוריות של
|
| Networking | 1.31, 1.32 |
|
תנועת UDP פגומה בין Pods שפועלים באותו צומתבאשכולות שבהם הגישה לנתונים בתוך הצומת מופעלת, יכול להיות שתעבורת ה-UDP בין ה-Pods שפועלים באותו צומת תיפסק. הבעיה מתרחשת כשמשדרגים את הצומת של אשכול GKE לגרסה אחת מהגרסאות הבאות של GKE, או כשיוצרים אותו עם אחת מהגרסאות האלה:
הנתיב שמושפע הוא תנועת UDP מ-Pod ל-Pod באותו צומת דרך Hostport או Service. רזולוציה משדרגים את האשכול לאחת מהגרסאות המתוקנות הבאות:
|
| פעולה | 1.29,1.30,1.31 |
|
אי התאמה בין Ray Operator לבין הצפנת מסד נתונים ב-Cloud KMSחלק מהגרסאות של Ray Operator לא תואמות להצפנת מסד נתונים ב-Cloud KMS. פתרונות עקיפים: משדרגים את רמת הבקרה של האשכול לגרסה מתוקנת או לגרסה חדשה יותר. |
| שדרוגים ועדכונים | 1.30, 1.31 |
|
Pod של GPU Maintenance Handler תקוע במצב CrashLoopBackOffבגלל הבעיה הזו, תרמילי gpu-maintenance-handler תקועים במצב CrashLoopBackOff בצמתים המתאימים. המצב הזה מונע את הוספת התווית upcoming maintenance (תחזוקה בקרוב) לצומתי GKE, ויכול להשפיע על תהליכי ניקוז הצמתים והוצאת הפודים מעומסי העבודה.
"Node upcoming maintenance label not applied due to error: Node "gke-yyy-yyy" is invalid: metadata.labels: Invalid value: "-62135596800": a valid label must be an empty string or consist of alphanumeric characters, '-','' or '.', and must start and end with an alphanumeric character (e.g.'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9.]*)?[A-Za-z0-9])?')"
אם הבעיה הזו משפיעה עליכם, תוכלו לפתור אותה על ידי שדרוג מישור הבקרה לגרסת GKE שכוללת את התיקון. |
| פעולה | 1.33.1-gke.1522000 ואילך | 1.33.4-gke.1142000 ואילך |
הפעלת הפודים בצמתים עם סטרימינג של תמונות נכשלת
בצמתים שבהם מופעלת הזרמת תמונות, יכול להיות שעומסי עבודה לא יתחילו לפעול
עם חתימת השגיאה הבאה:
יומני יציאה טורית של צומת מושפע מכילים גם את חתימת השגיאה הבאה:
הנוכחות של שני חתימות השגיאה האלה מצביעה על מצב של קיפאון באחד מרכיבי הזרמת התמונות. הקיפאון הזה מונע הפעלה תקינה של ה-Pods. הפחתת הסיכון: כדי לצמצם את הסיכון במהירות, מפעילים מחדש את הצומת. שימו לב: יכול להיות שהצומת שהופעל מחדש עדיין ייתקל שוב במצב של חסימה הדדית. כדי להקטין את הסיכון בצורה משמעותית, משביתים את הזרמת התמונות במאגר הצמתים באמצעות הפקודה הבאה: gcloud container node-pools update NODE_POOL_NAME --cluster CLUSTER_NAME --no-enable-image-streaming |
| פעולה |
|
|
Custom ComputeClasses עם
|
המאמרים הבאים
אם לא מצאתם פתרון לבעיה שלכם במסמכים, תוכלו להיעזר בקבלת תמיכה, כולל עצות בנושאים הבאים:
- פתיחת בקשת תמיכה באמצעות פנייה אל Cloud Customer Care.
- קבלת תמיכה מהקהילה על ידי פרסום שאלות ב-StackOverflow ושימוש בתג
google-kubernetes-engineכדי לחפש בעיות דומות. אתם יכולים גם להצטרף לערוץ Slack#kubernetes-engineכדי לקבל תמיכה נוספת מהקהילה. - פתיחת דיווחים על בעיות או בקשות למאפיינים חדשים באמצעות הכלי הציבורי למעקב אחר בעיות.