כשלים במהלך היצירה של אשכול Google Kubernetes Engine (GKE) יכולים למנוע מכם להקצות את התשתית הנדרשת. סיבות נפוצות לכשלים הן הפרות של כללי מדיניות הארגון constraints/compute.vmExternalIpAccess או constraints/compute.restrictVpcPeering. בדף הזה מוסבר איך לפתור בעיות ביצירת אשכולות שנגרמות בגלל כללי מדיניות הארגון האלה.
המידע הזה חשוב למנהלים ולמפעילים של פלטפורמות, או למשתמשים אחרים שאחראים ליצירה ולניהול של אשכולות GKE בארגון ב-Google Cloud . מידע נוסף על התפקידים הנפוצים ודוגמאות למשימות שאנחנו מתייחסים אליהן בתוכן שלGoogle Cloud זמין במאמר תפקידים ומשימות נפוצים של משתמשי GKE.
לבעיות כלליות באשכול Kubernetes, ראו פתרון בעיות באשכולות במסמכי התיעוד של Kubernetes.
שגיאה: הפרה של האילוץ constraints/compute.vmExternalIpAccess
כשמנסים ליצור אשכול GKE ציבורי, יכולה להופיע שגיאה דומה לזו:
Constraint constraints/compute.vmExternalIpAccess violated for project
הבעיה משפיעה רק על אשכולות GKE ציבוריים, כולל אשכולות GKE Autopilot.
כשיוצרים אשכולות GKE ציבוריים, למכונות הווירטואליות הבסיסיות של Compute Engine שמרכיבות את צומתי העובדים של האשכול הזה, מוקצות כתובות IP חיצוניות.
אם מגדירים את האילוץ constraints/compute.vmExternalIpAccess של מדיניות הארגון לערך Deny All, או להגבלת כתובות IP חיצוניות למכונות וירטואליות ספציפיות ברמת הארגון, התיקייה או הפרויקט, המדיניות מונעת מצומתי ה-worker של GKE לקבל כתובות IP חיצוניות, וכתוצאה מכך יצירת האשכול נכשלת.
כדי למצוא את היומנים של פעולת יצירת האשכול, אפשר לעיין ביומני הביקורת של פעולות אשכולות GKE באמצעות Logs Explorer, עם שאילתת חיפוש דומה לזו:
resource.type="gke_cluster"
logName="projects/test-last-gke-sa/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.methodName="google.container.v1beta1.ClusterManager.CreateCluster"
resource.labels.cluster_name="CLUSTER_NAME"
resource.labels.project_id="PROJECT_ID"
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול שלא נוצר. PROJECT_ID: מזהה הפרויקט.
כדי לפתור את הבעיה, ודאו שהמדיניות בפועל לאילוץ constraints/compute.vmExternalIpAccess היא Allow All בפרויקט שבו אתם מנסים ליצור אשכול ציבורי ב-GKE. למידע נוסף על העבודה עם האילוץ הזה, ראו הגבלת כתובות IP חיצוניות למכונות וירטואליות ספציפיות.
אחרי שמגדירים את האילוץ לערך Allow All, מוחקים את האשכול שנכשל ויוצרים אשכול חדש. הפעולה הזו נדרשת כי אי אפשר לתקן את האשכול שנכשל.
שגיאה: הפרה של האילוץ constraints/compute.restrictVpcPeering
יכול להיות שתופיע שגיאה דומה לזו כשמנסים ליצור אשכול GKE פרטי שמשתמש ב-VPC Network Peering כדי לחבר את רשת ה-VPC לפרויקט מישור הבקרה שמנוהל על ידי Google:
Constraint constraints/compute.restrictVpcPeering violated for project
אם מגדירים את אילוץ מדיניות הארגון constraints/compute.restrictVpcPeering בארגון, בתיקייה או בפרויקט שבבעלותם רשת ה-VPC של האשכול, המדיניות חוסמת את GKE מקישור (peering) של רשת ה-VPC של מישור הבקרה עם רשת ה-VPC שלכם, אלא אם היררכיית היצרן בניהול Google מותרת.
כדי לפתור את הבעיה, אפשר להשתמש באחת מהאפשרויות הבאות:
- יצירת אשכול שמשתמש ב-Private Service Connect לקישוריות של מישור הבקרה במקום ב-VPC Network Peering.
- מעדכנים את המדיניות
constraints/compute.restrictVpcPeeringבפרויקט, בתיקייה או בארגון שבבעלותם רשת ה-VPC של האשכול, כדי להוסיף את הארגון של הבעלים של השירות המנוהל של Google (under:organizations/433637338589) לשדהallowedValues.
אחרי שמעדכנים את מדיניות הארגון, מוחקים את האשכול שנכשל ויוצרים אשכול חדש.
המאמרים הבאים
אם לא מצאתם פתרון לבעיה במסמכי התיעוד, תוכלו לקבל עזרה נוספת במאמר קבלת תמיכה, כולל עצות בנושאים הבאים:
- לפתוח בקשת תמיכה באמצעות פנייה ל-Cloud Customer Care.
- לקבל תמיכה מהקהילה על ידי פרסום שאלות ב-StackOverflow ושימוש בתג
google-kubernetes-engineכדי לחפש בעיות דומות. אתם יכולים גם להצטרף לערוץ Slack של#kubernetes-engineכדי לקבל תמיכה מהקהילה. - דיווח על בעיות או שליחת בקשות להוספת תכונות באמצעות הכלי הציבורי למעקב אחר בעיות.