בדף הזה מפורטות בעיות מוכרות ב-GKE. הדף הזה מיועד לאדמינים ולארכיטקטים שמנהלים את מחזור החיים של תשתית הטכנולוגיה הבסיסית, ומגיבים להתראות ולדפים כשהיעדים ברמת השירות (SLO) לא מתקיימים או כשהאפליקציות נכשלות.
בדף הזה מפורטות בעיות מוכרות בכל הגרסאות הנתמכות ובשתי גרסאות המשנה שקודמות לגרסה המוקדמת ביותר בתמיכה מורחבת. אחרי שגרסה מגיעה לסוף התמיכה המורחבת, כל הבעיות ב-N-2 מוסרות. לדוגמה, כשגרסה 1.30 מגיעה לסוף התמיכה המורחבת, הבעיות הידועות שספציפיות לגרסאות 1.28 ומטה מוסרות.
אם אתם משתתפים ב-Google Developer Program, שמרו את הדף הזה כדי לקבל התראות כשמתפרסמים נתוני גרסה שקשורים לדף הזה. מידע נוסף זמין במאמר דפים שמורים.
כדי לסנן את הבעיות הידועות לפי גרסת מוצר או קטגוריה, בוחרים את המסננים מהתפריטים הנפתחים הבאים.
בוחרים את גרסת GKE:
בוחרים את קטגוריית הבעיה:
אפשר גם לחפש את הבעיה:
| קטגוריה | הגרסאות שזוהו | גרסאות מתוקנות | הבעיה והפתרון העקיף |
|---|---|---|---|
| שדרוגים ועדכונים |
|
עומסי העבודה של Agent Sandbox נכשלים אחרי שדרוג האשכול
התוסף Agent Sandbox ( פתרון עקיף:
לפני שמשדרגים את מישור הבקרה של האשכול לגרסה 1.36.3-gke.1767000 ואילך, צריך להעביר את המניפסטים ועומסי העבודה של Agent Sandbox מ- |
|
| פעולה |
|
|
בקשות HTTP POST לטוקנים משרת המטא-נתונים נכשלות עם השגיאה 400 Bad Request
עומסי עבודה שמשתמשים באיחוד זהויות של עומסי עבודה ל-GKE כדי לאמת את ממשקי ה-API של Cloud de Confiance על ידי בקשה של טוקני גישה או אסימוני זהות של חשבון שירות משרת המטא-נתונים של GKE (כמו
הבעיה הזו מתרחשת כשאפליקציה, ספריית לקוח או API Gateway שולחים בקשת HTTP כדי לפתור את הבעיה, שדרגו לגרסה האחרונה עם התיקון בגרסה המשנית של כל ערוץ הפצה. פתרון עקיף:
כדי לפתור את הבעיה, צריך להגדיר את האפליקציה, את ספריית הלקוח או את API Gateway כך שישתמשו ב-method curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token"
אם עומס העבודה משתמש ב-SDK או בשער של צד שלישי (כמו MuleSoft Flex Gateway, IBM App Connect או סקריפטים מותאמים אישית של HTTP) ששולחים כברירת מחדל בקשות |
| שדרוגים ועדכונים |
|
TBD |
פודים שלא תזמנו ומכסות שנוצלו במהלך שדרוגים קלים בשני שלבים של מישור הבקרה.
במהלך שדרוגים של שתי גרסאות משניות למישורי בקרה באשכולות Autopilot שמשתמשים בפודים עם משך זמן מורחב, יכול להיות שמאגרי צמתים חדשים יוקצו באמצעות גרסת הצומת הקודמת. המידרוג האוטומטי של האשכול בודק את הצמתים החדשים שהוקצו מול הגרסה המשודרגת של מישור הבקרה, מזהה חוסר התאמה בגרסאות ומחיל את ה-taint ההתנהגות הזו מונעת תזמון של Pods ומפעילה לולאת התאמה אינסופית. במקום להגדיל את מאגר הצמתים הקיים, הקצאת צמתים אוטומטית יוצרת מאגר חדש של צומת יחיד בכל איטרציה של הגדלה, כדי להתאים לעומסי העבודה הממתינים. הלולאה הזו יוצרת מאות מאגרי צמתים ריקים נפרדים, שבסופו של דבר יכולים למצות את המכסות של קבוצות מופעי המכונה המנוהלים באזור. פתרון עקיף: כדי לפתור את בעיית הלולאה של שינוי קנה המידה, משלימים באופן ידני את השדרוג של מישור הבקרה באמצעות הפקודה הבאה: לחלופין, אפשר להחיל את ה-toleration הבא על עומסי העבודה המושפעים כדי שיהיה אפשר לתזמן אותם בצמתים של הגרסה הקודמת: |
| פעולה | 1.37.0-gke.2941000 ואילך | 1.37.1-gke.1131000 |
צמתים שמתקינים אמצעי אחסון של 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, שדרגו לאחור לגרסה 1.36 את מאגרי הצמתים שבהם מותקנים אמצעי אחסון של NFS. מגדירים החרגה מתחזוקה כדי ש-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 ( הפתרון: משדרגים כל אשכול ומאגר צמתים שהושפעו לגרסה מתוקנת. 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 יחיל אותם מחדש באופן אוטומטי. כדי לנקות את התוויות וה-taints, מריצים את הפקודות הבאות: 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 לא משתמש בכרטיסי רשת משניים בצמתים עם כמה כרטיסי רשתבצומתי GKE עם כמה כרטיסי רשת (NIC), מנהל ההתקן של Managed Lustre CSI מופעל כברירת מחדל כדי להשתמש בכל כרטיסי הרשת הזמינים לצבירת רוחב פס על ידי פיזור תעבורת האחסון של TCP בין ממשקי הרשת. עם זאת, בגלל בעיה ידועה, יכול להיות שלקוחות Lustre מגרסה פתרון עקיף: אם עומסי העבודה שלכם דורשים צבירת רוחב פס של כמה כרטיסי רשת (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 ואילך |
ה-shim של gVisor לא מצליח לנקות, ומתעד את השגיאה
|
| פעולה | 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 משתמש ב-Operator identity-management-mode, שדורש שלכל הסוכנים ול-Operator תהיה תצוגה מסונכרנת של תוויות שרלוונטיות לזהות. החל מגרסה 1.35.0-gke.2232000 של GKE, תוויות פתרון עקיף:
|
| שדרוגים ועדכונים |
|
|
עיכובים בתזמון Pod בצמתים חדשים כשמדיניות הרשת ב-Kubernetes של Calico מופעלת
באשכולות GKE שבהם מופעלת מדיניות רשת ב-Kubernetes של Calico, רגרסיה בגרסאות המושפעות עלולה לגרום לעיכובים משמעותיים בתזמון Pod בצמתים חדשים או בצמתים שנוצרו מחדש.
העיכובים האלה יכולים לגרום לצמתים להישאר במצב הבעיה נגרמת כי הסקריפט לטעינה בזמן ההפעלה של Calico CNI לא מעצב נכון את כתובת ה-URL של שרת ה-API של Kubernetes לכתובות IPv4, ומוסיף להן סוגריים מרובעים ([]). הגישה הזו מובילה לשגיאה בניתוח של כתובת ה-URL כשיוצרים ארגזי חול חדשים של Pod, שמופיעה ביומני `kubelet`:
פתרון עקיף: גרסת הרכיב של Calico נקבעת לפי גרסת מישור הבקרה של האשכול. כדי לפתור את הבעיה, צריך לשדרג את מישור הבקרה של האשכול לאחת מהגרסאות המתוקנות. אחרי שמשדרגים את מישור הבקרה, צריך ליצור מחדש את הצמתים במאגרי הצמתים כדי לוודא שהם משתמשים בפורמט הנכון של כתובת ה-URL של שרת ה-API של Kubernetes. כדי לעשות את זה, אתם יכולים לשדרג את מאגר הצמתים לאותה גרסה או לגרסה חדשה יותר, או ליצור מחדש את מאגרי הצמתים באופן ידני. |
| ביצועים |
|
|
ירידה בביצועים של רשתות למטרות כלליות במכונות מסוג A series ו-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 ואילך. למאגרי צמתים של 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, יכול להיות שלא תצליחו לתזמן עומסי עבודה חדשים. פתרון עקיף: כדי להגביל את המספר הכולל של הזהויות, אל תוסיפו לפודים תוויות עם מספר גדול של ערכים ייחודיים. מידע נוסף זמין במסמכי התיעוד הבאים של Cilium: צריך לבצע שדרוגים ידניים מגרסאות 1.34.3-gke.1208000 ואילך. אם מתחילים את השדרוג מגרסה שקודמת ל-1.34.3-gke.1208000, יכול להיות שיהיו בעיות זמניות בתזמון Pod במהלך תהליך השדרוג. |
| שדרוגים |
|
צריך גם להשתמש בגרסה 3.1.9 ואילך של תוכנת ההתקנה של GPUDirect-TCPX ובגרסה 2.0.12 ואילך של ה-sidecar. גרסאות ההתקנה וה-sidecar ממופות באופן של אחד לאחד וצריכות להתאים. לדוגמה, גרסה 3.1.12 של תוכנת ההתקנה של GPUDirect-TCPX תואמת לגרסה 2.0.15 של ה-sidecar. למידע נוסף על גרסאות של תוכנת ההתקנה ו-sidecar, קראו את נתוני הגרסה של GPUDirect-TCPX. |
GPUDirect-TCPX לא זמין עם A3 High בגרסאות ספציפיות של GKEבאשכולות GKE עם צומתי A3 High ( סוגי מכונות אחרים של GPU מסוג A3 High ( הפתרון: כדי לפתור את הבעיה, צריך לשדרג לגרסאות התיקון של GKE. במאמרים הגדלת רוחב הפס של רשת ה-GPU באשכולות Standard והגדלת רוחב הפס של רשת ה-GPU באשכולות Autopilot מוסבר איך מגדירים ומשדרגים מאגרי צמתים באמצעות GPUDirect-TCPX. כשמריצים בדיקות NCCL בגרסאות קבועות, יכול להיות שיופיעו האזהרות הבאות, שלא משפיעות על הביצועים או על הפונקציונליות:
|
| פעולה | כל הגרסאות שלפני 1.34.0-gke.2285000 | 1.34.0-gke.2285000 ואילך |
הקיבולת המינימלית של המכונות עודכנההקיבולת המינימלית של מכונות Managed Lustre עודכנה ל-9,000GiB. באשכולות שפועלים בגרסאות שקודמות ל-1.34.0-gke.2285000, אי אפשר ליצור מכונות עם הקיבולת המינימלית הזו באמצעות מנהל ההתקן של Managed Lustre CSI. פתרון עקיף: כדי ליצור מכונות של Managed Lustre עם קיבולת מינימלית של 9,000GiB, צריך לשדרג את גרסת האשכול ל-1.34.0-gke.2285000 ואילך. |
| פעולה | כל הגרסאות | TBD |
אי אפשר לערוך את ממשק המשתמש של מסוףCloud de Confiance במהלך תיקון אוטומטי של צומתכשצומת GKE עובר תיקון אוטומטי, אי אפשר לערוך את מאגר הצמתים דרך מסוף Cloud de Confiance בגלל פעולה שמתבצעת. פתרון עקיף: עדיין אפשר לערוך את ההגדרות של מאגר הצמתים באמצעות פקודות ב-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 ייכשלו עם שגיאת קלט/פלט. פתרון עקיף: מוסיפים באופן זמני הגדרה ספציפית של קובץ צדדי של תמונה למניפסט של ה-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 מידע נוסף מופיע במניפסט של Pod בקטע הגדרת קובץ אימג' פרטי לקונטיינר המשני (sidecar). אחרי שמשדרגים את האשכול לגרסת GKE קבועה או לגרסה מאוחרת יותר, צריך להסיר את כל הבלוק |
| רישום ביומן ומעקב | כל הגרסאות | TBD |
מרוץ תהליכים ב-DaemonSets של
|
| שדרוגים | 1.33 | 1.33.2-gke.1043000 |
מגבלה נמוכה יותר של קבצים פתוחים ב-containerd 2.0במאגרי צמתים שפועלים ב-GKE בגרסה 1.33, שמשתמשת ב-containerd 2.0, הגבול הרך שמוגדר כברירת מחדל לקבצים פתוחים ( זהו שינוי ב-containerd עצמו (ראו containerd PR #8924) שבו עומסי עבודה שמצפים למגבלה גמישה גבוהה יותר כברירת מחדל (לדוגמה, כאלה שמסתמכים באופן משתמע על ברירת המחדל הגבוהה יותר הקודמת) עלולים להיכשל, למשל עם שגיאות הפתרון: שדרוג מגרסת תיקון קודמת של 1.33 לגרסה 1.33.2-gke.1043000 ואילך. פתרון עקיף: כדי להגדיל את מכסת הקבצים הפתוחים בעומסי העבודה, אפשר להשתמש באחת מהשיטות הבאות:
|
| שדרוגים | 1.31.5-gke.1169000, 1.32.1-gke.1376000 | thought 1.31.7-gke.1164000, 1.32.3-gke.1512000 |
CRD status.storedVersions לא תקין ל-CRD מנוהליםיכול להיות שבחלק מה-CRD שמנוהלים על ידי GKE יש שדה הבעיה הזו משפיעה על אשכולות שעונים על שני התנאים הבאים:
פתרון עקיף: הפתרון המומלץ הוא לדחות את השדרוגים של האשכולות עד שהבעיה תיפתר. לחלופין, אם אתם יודעים שהאשכול מכיל גרסאות לא נתמכות של אובייקטים מסוג CRD, אתם יכולים להוסיף את הגרסאות האלה לשדה |
| תפעול, רישום ביומן ומעקב | 1.32.2-gke.1652000, 1.31.6-gke.1221000, 1.30.10-gke.1227000 |
|
מדדים חסרים או שהמידרוג האוטומטי של עומס העבודה לא משתנהיכול להיות שיהיו פערים בנתוני המדדים בגרסאות המושפעות אחרי שגודל האשכול יגדל ביותר מחמישה צמתים. הבעיה הזו יכולה להשפיע גם על פעולות של התאמה אוטומטית לעומס. הבעיה משפיעה רק על אשכולות ששודרגו לגרסאות המושפעות. אשכולות חדשים שנוצרו אמורים לפעול כצפוי. פתרון עקיף: אם הבעיה משפיעה עליכם, אתם יכולים לשדרג לאחור לגרסה קודמת עם תיקון או לשדרג לגרסאות החדשות יותר עם התיקון. |
| פעולה |
מגבלות הגודל והחיבור של Google Cloud Hyperdiskבדרך כלל, פוד שלא ניתן לתזמן בגלל מגבלות של volume attachment של צומת, מפעיל הקצאת משאבים אוטומטית של צומת חדש. כשמריצים עומסי עבודה שמשתמשים במוצר Hyperdisk, והם מתוזמנים לצומת שמריץ מכונה וירטואלית מסוג C3, לא מתבצעת הקצאת צמתים אוטומטית וה-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 is OOMKilled on TPU/GPU nodesבצומתי TPU של GKE (לדוגמה פתרון עקיף: אם אתם רואים אירועים מסוג |
|
| פעולה |
|
|
שינוי גודל של נפח אחסון עלול להיתקע בגלל סטטוס 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")
|
| תפעול |
|
|
פודים שמנסים לטעון אמצעי אחסון קבועים של 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 |
|
יכול להיות ש-Pods שמשתמשים בקריאות מערכת שקשורות ל-io_uring ייתקעו במצב Terminating
פודים שמשתמשים בקריאות מערכת שקשורות ל-io_uring עשויים להיכנס למצב D (שינה של הדיסק), שנקרא גם TASK_UNINTERRUPTIBLE, בגלל באג בליבת Linux. אי אפשר להעיר תהליכים במצב D באמצעות אותות, כולל
כשהבעיה הידועה הזו משפיעה על Pod, יכול להיות שהקונטיינרים שלו לא יסיימו את הפעולה שלהם באופן תקין. ביומני containerd, יכול להיות שתראו הודעות חוזרות כמו:
או
התסמינים האלה מצביעים על תהליכים בתוך הקונטיינר שנתקעו במצב שינה שלא ניתן להפריע לו (מצב D), מה שמונע את הסיום התקין של ה-Pod.
עומסי עבודה שמשתמשים ב-io_uring באופן ישיר, או שמשתמשים ב-io_uring באופן עקיף דרך סביבת זמן ריצה של שפה כמו NodeJS, עשויים להיות מושפעים מהבעיה הידועה הזו. בעומסי עבודה שמושפעים מהבעיה, יש תהליך במצב D (שינה של הדיסק) בקובץ פתרון עקיף: לשדרג את צומתי האשכול לגרסה המתוקנת או לגרסה חדשה יותר. |
| פעולה | 1.28, 1.29, 1.30, 1.31 |
|
עומסי עבודה שמשתמשים בסטרימינג של תמונות נכשלים בגלל שגיאות אימותבאג בתכונה "סטרימינג של קובצי אימג'" עלול לגרום לכשל בעומסי העבודה, אם מתקיים סט של תנאים ספציפיים בזמן שהקונטיינר קורא קבצים. יכול להיות שהודעות שגיאה שקשורות לכשלים באימות יופיעו ביומן של gcfsd.
כדי לבדוק אם הבעיה משפיעה עליכם, חפשו ביומנים באמצעות שאילתת החיפוש הזו:
השגיאות האלה מצביעות על כך שהצמתים מושפעים. אם הבעיה משפיעה עליכם, אתם יכולים לשדרג את מאגרי הצמתים לגרסה מתוקנת של GKE. |
| פעולה |
|
|
שיעורי פינוי Pod מוגברים בגרסאות 1.30 ו-1.31 של GKE
בחלק מהגרסאות של GKE 1.30 ו-GKE 1.31 שמשתמשות ב-COS 113 וב-COS 117, בהתאמה, יש ליבות (kernels) שנבנו עם האפשרות
אפשרות ההגדרה יכול להיות שלא תמיד תראו שיעור פינוי פודים חריג, כי הבעיה הזו תלויה בדפוס השימוש בזיכרון של עומס העבודה. יש סיכון גבוה יותר שה-kubelet יפנה Pods של עומסי עבודה שלא הוגדרה להם מגבלת זיכרון בשדה המשאבים. הסיבה לכך היא שעומסי העבודה עשויים לבקש יותר זיכרון ממה שזמין לפי הדיווח של 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 |
|
פודים שנתקעו בסטטוס Terminating (בסיום)באג בסביבת זמן הריצה של הקונטיינר (containerd) עלול לגרום לפודים ולקונטיינרים להיתקע בסטטוס Terminating, עם שגיאות שדומות לשגיאה הבאה: OCI runtime exec failed: exec failed: cannot exec in a stopped container: unknown
אם הבעיה משפיעה עליכם, אתם יכולים לשדרג את הצמתים לגרסת GKE עם גרסה מתוקנת של containerd. |
| פעולה |
|
|
העברת התמונות נכשלת בגלל קישורים סמלייםבאג בתכונה "סטרימינג של קובצי אימג'" עלול לגרום לכך שהקונטיינרים לא יופעלו. יכול להיות שקונטיינרים שפועלים בצומת עם סטרימינג של קובצי אימג' שמופעל בגרסאות ספציפיות של 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 |
|
העברת התמונה נכשלה בגלל קבצים חסריםבאג בתכונה "סטרימינג של תמונות" עלול לגרום לכשל בקונטיינרים בגלל קובץ או קבצים חסרים. יכול להיות שקונטיינרים שפועלים בצומת עם סטרימינג של תמונות שמופעל בגרסאות הבאות לא יתחילו לפעול, או שיפעלו עם שגיאות שמודיעות שקבצים מסוימים לא קיימים. הנה כמה דוגמאות לשגיאות כאלה:
אם הבעיה משפיעה עליכם, אתם יכולים להשבית את הסטרימינג של קובצי אימג'. |
| רשתות,שדרוגים ועדכונים | 1.28 |
שגיאה בהגדרת ה-TLS של השערזיהינו בעיה בהגדרת TLS לשערים באשכולות שבהם פועלת גרסת GKE 1.28.4-gke.1083000. השינוי משפיע על הגדרות TLS שמשתמשות ב-SSLCertificate או ב-CertificateMap. אם משדרגים אשכול עם שערים קיימים, העדכונים שבוצעו בשער ייכשלו. בשערי כניסה חדשים, מאזני העומסים לא יוקצו. הבעיה הזו תתוקן בגרסת תיקון עתידית של GKE 1.28. |
|
| שדרוגים ועדכונים | 1.27 | 1.27.8 ואילך |
בעיה בפלאגין של מכשיר GPU
באשכולות שפועלים בהם מעבדי GPU ושודרגו מגרסה 1.26 לגרסת תיקון 1.27 שקודמת ל-1.27.8, יכולות להיות בעיות בפלאגינים של מכשירי ה-GPU בצמתים (
|
| פעולה | 1.27,1.28 |
|
ההתאמה האוטומטית לעומס (autoscaling) של כל עומסי העבודה נפסקת
יכול להיות שהתכונות HorizontalPodAutoscaler (HPA) ו-VerticalPodAutoscaler (VPA) יפסיקו את ההתאמה האוטומטית לעומס של כל עומסי העבודה באשכול, אם הוא מכיל אובייקטים של פתרון עקיף:
כדי לתקן אובייקטים של
מידע נוסף על הגדרת אובייקטים של |
| פעולה | 1.28,1.29 |
|
פריסת זיהוי האיומים בקונטיינר נכשלהיכול להיות שהפריסה של "זיהוי איומים בקונטיינר" תיכשל באשכולות Autopilot שפועלות בהם גרסאות GKE הבאות:
|
| רשתות, שדרוגים | 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 |
|
פוד של GPU Maintenance Handler תקוע במצב CrashLoopBackOffבבעיה הזו, פודים של gpu-maintenance-handler תקועים במצב CrashLoopBackOff בצמתים המתאימים שלהם. המצב הזה מונע את החלת התווית `upcoming maintenance` על צומתי GKE, מה שיכול להשפיע על תהליכי ניקוז הצמתים ופינוי ה-Pod של עומסי העבודה.
"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 |
| פעולה |
|
|
ComputeClasses בהתאמה אישית עם
|
המאמרים הבאים
אם לא מצאתם פתרון לבעיה במאמרים, תוכלו לקרוא את המאמר קבלת תמיכה כדי לקבל עזרה נוספת, כולל עצות בנושאים הבאים:
- לפתוח בקשת תמיכה באמצעות פנייה ל-Cloud Customer Care.
- לקבל תמיכה מהקהילה על ידי פרסום שאלות ב-StackOverflow ושימוש בתג
google-kubernetes-engineכדי לחפש בעיות דומות. אתם יכולים גם להצטרף לערוץ Slack של#kubernetes-engineכדי לקבל תמיכה מהקהילה. - דיווח על בעיות או שליחת בקשות להוספת תכונות באמצעות הכלי הציבורי Issue Tracker.