Kubernetes לא מבטיח שכל דבר מחוץ לאשכול יוכל לתקשר עם האשכול, והוא מבטיח רק את הפונקציונליות הבאה:
כל הפודים באשכול יכולים לתקשר ישירות ביניהם בלי להשתמש בתרגום כתובות רשת (NAT). גם פודים שנמצאים בצמתים שונים יכולים לתקשר ישירות אחד עם השני.
סוכנים בצומת, כמו שדים של המערכת או kubelet, יכולים לתקשר עם כל הפודים בצומת הזה.
לכן, כשברשת מתארחים שני אשכולות, כמו בתמונה שלמטה, השאלה שצריך לשאול היא איך פודים באשכול 1 מתקשרים עם פודים באשכול 2? באופן דומה, איך לקוחות או שרתים מחוץ לאשכולות, שמסומנים בתרשים כ'לקוח אחר' ו'שרת אחר', מתקשרים עם Pod בתוך אשכול?
במאמר הזה מוסבר איך מודל רשת במצב שטוח ומודל רשת במצב אי עונים על השאלות האלה בצורה שונה.
מודל רשת במצב שטוח
ברשת משולבת לחלוטין או ברשת במצב שטוח, לכל פוד יש כתובת IP ייחודית בכל האשכולות. לדוגמה, ל-Pod-A באשכול 1 יש כתובת IP שלא תראו בשום מקום אחר באשכול 1 או באשכול 2. באופן דומה, ל-Pod-G באשכול 2 יש כתובת ייחודית בשני האשכולות. המשמעות היא ש-Pods מאשכול 1 יכולים לתקשר ישירות עם כל אחד מה-Pods באשכול 2 (בהנחה שאין חומות אש או מדיניות אחרת שיחסמו את התנועה). אין צורך בשער או בתרגום כתובות לתקשורת בין פודים.
באופן דומה, לקוחות ושרתים מחוץ לאשכול יכולים לתקשר ישירות עם pod בתוך אשכול באמצעות כתובת ה-IP הייחודית של ה-pod, אם למשל הניתוב מוגדר באופן סטטי במכשירי רשת או אם הצמתים משתמשים ב-Border Gateway Protocol (BGP) כדי לפרסם שהם יכולים לטפל בתעבורת נתונים עבור טווח IP נתון.
לכן, ברשתות שטוחות, התקשורת קלה וישירה: אין כתובות IP חופפות, ולא צריך להשתמש ברשתות שכבת-על או ב-NAT.
מודל רשת במצב 'אי'
מודל רשת במצב שטוח הוא אפשרות טובה אם יש לכם מרחב גדול של כתובות IP, ואתם יכולים להקצות כתובת IP ייחודית לכל פוד. עם זאת, אם מרחב גדול של כתובות IP הוא לא אפשרות בשבילכם, מודל רשת במצב אי-תלות הוא בחירה טובה.
ברשת במצב איים, לצמתים יש כתובות IP ייחודיות, אבל כדי לחסוך בכתובות IP, לפודים אין כתובות ייחודיות בכל האשכולות. זה לא גורם לבעיות כי פודים באשכול אחד אף פעם לא מתקשרים ישירות עם פודים באשכול אחר. במקום זאת, כפי שמוצג בדיאגרמה הבאה, יש שערים שמתווכים בין Pod באשכול אחד לבין Pod באשכול אחר.
באופן דומה, תנועה (ingress) מלקוח שנכנסת לאשכול ותנועה (egress) שיוצאת מאשכול מטופלות על ידי שערים דומים. אפשר להטמיע שערים בדרכים שונות. לדוגמה, NAT, כתובות IP וירטואליות (VIP) ושרתי proxy הם דוגמאות לשערי גישה. הם מבצעים תרגומים של כתובות IP, שמשפיעים על כך שכתובות ה-IP של הפודים נשארות פרטיות.
במודל הרשת של מצב האיים, אפשר להשתמש באותן כתובות IP של פודים בכל אשכול. כלומר, כתובות ה-IP של הפודים לא צריכות להיות ייחודיות בכל האשכולות. כפי שאפשר לראות בדיאגרמה הבאה, אפשר להשתמש באותן כתובות IP של Podים בכל אשכול, כי Pod באשכול אחד אף פעם לא מתקשר ישירות עם Pod באשכול אחר.
יתרון משמעותי של מודל הרשת במצב איים הוא שאפשר לעשות שימוש חוזר בכתובות ה-IP של ה-Pod.
יתרונות וחסרונות של שני המודלים
אלה כמה מהיתרונות והחסרונות של שני המודלים:
רשת שטוחה מהירה יותר מרשת איים, כי שערים במצב איים מבצעים תרגום כתובות, והתרגומים האלה כרוכים בעלות ביצועים.
קל יותר לנפות באגים בבעיות באשכול ברשתות שטוחות, כי לכל דבר ברשת יש כתובת IP ייחודית, ולכן קל יותר לזהות איפה מתרחשת בעיה. לדוגמה, כתובות ה-IP של ה-Pods לא מוסתרות מאחורי כתובת ה-IP של הצומת, ולכן קל יותר לקבוע בדיוק איזה Pod גורם לבעיות. באופן דומה, כתובות ה-IP של הלקוחות לא מוסתרות במצב שטוח כמו שהן מוסתרות במצב אי, וזה גם עוזר בניפוי באגים.
יכול להיות שלא תוכלו להשתמש במודל רשת שטוח אם יש לכם מעט כתובות IP או אם מרחב כתובות ה-IP שלכם מפוצל (כלומר, אם אין לכם מקטעים גדולים של כתובות IP). במקרה כזה, עדיף להשתמש ברשת עצמאית.
חשוב לציין שמודלים שטוחים ומודלים של איים הם רק שניים מהמודלים האפשריים של רשתות, ויש הרבה וריאציות גם בתוך המודלים האלה.