כדי לוודא שהמדיניות והתצורה יסונכרנו באופן אמין בכל הסביבות, חשוב לתכנן את הגדרת אשכול Google Kubernetes Engine (GKE) לפני שמתקינים את "סנכרון תצורות". האשכולות צריכים לעמוד בדרישות ספציפיות לגבי מצב הפעולה של האשכול, רישום הצי, הרשאות ניהול זהויות והרשאות גישה (IAM), גרסאות הפלטפורמה, אימות, רשתות וארכיטקטורת צמתים.
לשיטות מומלצות כלליות לתכנון אשכולות GKE, קראו את המאמר מידע על אפשרויות להגדרת אשכולות.
בחירת מצב הפעולה של GKE
סנכרון ההגדרות תומך באשכולות GKE במצב Autopilot ובמצב Standard.
כדי לבחור את מצב הפעולה המתאים, קראו את המאמר מצבי הפעולה של GKE.
רישום האשכולות ל-fleet
כדי להשתמש בסנכרון ההגדרות, צריך לרשום את האשכולות ל-fleet.
אם אתם מתכננים להתקין ולהגדיר את סנכרון תצורות באמצעות מסוף Google Cloud , אתם יכולים לרשום את האשכול בזמן שאתם מתקינים את סנכרון תצורות.
אחרת, תצטרכו לרשום את האשכול ל-fleet לפני שתפעילו את סנכרון תצורות.
מתן ההרשאות הנדרשות
כדי להשתמש בסנכרון ההגדרות צריך לרשום את האשכולות ל-fleet, ולכן יכול להיות שתצטרכו הרשאות נוספות כשאתם מתקינים את סנכרון ההגדרות.
כדי לקבל את ההרשאות שנדרשות לרישום אשכולות ל-fleet, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של Fleet (לשעבר אדמין של GKE Hub) (roles/gkehub.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
משאבים נדרשים במצב אוטומטי
במצב Autopilot של GKE, בקשות המשאבים משתנות באופן אוטומטי כדי לשמור על היציבות של עומס העבודה. כדי להבין איך לתכנן את הבקשות האלה, עיינו במסמכי התיעוד של GKE בנושא בקשות למשאבים ב-Autopilot.
בגלל האופן שבו Autopilot משנה את הבקשות למשאבים, סנכרון ההגדרות מבצע את השינויים הבאים:
- התאמת מגבלות ביטול המשאבים שצוינו על ידי המשתמשים כך שיתאימו לבקשות.
- ההגדרות יוחלפו רק אם יש בקשה אחת או יותר למשאבים שהיא גבוהה מהפלט המותאם המתאים שהוצהר בהערה, או אם יש בקשות למשאבים שהן נמוכות מהקלט המתאים שהוצהר בהערה.
גרסאות ופלטפורמות נתמכות של GKE
כדי להשתמש בסנכרון ההגדרות, האשכול צריך להיות בגרסה נתמכת של GKE.
איחוד זהויות של עומסי עבודה ל-GKE
איחוד זהויות של עומסי עבודה ל-GKE הוא הדרך המומלצת להתחבר באופן מאובטח לשירותי Google Cloud. איחוד זהויות של עומסי עבודה ל-GKE מופעל כברירת מחדל באשכולות Autopilot.
אם אתם רוצים להשתמש בחבילות Fleet עם סנכרון תצורות, אתם צריכים להשתמש באיחוד זהויות של עומסי עבודה ל-GKE.
אם התקנתם את סנכרון תצורות באשכולות שמחוברים ל-GKE, אתם לא יכולים להשתמש ב-Active Directory עם איחוד זהויות של עומסי עבודה (WIF). המגבלה הזו קיימת כי סנכרון ההגדרות משתמש בשער Connect כדי להתחבר לאשכולות שמצורפים ל-GKE, ושער Connect לא תומך בתכונה הזו.
Networking
בקטע הבא מפורטים חלק מהשינויים שאולי תצטרכו לבצע באשכול GKE, בהתאם להגדרות הרשת שלכם.
למידע נוסף על אפשרויות הרשת ב-GKE, קראו את סקירה כללית של הרשת.
אשכולות פרטיים
אם אתם משתמשים באשכולות GKE עם צמתים פרטיים, אתם צריכים להגדיר את האשכולות באחת מהדרכים הבאות כדי לוודא שלסנכרון ההגדרות יש גישה למקור האמת שלכם ושהוא יכול לאמת אותו:
מגדירים את Cloud NAT כדי לאפשר תעבורת נתונים יוצאת מצמתים פרטיים של GKE. פרטים נוספים זמינים במאמר הגדרה לדוגמה של GKE.
מפעילים את הגישה הפרטית ל-Google כדי להתחבר לקבוצה של כתובות ה-IP החיצוניות שמשמשות את ממשקי ה-API והשירותים של Google.
אשכולות ציבוריים
אם אתם משתמשים באשכולות ציבוריים, אבל יש לכם דרישות מחמירות של חומת אש של VPC שחוסמות תעבורת נתונים מיותרת, אתם צריכים ליצור כללים של חומת אש כדי לאפשר את תעבורת הנתונים הבאה:
- TCP: מאפשרים תעבורת נתונים נכנסת ויוצאת ביציאות 53 ו-443
- UDP: מאפשרים תעבורה יוצאת ביציאה 53
אם לא תכללו את הכללים האלה, סנכרון ההגדרות לא יתבצע כמו שצריך ו-nomos status ידווח על השגיאה הבאה:
Error: KNV2004: unable to sync repo Error in the git-sync container
Cloud Source Repositories עם אימות של חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine
אם אתם משתמשים בסנכרון ההגדרות כדי להתחבר ל-Cloud Source Repositories, ואיחוד זהויות של עומסי עבודה ל-GKE לא מופעל, אתם יכולים להשתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כדי לבצע אימות. אתם צריכים להשתמש בהיקפי גישה עם היקפים לקריאה בלבד לצמתים באשכול.
כדי להוסיף את היקף ההרשאות לקריאה בלבד ל-Cloud Source Repositories, צריך לכלול את cloud-source-repos-ro ברשימה --scopes שצוינה בזמן יצירת האשכול, או להשתמש בהיקף ההרשאות cloud-platform בזמן יצירת האשכול. לדוגמה:
gcloud container clusters create CLUSTER_NAME --scopes=cloud-platform
מחליפים את CLUSTER_NAME בשם של האשכול.
אי אפשר לשנות את היקפי הגישה אחרי שיוצרים מאגר צמתים.
עם זאת, אתם יכולים ליצור מאגר צמתים חדש עם היקף הגישה המתאים, תוך שימוש באותו אשכול. היקף ההרשאות שמוגדר כברירת מחדל ל-gke-default לא כולל את cloud-source-repos-ro.
צומתי ARM
אפשר להריץ את סנכרון תצורות רק בצמתים שמבוססים על x86, ולא בצמתים של Arm. עם זאת, אם אתם צריכים להריץ את סנכרון תצורות באשכול עם כמה ארכיטקטורות, בצעו את הפעולה הבאה בהתאם לסוג האשכול:
- GKE ב-AWS או GKE ב-Azure: מוסיפים taint לצומתי Arm כדי להימנע מתזמון Pods לצומתי Arm ללא toleration תואם.
- GKE: המערכת מוסיפה ל-GKE טיינט כברירת מחדל כדי לוודא שעומסי עבודה בלי הטולרציה המתאימה לא יתוזמנו שם. לא צריך לעשות שום דבר נוסף.