פתרון בעיות ביצירת אשכול

כשלים במהלך היצירה של אשכול 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.

אחרי שמעדכנים את מדיניות הארגון, מוחקים את האשכול שנכשל ויוצרים אשכול חדש.

המאמרים הבאים