במסמך הזה מובאת דוגמה לאופן ההקצאה של כתובות IP לאשכול אדמין עם זמינות גבוהה (HA) ולשני אשכולות משתמשים עם זמינות גבוהה.
לפני שמתחילים
מידע על אשכולות אדמין, אשכולות משתמשים וזמינות גבוהה זמין במאמר בחירת מודל פריסה.
דוגמה להקצאת כתובת IP
בקטע הזה מופיעה דוגמה להקצאת כתובות IP בהתקנה שכוללת את האלמנטים הבאים:
כתובות IP לצמתים של אשכול
כתובות IP של Pods
כתובות IP של אשכולות לשירותים
כתובות IP וירטואליות (VIP) למישורי הבקרה ולשרתי proxy של תעבורת נכנסת
כתובות IP וירטואליות לשימוש ככתובות IP חיצוניות לשירותים
צמתים של אשכול אדמין
באשכול האדמין בדוגמה הזו יש שלושה צמתים. כל צומת מריץ רכיבי מישור בקרה.
צמתים של אשכול משתמשים
בדוגמה הזו, לכל אשכול משתמשים יש שישה צמתים: שלושה צמתים של מישור הבקרה ושלושה צמתים של עובדים.
איזון עומסים
בדוגמה הזו, נניח שהאשכולות משתמשים במאזן העומסים MetalLB שכלול בחבילה. מאזן העומסים פועל בצמתי האשכול, כך שלא נדרשים מחשבים נוספים לאיזון העומסים.
תת-רשתות
בדוגמה הזו, נניח שכל אשכול נמצא בדומיין משלו בשכבה 2, והאשכולות נמצאים בתת-הרשתות הבאות:
| אשכול | תת-רשת | שער ברירת מחדל |
|---|---|---|
| אשכול אדמין | 172.16.20.0/24 | 172.16.20.1 |
| אשכול משתמש 1 | 172.16.21.0/24 | 172.16.21.1 |
| אשכול משתמש 2 | 172.16.22.0/24 | 172.16.22.1 |
התרשים הבא מדגים את שלוש רשתות המשנה. שימו לב שמשתמשי VIP לא מוצגים כמשויכים לצומת מסוים באשכול. הסיבה לכך היא שמאזן העומסים של MetalLB יכול לבחור איזה צומת יפרסם את ה-VIP עבור שירות מסוים. לדוגמה, באשכול משתמשים 1, צומת אחד יכול להודיע על כתובת 172.16.21.52, וצומת אחר יכול להודיע על כתובת 172.16.21.53.
דוגמאות לכתובות IP: צמתים של אשכול אדמין
צריך שלוש כתובות IP לצמתים של אשכול האדמין, שכולם מריצים רכיבי מישור בקרה. לדוגמה, אפשר להשתמש בכתובות ה-IP הבאות לצמתים באשכול הניהול. הכתובות בדוגמה הזו הן עוקבות, אבל זו לא דרישה:
| כתובות IP של צמתים באשכול הניהול |
|---|
| 172.16.20.2 - 172.16.20.4 |
כתובת IP לדוגמה: VIP של מישור הבקרה עבור אשכול האדמין
צריך להקצות כתובת VIP לשרת Kubernetes API של אשכול האדמין.
בקובץ התצורה של האשכול, השם של ההגדרה הזו הוא controlPlaneVIP.
לדוגמה, אפשר להקצות את כתובת ה-IP הבאה לשימוש כ-VIP של מישור הבקרה עבור אשכול האדמין:
| כתובת VIP של מישור הבקרה עבור אשכול האדמין |
|---|
| 172.16.20.50 |
כתובות IP לדוגמה: צמתים של אשכול משתמשים 1
לדוגמה, אפשר להשתמש בכתובות ה-IP הבאות עבור שלושה צמתים של מישור הבקרה ושלושה צמתים של עובדים באשכול משתמשים 1. בדוגמה הזו הכתובות הן עוקבות, אבל זה לא חובה:
| כתובות ה-IP של הצמתים באשכול המשתמשים 1 |
|---|
| 172.16.21.2 - 172.16.21.7 |
כתובות IP לדוגמה: כתובות IP וירטואליות לאשכול משתמשים 1
בטבלה הבאה מוצגת דוגמה לאופן שבו אפשר להגדיר כתובות IP וירטואליות במאזן העומסים עבור אשכול משתמשים 1. בדוגמה הזו, כתובות ה-VIP הן עוקבות, אבל זה לא חובה:
| VIP | תיאור | כתובת IP |
|---|---|---|
| כתובת VIP במישור הבקרה של אשכול משתמשים 1 | הוגדר במאזן העומסים עבור אשכול משתמשים 1 | 172.16.21.50 |
| כתובת VIP של תעבורת נתונים נכנסת (ingress) באשכול משתמש 1 | הוגדר במאזן העומסים עבור אשכול משתמשים 1 | 172.16.21.51 |
| כתובות VIP של שירותים באשכול משתמש 1 | 10 כתובות לשירותים מהסוג LoadBalancer.מוגדר לפי הצורך במאזן העומסים עבור אשכול המשתמשים 1. שימו לב שהטווח הזה כולל את כתובת ה-VIP של ה-Ingress. זוהי דרישה למאזן העומסים MetalLB. |
172.16.21.51 - 172.16.21.60 |
כתובות IP לדוגמה: צמתי אשכול משתמשים 2
דוגמה: אפשר להשתמש בכתובות ה-IP הבאות לצמתים באשכול משתמש 2. בדוגמה הזו הכתובות הן עוקבות, אבל זה לא חובה:
| כתובות ה-IP של הצמתים באשכול המשתמשים 2 |
|---|
| 172.16.22.2 - 172.16.22.7 |
דוגמה לכתובות IP: כתובות VIP לאשכול משתמשים 2
בטבלה הבאה מוצגת דוגמה לאופן שבו אפשר להגדיר כתובות IP וירטואליות במאזן העומסים עבור אשכול משתמשים 2. בדוגמה הזו, מספרי ה-VIP הם עוקבים, אבל זה לא חובה.
| VIP | תיאור | כתובת IP |
|---|---|---|
| כתובת VIP של מישור הבקרה עבור אשכול משתמשים 2 | מוגדר במאזן העומסים של אשכול המשתמשים 2 | 172.16.22.50 |
| כתובת IP וירטואלית (VIP) של תעבורת נתונים נכנסת (ingress) עבור אשכול משתמשים 2 | מוגדר במאזן העומסים של אשכול המשתמשים 2 | 172.16.22.51 |
| כתובות VIP של שירותים באשכול משתמש 2 | 10 כתובות לשירותים מהסוג LoadBalancer.מוגדר לפי הצורך במאזן העומסים של אשכול המשתמשים 2. שימו לב שהטווח הזה כולל את כתובת ה-VIP של ה-Ingress. זו דרישה למאזן העומסים MetalLB. |
172.16.22.51 - 172.16.22.60 |
דוגמאות לכתובות IP: Pods ו-Services
לפני שיוצרים אשכול, צריך לציין טווח CIDR לשימוש בכתובות IP של Pod וטווח CIDR אחר לשימוש בכתובות ClusterIP של שירותי Kubernetes.
מחליטים באילו טווחי CIDR רוצים להשתמש עבור Pods ושירותים. לדוגמה:
| מטרה | טווח CIDR |
|---|---|
| Pods באשכול הניהול | 192.168.0.0/16 |
| Pods באשכול משתמש 1 | 192.168.0.0/16 |
| Pods באשכול משתמש 2 | 192.168.0.0/16 |
| שירותים באשכול האדמין | 10.96.0.0/20 |
| שירותים באשכול משתמש 1 | 10.96.0.0/20 |
| שירותים באשכול משתמש 2 | 10.96.0.0/20 |
הדוגמאות שלמעלה ממחישות את הנקודות הבאות:
טווח ה-CIDR של ה-Pod יכול להיות זהה לכמה אשכולות במודל הרשת של מצב ברירת המחדל, שהוא מצב איים. ברשת במצב שטוח, ל-Pods צריכות להיות כתובות IP ייחודיות בכל האשכולות. מידע נוסף על מודלים של רשת שמשפיעים על פודים זמין במאמר מודלים של רשת במצב שטוח לעומת מצב איים.
טווח ה-CIDR של השירות יכול להיות זהה לכמה אשכולות.
בדרך כלל צריך יותר פודים משירותים, ולכן עבור אשכול נתון, כדאי להשתמש בטווח CIDR של פודים שגדול יותר מטווח ה-CIDR של השירות. טווח ה-Pod לדוגמה עבור אשכול משתמשים הוא 192.168.0.0/16, שיש בו 2^(32-16) = 2^16 כתובות. אבל טווח שירות לדוגמה עבור אשכול משתמשים הוא 10.96.0.0/20, שיש בו רק 2^(32-20) = 2^12 כתובות.
הימנעות מחפיפה
חשוב לוודא שטווח ה-CIDR לא חופף לכתובות IP שאפשר להגיע אליהן ברשת שלכם. הטווחים של השירות וה-Pod לא יכולים לחפוף לכתובת מחוץ לאשכול שרוצים להגיע אליה מתוך האשכול.
לדוגמה, נניח שטווח השירות שלכם הוא 10.96.0.0/20, וטווח ה-Pod הוא 192.168.0.0/16. כל תעבורה שנשלחת מ-Pod לכתובת באחד מהטווחים האלה תטופל כתעבורה בתוך האשכול ולא תגיע ליעד מחוץ לאשכול.
בפרט, טווחי ה-Service וה-Pod לא יכולים לחפוף ל:
כתובות ה-IP של הצמתים בכל אשכול
כתובות IP שמשמשות מכונות של מאזן עומסים
כתובות VIP שמשמשות צמתים של רמת הבקרה ומאזני עומסים
כתובות IP של שרתי DNS ושרתי NTP
מומלץ שטווח כתובות ה-IP של השירות ושל ה-Pod יהיה במרחב הכתובות הפרטיות של RFC 1918.
זו אחת הסיבות להמלצה להשתמש בכתובות RFC 1918. נניח שטווח ה-Pod או השירות שלכם מכיל כתובות IP חיצוניות. כל תעבורת נתונים שנשלחת מ-Pod לאחת מהכתובות החיצוניות האלה תטופל כתעבורת נתונים בתוך האשכול ולא תגיע ליעד החיצוני.
וריאציות בהקצאת כתובות IP
בדוגמה שמופיעה במסמך הזה מוצגת דרך אחת להקצאת כתובות IP לסוג מסוים של התקנה. עם זאת, יש כמה דרכים להתקין את Google Distributed Cloud, והגרסה שתבחרו תשפיע על תכנון כתובות ה-IP.
לדוגמה, יכול להיות שתחליטו להשתמש באשכולות שאינם HA, או שתחליטו לפזר את צמתי האשכול על פני כמה דומיינים ברמה 2. יכול להיות שתחליטו להשתמש ברשת במצב שטוח במקום ברשת במצב אי.
דוגמאות לאופן שבו מציינים כתובות IP בקובצי הגדרות של אשכולות עבור סוגים שונים של התקנות מופיעות במאמר דוגמאות להגדרות של אשכולות.
למידע נוסף על תכנון כתובות ה-IP לסוגים שונים של התקנות, אפשר לעיין במסמכים הבאים:
מודל רשת שטוח לעומת מודל רשת של איים
במצב שטוח, ל-Pods יש כתובות ייחודיות בכמה אשכולות. משנים בהתאם את טווחי ה-CIDR של ה-Pod.
רשתות עם מחסנית כפולה של IPv4/IPv6
לצמתים, ל-Pods ולשירותים יש כתובות IPv4 ו-IPv6. רשת IPv6 נמצאת במצב שטוח, אבל רשת IPv4 יכולה להיות במצב אי או במצב שטוח. ברשתות במצב שטוח, צריך לדאוג לנגישות של ה-Pod.
הטמעה של מודל רשת במצב IPv4 שטוח
צריך לדאוג שאפשר יהיה להגיע ל-Pod. הגדרת טווח ה-Pod וטווח הצומת כקבוצות משנה של טווח גדול יותר.
הטמעה של מודל רשת במצב שטוח עם תמיכה ב-BGP
אתם צריכים כתובות IP צפות עבור רכיבי BGP ב-cluster, ועליכם לציין את כתובות ה-IP של נתבי Peer.
הגדרת מאזני עומסים בחבילה עם BGP
אתם צריכים כתובות IP צפות עבור רכיבי BGP ב-cluster, ועליכם לציין את כתובות ה-IP של נתבי עמיתים.
הגדרת Network Connectivity Gateway
צריך לציין כתובות IP של עמיתים וכתובות IP של מנהרות מקומיות.