תכנון כתובות ה-IP

במסמך הזה מובאת דוגמה לאופן ההקצאה של כתובות 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 לצמתים של אשכול האדמין, שכולם מריצים רכיבי מישור בקרה. לדוגמה, אפשר להשתמש בכתובות ה-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 באשכול משתמש 1192.168.0.0/16
‫Pods באשכול משתמש 2192.168.0.0/16
שירותים באשכול האדמין10.96.0.0/20
שירותים באשכול משתמש 110.96.0.0/20
שירותים באשכול משתמש 210.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 לסוגים שונים של התקנות, אפשר לעיין במסמכים הבאים: