במאמר הזה מוסבר על היתרונות והמגבלות של בידוד צמתים באשכול Kubernetes עם פער אוויר ב-Google Distributed Cloud (GDC). בידוד הצמתים באמצעות מאגרי צמתים ייעודיים משפר את אבטחת האשכול, כי הוא מאפשר לכם שליטה מדויקת במיקום שבו פועלים פודים ספציפיים באשכול.
בידוד עומסי עבודה מספק כמה יתרונות, כמו:
- הפחתת הסיכון למתקפות של הסלמת הרשאות באשכול Kubernetes.
- שליטה רבה יותר בתרמילים שנדרשים להם משאבים נוספים.
במקרים כאלה, כדאי לבודד את עומסי העבודה של הקונטיינרים במאגרי צמתים ייעודיים כדי לשפר את השליטה והאופטימיזציה. חשוב גם לעיין במגבלות כדי לקבל החלטה מושכלת לגבי עלות התחזוקה הנוספת שנדרשת לבידוד הצומת.
המסמך הזה מיועד לקהלים כמו אדמינים של IT בקבוצת האדמינים של הפלטפורמה, שאחראים על ניהול מאגרי הצמתים של אשכול Kubernetes, ומפתחי אפליקציות בקבוצת מפעילים של אפליקציות, שאחראים על ניהול עומסי עבודה של קונטיינרים. מידע נוסף זמין במאמר בנושא קהלים ב-GDC עם air gap.
למה כדאי לבודד את עומסי העבודה?
הקצאת מאגרי צמתים לעומסי עבודה ספציפיים של קונטיינרים היא לא חובה, אבל היא יכולה למנוע בעיות פוטנציאליות. עם זאת, הגישה הזו דורשת יותר ניהול, ולרוב היא לא חיונית.
אשכולות Kubernetes משתמשים בעומסי עבודה עם הרשאות מיוחדות שמנוהלים על ידי GDC כדי להפעיל יכולות ותכונות ספציפיות של האשכול, כמו איסוף מדדים. לעומסי העבודה האלה מוקצות הרשאות מיוחדות כדי שהם יפעלו בצורה תקינה באשכול.
יכול להיות שעומסי עבודה שאתם פורסים בצמתים שלכם ייפרצו על ידי גורם זדוני. הפעלת עומסי העבודה האלה לצד עומסי עבודה מנוהלים ב-GDC עם הרשאות מיוחדות, מאפשרת לתוקף שפורץ מקונטיינר שנפרץ להשתמש בפרטי הכניסה של עומס העבודה עם ההרשאות המיוחדות בצומת כדי להרחיב את ההרשאות באשכול.
מאגרי צמתים ייעודיים שימושיים גם כשצריך לתזמן פודים שדורשים יותר משאבים מאחרים, כמו יותר זיכרון או יותר נפח אחסון מקומי.
אפשר להשתמש במנגנונים הבאים כדי לתזמן את עומסי העבודה במאגר צמתים ייעודי:
- Node taints: מודיע לאשכול Kubernetes להימנע מתזמון עומסי עבודה בצמתים ספציפיים ללא toleration תואם.
- Node affinity: הגדרה שמודיעה לאשכול Kubernetes לתזמן פודים ספציפיים בצמתים ייעודיים.
בידוד הצמתים הוא מנגנון מתקדם להגנה מקיפה, שצריך להשתמש בו רק לצד תכונות בידוד אחרות, כמו קונטיינרים עם הרשאות מינימליות וחשבונות שירות. יכול להיות שבידוד הצמתים לא יכסה את כל נתיבי ההסלמה, ואסור להשתמש בו כגבול אבטחה ראשי.
איך פועל בידוד הצמתים
כדי להטמיע בידוד של צמתים בעומסי העבודה, צריך לבצע את הפעולות הבאות:
הוספת כתם ותווית למאגר צמתים בשביל עומסי העבודה.
מעדכנים את עומסי העבודה עם כלל הסבילות והזיקה לצומת המתאים.
במדריך הזה אנחנו יוצאים מנקודת הנחה שמתחילים עם מאגר צמתים אחד באשכול. השימוש בהעדפת צומת בנוסף להכתמת צומת הוא לא חובה, אבל מומלץ כי הוא מאפשר שליטה רבה יותר בתזמון.
המלצות ושיטות מומלצות
אחרי שמגדירים בידוד של צמתים, מומלץ לבצע את הפעולות הבאות:
כשיוצרים מאגרי צמתים חדשים, אפשר למנוע מרוב עומסי העבודה שמנוהלים על ידי GDC לפעול בצמתים האלה על ידי הוספת taint משלכם למאגרי הצמתים האלה.
בכל פעם שפורסים עומסי עבודה חדשים באשכול, למשל כשמתקינים כלי צד שלישי, צריך לבדוק את ההרשאות שנדרשות ל-Pods. ככל האפשר, מומלץ להימנע מפריסת עומסי עבודה שמשתמשים בהרשאות מורחבות לצמתים משותפים.
מגבלות
המגבלות הבאות חלות על פודים שפועלים במאגר צמתים מבודד:
תוקפים עדיין יכולים ליזום התקפות מניעת שירות (DoS) מהצומת שנפרץ.
אם פורסים משאבי
DaemonSetעם הרשאות גבוהות שיכולים לסבול כל כתם, יכול להיות שהפודים האלה יהיו דרך להסלמת הרשאות מצומת שנפרצה.גם אם הצומת נפגע, הוא עדיין יכול לקרוא הרבה משאבים, כולל כל הפודים ומרחבי השמות באשכול.
צמתים שנפרצו יכולים לגשת לסודות ולפרטי הכניסה שמשמשים כל פוד שפועל בצומת הזה.
צמתים שנפרצו עדיין יכולים לעקוף את מדיניות הרשת ליציאה.
שימוש במאגר צמתים נפרד כדי לבודד את עומסי העבודה יכול להשפיע על יעילות העלויות, על שינוי הגודל האוטומטי ועל ניצול המשאבים.
חלק מעומסי העבודה שמנוהלים על ידי GDC צריכים לפעול בכל צומת באשכול, והם מוגדרים כך שיפעלו למרות כל ההגבלות.
המאמרים הבאים
- בידוד עומסי עבודה של קונטיינרים במאגרי צמתים ייעודיים
- סקירה כללית של אשכול Kubernetes
- עומסי עבודה של קונטיינרים ב-GDC