אשכולות המותאמים ל-VPC

בדף הזה מופיעה סקירה כללית על אשכולות המותאמים ל-VPC ב-Google Kubernetes Engine ‏ (GKE).

הדף הזה מיועד לאדריכלי ענן ולמומחי רשתות שמתכננים ומעצבים את הרשת של הארגון שלהם. למידע נוסף על תפקידים נפוצים ומשימות לדוגמה שאנחנו מתייחסים אליהם בתוכן של Google Cloud , קראו את המאמר תפקידים ומשימות נפוצים של משתמשי GKE.

סקירה כללית

ב-GKE, אפשר להבחין בין אשכולות לפי האופן שבו הם מנתבים תנועה מ-Pod אחד ל-Pod אחר.

אשכול שמשתמש בטווחי כתובות IP חלופיות נקרא אשכול המותאם ל-VPC. אשכול שמשתמש בנתיבים סטטיים בהתאמה אישית ברשת VPC נקרא אשכול מבוסס-נתיבים.

שיטה מומלצת:

תכננו את הגדרת האשכול עם אדריכלי הרשת, מנהלי הרשת או כל צוות אחר של מהנדסי רשת שאחראי על הגדרה, הטמעה ותחזוקה של ארכיטקטורת הרשת בארגון.

היתרונות של אשכולות המותאמים ל-VPC

לאשכולות המותאמים ל-VPC יש כמה יתרונות:

מצב ברירת המחדל של רשת האשכול

מצב הרשת שמוגדר כברירת מחדל לכל האשכולות החדשים בכל גרסה זמינה, שנוצרו דרך כל ממשק, כולל Google Cloud CLI, מסוף Google Cloud או GKE API, הוא VPC-native. מידע נוסף על הגרסאות הזמינות מופיע במאמר גרסאות נוכחיות.

אם אתם לא רוצים להשתמש במצב הרשת המומלץ של VPC-native, תוכלו לקרוא את המאמר יצירת אשכול מבוסס-נתיבים.

טווחי כתובות IP לאשכולות המותאמים ל-VPC

כשיוצרים אשכול שמותאם ל-VPC, מציינים תת-רשת ברשת VPC. האשכול משתמש בטווחי כתובות ה-IP הבאים של רשת המשנה:

הקצאת כתובות IPv4

באשכולות המותאמים ל-VPC, כתובות IPv4 מוקצות לצמתים, לפודים ולשירותים באופן הבא.

  • כתובות IPv4 של צמתים: האשכול משתמש בטווח הכתובות הראשי של IPv4 של רשת המשנה כדי להקצות כתובות IP לכל הצמתים.

  • כתובות IPv4 של Pod: האשכול משתמש בטווח אחד או יותר של כתובות IPv4 משניות של רשת משנה לכל כתובות ה-IPv4 של Pod. בדף הזה נתמקד בשימוש בטווח כתובות IPv4 משני של רשת משנה אחת. למידע נוסף על שימוש בכמה טווחים, ראו הוספת טווחי כתובות IPv4 של Pod.

  • כתובות IPv4 של השירות: יש שתי אפשרויות:

    • כתובות IPv4 של שירותים מ-34.118.224.0/20: אשכולות GKE Autopilot שפועלים בגרסה 1.27 ואילך ואשכולות GKE Standard שפועלים בגרסה 1.29 ואילך משתמשים בטווח כתובות ה-IPv4 של 34.118.224.0/20 לשירותים.Google Cloud משתמשת בטווח הכתובות של 34.118.224.0/20 למטרות פרטיות ולא מפרסמת נתיבים באינטרנט הציבורי לטווח הזה. אי אפשר להשתמש בטווח הזה לכתובות IPv4 חיצוניות של המשאבים.

    • כתובות IPv4 של שירותים מטווח כתובות IPv4 משני של רשת משנה: בכל הכתובות של השירותים (ClusterIP), האשכול משתמש בטווח כתובות IPv4 משני של רשת משנה, ששונה מהטווחים שבהם משתמשים ה-Pods.

הקצאת כתובות IPv6 (רשתות עם מחסנית כפולה)

  • כתובות IPv6 של צמתים ו-Pods: באשכולות שמופעלת בהם רשת עם מחסנית כפולה, כתובת ה-IPv6 של הצומת וכל כתובות ה-IPv6 של ה-Pods מגיעות מטווח כתובות ה-IPv6 של /96 שמיועד לצומת. כתובת ה-IP של הצומת עצמו היא ה-/128 הראשון (כתובת IPv6 יחידה) בטווח הזה. מידע נוסף מופיע במאמר רשתות עם מחסנית כפולה.

  • כתובות IPv6 של שירותים: אשכולות GKE משתמשים בטווח כתובות IPv6 של 2600:2D00:0:4::0:0/64 לשירותים. Google Cloudמשתמש בטווח הכתובות של 2600:2D00:0:4::0:0/64 למטרות פרטיות, ולא מפרסם נתיבים באינטרנט הציבורי לטווח הזה. אי אפשר להשתמש בטווח הזה לכתובות IPv6 חיצוניות של המשאבים שלכם.

בטבלה הבאה מופיע סיכום של טווחי כתובות ה-IP של צמתים, Pods ו-Services:

טווח הסבר דוגמה
צמתים

כתובות ה-IP של הצמתים מוקצות מטווח כתובות ה-IP הראשי של רשת המשנה שמשויכת לאשכול.

גם כתובות ה-IP של הצמתים וגם הגודל של טווח כתובות ה-IP המשני של תת-הרשת לפודים מגבילים את מספר הצמתים שאשכול יכול לתמוך בהם. מידע נוסף זמין במאמר טווחים להגבלת צמתים.

אם אתם מתכננים ליצור אשכול של 900 צמתים, טווח כתובות ה-IP הראשי של רשת המשנה של האשכול צריך להיות לפחות /22 (2‎(32-22)‎ = 210 = 1,024 כתובות). מתוך 1,024 הכתובות האלה, 1,020 ניתנות לשימוש כי ארבע כתובות IP שמורות בכל טווח של כתובות IP ראשיות.

מידע נוסף זמין במאמרים טווח כתובות ה-IP הראשי של רשת המשנה וטווח כתובות ה-IP המשני של רשת המשנה לפודים.

קבוצת Pod

כתובות ה-IP של Pod נלקחות מטווח כתובות ה-IP המשני של תת-הרשת של האשכול ל-Pods. ‫GKE מקצה טווח כתובות IP חלופיות של /24 (256 כתובות) לכל צומת בשביל ה-Pods שפועלים בו, אלא אם מגדירים מספר מקסימלי אחר של Pods לכל צומת. בכל צומת, 256 כתובות ה-IP החלופיות האלה משמשות לתמיכה בעד 110 Pods.

באשכול של 900 צמתים שתומך בעד 110 Pods לכל צומת, צריך 900 × 256 = 230,400 כתובות IP ל-Pods. (לכל צומת מוקצה טווח כתובות IP חלופיות, שגודל מסכת הרשת שלו הוא ‎ /24). לאשכול הזה נדרשת רשת משנה שטווח ה-IP המשני שלה לפודים כולל מסכה של רשת משנה שלא גדולה מ-‎ /14. טווח ה-IP המשני הזה מספק 2‎(32-14)‎ = 218 = 262,144 כתובות IP לפודים.

מידע נוסף זמין במאמר טווח כתובות IP משני של רשת משנה לפודים.

שירותים

כתובות השירות (IP של אשכול) נלקחות מטווח כתובות ה-IP המשני של תת-הרשת של האשכול לשירותים. חשוב לוודא שהטווח הזה גדול מספיק כדי לספק כתובות לכל שירותי Kubernetes שאתם מארחים באשכול.

באשכולות GKE Autopilot שפועלים בגרסה 1.27 ואילך, ובאשכולות GKE Standard שפועלים בגרסה 1.29 ואילך, GKE מקצה כתובות IP לשירותי GKE מטווח שמנוהל על ידי GKE: ‏34.118.224.0/20 כברירת מחדל. כך לא תצטרכו לציין טווח כתובות IP משלכם לשירותים. לפרטים, ראו טווח כתובות IP משני של תת-רשת לשירותים.

לאשכול שמריץ עד 3,000 שירותים, צריך 3,000 כתובות IP של אשכול. צריך טווח משני בגודל ‎ /20 או יותר. טווח של ‎ /20 של כתובות IP נותן 2(32-20) = 212 = 4,096 כתובות IP.

מידע נוסף זמין במאמר טווח כתובות IP משני של רשת משנה לשירותים.

כתובות IPv4 פנימיות

כתובות ה-IPv4 שבהן אתם משתמשים ברשתות המשנה של האשכול המותאם ל-VPC צריכות להיות מטווח חוקי של רשת משנה. הטווחים התקינים כוללים כתובות IPv4 פרטיות, כמו RFC 1918, וכתובות IP ציבוריות בשימוש פרטי. למידע נוסף על טווחי IPv4 חוקיים של רשתות משנה, קראו את הקטעים טווחים חוקיים וטווחים מוגבלים במסמכי התיעוד של VPC.

למידע חשוב על שימוש בכתובות פרטיות שהן לא כתובות RFC 1918, קראו את המאמר שימוש בטווחי כתובות IPv4 פרטיות שהן לא RFC 1918.

למידע חשוב על שימוש בטווחי כתובות IPv4 ציבוריות בשימוש פרטי, קראו את המאמר הפעלת טווחי כתובות IP ציבוריות בשימוש פרטי.

שיטות הקצאה של טווח IPv4 משני ברשת משנה

אתם יכולים להקצות טווחי כתובות IP של Pod וטווחי כתובות של שירות (ClusterIP) לאשכול המותאם ל-VPC. אפשר לנהל את טווחי כתובות ה-IP האלה באמצעות GKE או באמצעות המשתמש.

כדי להבין את השיטות להקצאת טווחים משניים, צריך להבין את המונחים הבאים.

הקצאה: הקצאת טווחים של כתובות IP מתייחסת לתהליך של הקצאת טווח ספציפי של רשת משנה לאשכול המותאם ל-VPC. כך נוצר מאגר של כתובות IP שרכיבים כמו Pods ו-Services יכולים להשתמש בהן בתוך האשכול.

ניהול: ניהול טווח כתובות ה-IP מתייחס לפעולות CRUD (יצירה, עדכון, מחיקה, קריאה) שוטפות ברמת האשכול, מאגר הצמתים או ה-Pod, שקשורות לטווחי רשתות המשנה שהוקצו ולהקצאת המשאבים באשכול המותאם ל-VPC.

טווחים משניים בניהול GKE (ברירת מחדל)

באשכולות GKE Autopilot שפועלים בגרסה 1.27 ואילך ובאשכולות GKE Standard שפועלים בגרסה 1.29 ואילך, GKE מקצה כברירת מחדל כתובות IP לשירותים מטווח שמנוהל על ידי GKE: ‏34.118.224.0/20. כך לא תצטרכו לציין טווח כתובות IP משלכם לשירותים. צריך להתחשב בשיקולים הבאים:

  • אפשר גם לציין טווחים בהתאמה אישית לשירותים באמצעות הדגל --services-ipv4-cidr.
  • אם מציינים רק גודל טווח באמצעות הדגל --services-ipv4-cidr (לדוגמה, /22), GKE עדיין משתמש בטווח שמנוהל על ידי GKE כדי לקבל את טווח המשנה של הכתובות.
  • אם מציינים רק גודל לטווח כתובות ה-IP של ה-Pod, לדוגמה --cluster-ipv4-cidr=/17,‏ GKE בוחר באופן אוטומטי טווח כתובות IP משני זמין מרשת ה-VPC.
  • כשמשתמשים בטווח שמנוהל על ידי GKE,‏ GKE לא יוצר טווח כתובות IP משני נפרד לשירותים.

בניהול המשתמשים

כדי לקבל שליטה מלאה על הקצאת כתובות ה-IP, אתם יכולים לנהל באופן ידני את רשתות המשנה של האשכול המותאם ל-VPC.

אתם יכולים ליצור את טווחי כתובות ה-IP המשניים של רשת המשנה, ואז ליצור אשכול שמשתמש בטווחים האלה. במהלך יצירת האשכול, מציינים את שם הטווח של רשת המשנה ל-Pods ול-Services. אם יוצרים את הטווחים המשניים באופן ידני, צריך לנהל אותם בעצמכם.

טווח כתובות ה-IP הקטן ביותר שאפשר ליצור בלי להשתמש בCIDR לא רציף של כמה Pods הוא ‎ /28, אבל הטווח הזה יאפשר לכם ליצור רק צומת אחד עם עד 8 Pods. צריך להשתמש בטווח שגדול מספיק למספר המקסימלי של הצמתים שאתם צריכים.

הטווח המינימלי לשימוש תלוי גם במספר המקסימלי של Pods לכל צומת.

בטבלה טווחי CIDR של Pod באשכולות Standard מפורט טווח ה-CIDR המינימלי שאפשר להשתמש בו לערכים שונים של מספר Pods מקסימלי לכל צומת.

אם מיציתם את טווח כתובות ה-IP של הפודים, אתם צריכים לבצע אחת מהפעולות הבאות:

  • יוצרים אשכול חדש עם טווח כתובות Pod גדול יותר.
  • יוצרים מחדש את מאגרי הצמתים אחרי שמקטינים את --max-pods-per-node של מאגרי הצמתים.
  • הרחבת טווח כתובות ה-IP המשני של Pod באמצעות CIDR לא רציף של כמה Pods.

ההבדלים בין אשכולות מבוססי-נתיבים

סכימת ההקצאה של כתובות Pod ו-Service (ClusterIP) שונה מהסכימה שמשמשת אשכול מבוסס-נתיבים. במקום לציין CIDR אחד ל-Pods ול-Services ביחד, צריך לבחור או ליצור שני טווחי כתובות IP משניים ברשת המשנה של האשכול: אחד ל-Pods ואחד ל-Services.

שיקולים לגבי VPC משותף

כשיוצרים אשכול מותאם ל-VPC בסביבת VPC משותף, בעלי הפרויקט, עורכים או חשבונות ראשיים בניהול זהויות והרשאות גישה (IAM) עם התפקיד "אדמין רשת" בפרויקט המארח של ה-VPC המשותף צריכים ליצור באופן ידני את רשת המשנה של האשכול ואת טווחי כתובות ה-IP המשניים. לאדמין של פרויקט שירות שיוצר אשכול צריכות להיות לפחות הרשאות ברמת תת-הרשת לתת-הרשת בפרויקט המארח של רשת ה-VPC המשותפת.

בסביבת VPC משותף, אי אפשר לנהל טווחי כתובות IP משניים באמצעות GKE. כדי שתוכלו ליצור את האשכול, אדמין רשת בפרויקט המארח של ה-VPC המשותף צריך ליצור את רשת המשנה ואת טווחי כתובות ה-IP המשניים. במאמר הגדרת אשכולות עם VPC משותף מוסבר איך מגדירים אשכול מותאם ל-VPC ברשת VPC משותפת.

תכנון טווח כתובות IP

כדי לחשב את הגדלים של טווחי כתובות ה-IP הראשיים והמשניים של רשת המשנה שבה משתמש האשכול, תוכלו להיעזר במידע שבקטעים הבאים.

מחשבון כתובות IP ב-GKE

אתם יכולים להשתמש במחשבון הזה כדי לתכנן את הקצאת כתובות ה-IP לאשכולות Standard שמותאמים ל-VPC, שבהם לכל מאגר של צמתים יש מספר מקסימלי קבוע של Pods לכל צומת. אתם יכולים להזין את מספר הצמתים וה-Pods כדי לקבוע את הגדלים המתאימים של הקידומות של רשתות המשנה, או להזין את הגדלים של רשתות המשנה כדי לראות את המספר המקסימלי של הצמתים וה-Pods שנתמכים. המחשבון הזה מקצה מספיק טווחי כתובות IP כדי למנוע מצב שבו לא נשארות כתובות IP פנויות כשהאשכול גדל.

טווח כתובות ה-IPv4 הראשי של רשת המשנה

כשמתכננים את טווח כתובות ה-IPv4 הראשי של רשת המשנה של האשכול, כדאי להביא בחשבון את הדברים הבאים:

  • לכל רשת משנה חייב להיות טווח ראשי של כתובות IP. זהו טווח כתובות ה-IP ש-GKE משתמש בו כדי להקצות כתובות IP למאזני עומסים פנימיים ולצמתים.
  • אי אפשר לצמצם או לשנות את טווח כתובות ה-IP הראשי של רשת משנה אחרי שהיא נוצרה.
  • אחרי שיוצרים רשת משנה, אפשר להרחיב את טווח כתובות ה-IP הראשי שלה, אבל אי אפשר לצמצם אותו. אם מרחיבים רשת משנה שמשמשת אשכול עם רשתות מורשות, צריך להוסיף את טווח כתובות ה-IP המורחב לרשימת הרשתות המורשות של מישור הבקרה. לפני שמרחיבים טווח, חשוב לקרוא את המגבלות וההמלצות שמפורטות במאמר הרחבת טווח IPv4 ראשי.
  • שתי כתובות ה-IP הראשונות ושתי כתובות ה-IP האחרונות בטווח כתובות ה-IP הראשי שמורות ל-Google Cloud.
  • באשכולות עם Private Service Connect, כתובת ה-IP הפנימית שמוקצית לנקודת הקצה של מישור הבקרה מוקצית באמצעות טווח רשת המשנה הראשי. עם זאת, אפשר לשנות את הקצאת כתובת ה-IP הזו באמצעות הדגל private-endpoint-subnetwork. מידע נוסף זמין במאמר יצירת אשכול ובחירת טווח כתובות ה-IP של מישור הבקרה.

בטבלה הבאה מוצג המספר המקסימלי של צמתים שאפשר ליצור, בהתאם לגודל של טווח כתובות ה-IPv4 הראשי של רשת המשנה ולהגדרות האשכול:

  • תרחיש 1: מספר הצמתים המקסימלי באשכול שמשתמש ברשת המשנה שמוגדרת כברירת מחדל.
  • תרחיש 2: מספר הצמתים המקסימלי באשכול Private Service Connect שלא משתמש בדגל private-endpoint-subnetwork.
טווח כתובות ה-IP הראשי של רשת המשנה תרחיש 1 תרחיש 2
‫‎/29
הגודל המינימלי של טווח כתובות ה-IP הראשי של רשת משנה
‫4 צמתים ‫3 צמתים
/28 ‫12 צמתים ‫11 צמתים
/27 ‫28 צמתים ‫27 צמתים
/26 60 צמתים 59 צמתים
/25 ‫124 צמתים 123 צמתים
/24 ‫252 צמתים ‫251 צמתים
/23 ‫508 צמתים 507 צמתים
/22 ‫1,020 צמתים ‫1,019 צמתים
/21 ‫2,044 צמתים ‫2,043 צמתים
/20
הגודל שמוגדר כברירת מחדל לטווח כתובות ה-IP הראשי של תת-רשת ברשתות במצב אוטומטי
‫4,092 צמתים ‫4,091 צמתים
/19 ‫8,188 צמתים 8,187 צמתים
‫‎/9
הגודל המקסימלי של טווח כתובות ה-IP הראשי של רשת משנה
‫8,388,604 צמתים ‫8,388,603 צמתים

הרחבת טווח כתובות ה-IP הראשיות

אם נגמרו לכם כתובות ה-IP בטווח הראשי, אתם יכולים להרחיב את הטווח בכל שלב, גם כשמשאבים כמו מאזני עומסים וקבוצות של נקודות קצה ברשת משתמשים ברשת המשנה. Google Cloud

לפני שמרחיבים את טווח כתובות ה-IP הראשי, חשוב להביא בחשבון את הנקודות הבאות:

  • אסור שיהיו טווחי כתובות IP חופפים ברשת המשנה.
  • ‫GKE משתמש בטווח כתובות ה-IP הראשי כדי להקצות כתובות IP למאזני עומסים פנימיים ולצמתים.
  • אם האשכול משתמש ברשתות מורשות, צריך להוסיף את טווח כתובות ה-IP הראשי המורחב לרשימת הרשתות המורשות.

נוסחאות שימושיות

אתם יכולים להשתמש בנוסחאות הבאות כדי:

  • מחשבים את המספר המקסימלי של צמתים, N, שמסכת רשת נתונה יכולה לתמוך בהם באשכולות שמשתמשים ברשת המשנה שמוגדרת כברירת מחדל. השתמשו ב-S לגודל של מסכת הרשת, שהטווח החוקי שלה הוא בין 9 ל-29, כולל.

    $$ N = 2^{(32 - S)} - 4 $$
  • חשבו את הגודל של מסכת הרשת, S, שנדרשת כדי לתמוך ב-N צמתים לכל היותר:

    $$ S = 32 - \lceil{log_2(N + 4)}\rceil $$

    \( \lceil{ }\rceil \) היא פונקציית התקרה (המספר השלם הקטן ביותר), כלומר עיגול כלפי מעלה למספר השלם הבא. הטווח התקין לגודל של מסכת הרשת, S, הוא בין 9 ל-29, כולל.

באשכולות של Private Service Connect שלא משתמשים בדגל private-endpoint-subnetwork, אפשר להשתמש בנוסחאות הקודמות, אבל צריך להפחית את הערך של N ב-1.

שיקולים לגבי גודל האשכול לטווח כתובות IP משני ל-Pods

כדי לחשב את המספר המקסימלי של Pods שהאשכול יכול לתמוך בהם, צריך להביא בחשבון את הגודל של רשת המשנה של ה-Pods ואת המספר המקסימלי של Pods לכל צומת. מספר ה-Pods המקסימלי תלוי במסכה של רשת המשנה ובמספר ה-Pods המקסימלי לכל צומת. בנוסף, חשוב לזכור שחלק מכתובות ה-IP שמורות בטווח הראשי.

משתנים מרכזיים

  • ‫Q: המספר המקסימלי של Pods לכל צומת.
  • ‫DS: גודל בלוק ה-CIDR שנבחר לרשת המשנה של Pod (לדוגמה, /17).
  • ‫M: גודל מסכת הרשת של טווח ה-Pod של כל צומת.
  • ‫HM: מספר הביטים של המארח למסכת הרשת של טווח ה-Pod של הצומת.
  • ‫HD: מספר הביטים של המארח בבלוק ה-CIDR של רשת המשנה של Pod.
  • ‫MN: המספר המקסימלי של הצמתים שאפשר לתמוך בהם.
  • ‫MP: המספר המקסימלי של Pods שאפשר לתמוך בהם.
  • ‫S: אורך הקידומת של טווח כתובות ה-IP הראשי של רשת המשנה.
  • ‫N: מספר כתובות ה-IP שאפשר להשתמש בהן בטווח כתובות ה-IP הראשי של רשת המשנה.

שלבים לחישוב מספר הפודים המקסימלי

  1. קובעים את המספר המקסימלי של Pods לכל צומת (Q):

    • באשכולות Autopilot, הערך של Q קבוע ומוגדר ל-32.
    • באשכולות רגילים, אפשר להגדיר את Q.
  2. מגדירים את הגודל של בלוק ה-CIDR של רשת המשנה של ה-Pod‏ (DS):

    • קובעים את הגודל של בלוק ה-CIDR שנבחר לרשת המשנה של ה-Pod (לדוגמה, /17).
  3. מחשבים את גודל מסכת הרשת (M):

    $$ M = 31 - \lceil{log_2(Q)}\rceil $$

    מחליפים את Q במספר הפודים המקסימלי לכל צומת. משתמשים בפונקציה ceiling‏ (\( \lceil \rceil \)) כדי לעגל כלפי מעלה למספר השלם הקרוב ביותר.

  4. מחשבים את הביטים של המארח לטווח ה-Pod‏ (HM):

    $$ HM = 32 - M $$
  5. מחשבים את הביטים של המארח לבלוק ה-CIDR שנבחר (HD):

    $$ HD = 32 - DS $$
  6. מחשבים את המספר המקסימלי של צמתים (MN):

    $$ MN = 2^{(HD - HM)} $$

    התוצאה של החישוב הזה היא המספר המקסימלי של צמתים שרשת המשנה של Pod שנבחרה יכולה לתמוך בהם.

  7. חישוב המספר המקסימלי של Pods‏ (MP):

    $$ MP = MN * Q $$

    התוצאה של החישוב הזה היא המספר המקסימלי של Pods שהאשכול יכול לתמוך בהם.

  8. מחשבים את מספר כתובות ה-IP שאפשר להשתמש בהן בטווח הראשי (N):

    $$ N = 2^{(32 - S)} - 4 $$

    כאשר S הוא אורך הקידומת של טווח ה-CIDR הראשי של רשת המשנה.

הערות חשובות

  • כל כתובות ה-IP בטווח המשני זמינות לשימוש של Pods.
  • החישובים האלה מספקים את הערכים המקסימליים התיאורטיים. גורמים אחרים יכולים להשפיע על הביצועים בעולם האמיתי.

דוגמה

נניח שאתם יוצרים אשכול GKE Autopilot עם המאפיינים הבאים:

  • בלוק CIDR של תת-רשת של Pod בגודל /17 (DS = 17).
  • עד 32 Pods לכל צומת (Q = 32).

מחשבים את המספר המקסימלי של Pods:

  1. \( M = 31 - \lceil{log_2(32)}\rceil = 26 \)
  2. \( HM = 32 - 26 = 6 \)
  3. \( HD = 32 - 17 = 15 \)
  4. \( MN = 2^{(15 - 6)} = 512 \)
  5. \( MP = 512 * 32 = 16384 \)

האשכול הזה יכול לתמוך ב-512 צמתים וב-16,384 Pods לכל היותר.

כדי להוסיף עוד כתובות IPv4 לפודים, אפשר להוסיף טווחי כתובות IPv4 לפודים או להוסיף רשתות משנה לאשכולות.

טווח כתובות IP משני של רשת המשנה לשירותים

חשוב לתכנן בקפידה את טווח כתובות ה-IP המשני של Services. מכיוון שזהו גם טווח כתובות IP משני של רשת משנה, אי אפשר לשנות את הטווח הזה אחרי שיוצרים את האשכול.

אם אתם משתמשים בשירותים בכמה אשכולות, האובייקט ServiceImport משתמש בכתובות IP מטווח כתובות ה-IP המשני של השירותים.

באשכולות GKE Autopilot שפועלים בגרסה 1.27 ואילך ובאשכולות GKE Standard שפועלים בגרסה 1.29 ואילך, GKE מקצה כברירת מחדל כתובות IP לשירותים מטווח שמנוהל על ידי GKE: ‏34.118.224.0/20. כך לא תצטרכו לציין טווח כתובות IP משלכם לשירותים. צריך להתחשב בשיקולים הבאים:

  • אפשר גם לציין טווחים בהתאמה אישית לשירותים באמצעות הדגל --services-ipv4-cidr או הדגל --services-secondary-range-name.
  • אם מציינים רק גודל טווח באמצעות הדגל --services-ipv4-cidr (לדוגמה, /22), GKE עדיין משתמש בטווח שמנוהל על ידי GKE כדי לקבל את טווח המשנה של הכתובות.
  • כשמשתמשים בטווח בניהול Google, ‏GKE לא יוצר טווח כתובות IP משני נפרד לשירותים. הטווח שמנוהל על ידי GKE לא משתמש במכסת טווח כתובות ה-IP המשני של רשת המשנה.

בטבלה הבאה מוצג המספר המקסימלי של שירותים שאפשר ליצור באשכול אחד באמצעות רשת המשנה, בהתאם לגודל של טווח כתובות ה-IP המשני של רשת המשנה לשירותים.

טווח כתובות IP משני לשירותים מספר השירותים המקסימלי
‫‎/28
טווח הכתובות הקטן ביותר האפשרי לשירות כאשר שיטת ההקצאה של הטווח המשני היא בניהול המשתמש
‫16 שירותים
‫‎/27
טווח הכתובות הקטן ביותר האפשרי לשירות כששיטת ההקצאה של הטווח המשני מנוהלת על ידי GKE
‫32 שירותים
/26 ‫64 שירותים
/25 ‫128 שירותים
/24 ‫256 שירותים
/23 ‫512 שירותים
/22 ‫1,024 שירותים
/21 ‫2,048 שירותים
‫‎/20
הגודל שמוגדר כברירת מחדל לטווח הכתובות המשני של רשת המשנה לשירותים, כשהשיטה להקצאת הטווח המשני מנוהלת על ידי GKE
‫4,096 שירותים
/19 ‫8,192 שירותים
/18 ‫16,384 שירותים
/17 ‫32,768 שירותים
/16
טווח הכתובות הגדול ביותר האפשרי של השירות
65,536 שירותים

שיתוף טווחי כתובות IP בין אשכולות GKE

אתם יכולים לשתף את הטווח הראשי, את טווח כתובות ה-IP המשני של Pods ואת טווח כתובות ה-IP המשני של Services בין אשכולות באותה תת-רשת. ההתנהגות הזו זמינה גם לאשכולות רגילים וגם לאשכולות Autopilot.

אם יש לכם צוות מרכזי שמנהל את התשתית של האשכולות, יכול להיות שתרצו לשתף טווחי כתובות IP. כדי לצמצם את התקורה, אפשר ליצור שלושה טווחים לפודים, לשירותים ולצמתים, ולהשתמש בהם מחדש או לשתף אותם, במיוחד במודל של VPC משותף. היא גם יכולה להקל על מנהלי הרשת לנהל כתובות IP, כי הם לא צריכים ליצור רשתות משנה ספציפיות לכל אשכול.

שיתוף טווח רשת המשנה המותאם אישית של מישור הבקרה

כברירת מחדל, GKE משתמש בטווח של רשת המשנה הראשית כדי להקצות את נקודת הקצה הפנימית של מישור הבקרה. עם זאת, באשכולות עם Private Service Connect, אתם יכולים להגדיר את GKE להקצות את נקודת הקצה הפנימית מרשת משנה אחרת שיצרתם. אפשר לשתף את רשת המשנה הזו בין אשכולות אחרים, או בין פרויקטים אם אתם משתמשים ב-VPC משותף.

שיתוף טווח כתובות ה-IP הראשי של הצמתים

אם יוצרים יותר מאשכול אחד ברשת המשנה, טווח כתובות ה-IP הראשי של הצמתים משותף כברירת מחדל.

לשיתוף של כתובת ה-IP הראשית של הצמתים יש את המגבלות הבאות:

  • אם אתם משתפים את טווח כתובות ה-IP הראשי של הצמתים עם שני אשכולות או יותר שמותאמים ל-VPC, אשכול אחד יכול להשתמש בחלק גדול מטווח כתובות ה-IP המשותף, ולאשכולות האחרים לא יישארו מספיק כתובות IP כדי להתרחב.

שיתוף טווח כתובות ה-IP המשני של Pods

כשמשתפים את הטווח המשני של Pods, כל Pod עדיין מקבל כתובת IP ייחודית.

לשיתוף של טווח כתובות ה-IP המשני של Pods יש את המגבלות הבאות:

  • אם אתם משתפים את טווח כתובות ה-IP המשני של Pods עם שני אשכולות המותאמים ל-VPC או יותר, אשכול אחד יכול להשתמש בחלק גדול מטווח כתובות ה-IP המשותף, כך שלאשכולות האחרים לא יישארו מספיק כתובות IP להרחבה.

  • מבין הסוגים השונים של טווחים משניים, אי אפשר לשתף בין אשכולות את הטווחים בניהול GKE ואת הטווחים הנוספים של Pod.

  • כדי לשתף טווח משני של כתובות IP, מעבירים אותו בשורת הפקודה באמצעות --cluster-secondary-range. אי אפשר להשתמש בטווח משני משותף כשיוצרים אשכולות בממשק המשתמש.

שיתוף טווח כתובות ה-IP המשני של Services

כשמשתמשים בטווחים משניים בניהול המשתמש, שני אשכולות או יותר יכולים להשתמש בו-זמנית באותו טווח משני של כתובות IPv4 ברשת המשנה בשביל שירותים.

כדי להגדיר שני אשכולות או יותר שישתפו טווח כתובות IPv4 משני של רשת משנה משותפת לשירותים, צריך להשתמש באותו טווח כתובות IPv4 משני של רשת משנה כשיוצרים כל אשכול. אין צורך בדגל הגדרה נפרד כדי לשתף טווח כתובות IPv4 משותף לשירותים.

כשמשתפים טווח כתובות IPv4 משותף לשירותים, כל אשכול משתמש בכל טווח כתובות ה-IPv4 המשני של רשת המשנה לשירותים באופן פנימי. כתובות ה-IP של השירותים מתוכנתות בתוך הצומת של כל אשכול, אבל הן לא מוקצות לממשק הרשת של אף צומת. אי אפשר לנתב את כתובות ה-IP של השירותים בתוך רשת ה-VPC של האשכול. רק פודים של לקוחות באותו אשכול של השירות יכולים להשתמש בכתובות ה-IP של השירות.

כש-Pod שולח חבילה לכתובת IP של שירות, ההגדרה של iptables או eBPF בצומת מבצעת תרגום כתובת רשת (NAT) של היעד, ומשנה את כתובת ה-IP של היעד של החבילה מכתובת ה-IP של השירות לכתובת IP של Pod שמספק את השירות. חבילת הנתונים מנותבת על סמך כתובת ה-IP של Pod היעד.

שיתוף טווח כתובות ה-IP המשני של Services מספק את היתרונות הבאים:

  • צמצום מספר הטווחים הייחודיים של כתובות IP משניות לשירותים שנוצרו בתת-רשת
  • שימוש בפחות כתובות IP

לשיתוף של טווח כתובות ה-IP המשני לשירותים יש את המגבלות הבאות:

  • אי אפשר לשתף את טווח כתובות ה-IP המשני של Services עם Cloud DNS ברמת VPC ל-GKE.
  • אי אפשר לשתף טווחים שתואמים לביטוי הרגולרי הבא:

    ^gke-.*-services-[abcdef0-9]{8}
    
  • כדי לשתף טווח משני של כתובות IP לשירותים, מעבירים אותו בשורת הפקודה באמצעות --cluster-secondary-range. כשיוצרים אשכולות בממשק המשתמש, אי אפשר להשתמש בטווח משני משותף לשירותים.

טווחי הגבלת צמתים

המספר המקסימלי של Pods ו-Services באשכול GKE נתון מוגבל לפי הגודל של הטווחים המשניים של האשכול. מספר הצמתים המקסימלי באשכול מוגבל על ידי הגודל של טווח כתובות ה-IP הראשי של רשת המשנה של האשכול וגם טווח הכתובות של Pod באשכול.

הודעת השגיאה הבאה מציינת שטווח כתובות ה-IP הראשי של רשת המשנה או טווח כתובות ה-IP של Pod באשכול (טווח כתובות ה-IP המשני של רשת המשנה ל-Pods) מוצה:

Instance [node name] creation failed: IP space of [cluster subnet] is
exhausted

כדי להוסיף עוד כתובות IP לצמתים, אפשר להרחיב את רשת המשנה הראשית או להוסיף כתובות IP חדשות לפודים באמצעות CIDR לא רציף לכמה פודים. למידע נוסף, קראו את המאמר אין מספיק כתובות IP פנויות לפודים.

רשתות בשני פרוטוקולים, IPv4/IPv6

באמצעות רשתות עם מחסנית כפולה של IPv4/IPv6, אתם יכולים להגדיר איך GKE מקצה כתובות IP‏ (ipFamilies) לאובייקטים הבאים:

  • ל-Pods ולצמתים, GKE מקצה גם כתובות IPv4 וגם כתובות IPv6.
  • לשירותים, GKE מקצה כתובות של סטאק יחיד (IPv4 בלבד או IPv6 בלבד) או כתובות של סטאק כפול.

בגרסה 1.24 ואילך של GKE, אתם יכולים להפעיל רשתות עם שני סוגי כתובות IP באשכולות GKE חדשים ברשתות VPC נפרדות ומשותפות. אפשר גם להחיל מדיניות רשת ב-Kubernetes כשהרשתות במצב דואלי מופעלות. אם מופיעות שגיאות אימות כשמפעילים רשתות במצב דואלי באשכולות GKE ששודרגו מגרסאות 1.24 לגרסאות 1.25 או 1.26, צריך לפנות ל Google Cloud צוות התמיכה.

יתרונות

רשתות עם מחסנית כפולה מספקות את היתרונות הבאים:

  • מאפשר תקשורת IPv6 מקצה לקצה.
  • מאפשר ביצועים טובים יותר בהשוואה לתרגום כתובות רשת (NAT) או למנהור IP. זה קורה כי אין תרגום של IPv6 ל-IPv4.

זמינות

אלה המגבלות של רשתות ב-GKE עם שני סוגי כתובות IP:

  • רשתות עם שני סוגי כתובות IP זמינות רק לאשכולות המותאמים ל-VPC שבהם פועל GKE Dataplane V2.
  • רשתות עם שני סוגי כתובות נתמכות רק ברשתות משנה ברשתות VPC במצב בהתאמה אישית. למידע נוסף, ראו Google Cloud סוגים של רשתות VPC.
  • אין תמיכה בכתובות IPv6 במחסנית יחידה לפודים או לצמתים.
  • אשכולות עם סטאק כפול צורכים יותר זיכרון לכל צומת כדי לתמוך גם ב-IPv4 וגם ב-IPv6, בהשוואה לאשכולות עם IPv4 בלבד. חשוב לקחת בחשבון את המאפיין הזה כשמגדירים אשכולות בקנה מידה גדול.
  • אשכולות עם סטאק כפול לא תומכים בגישה פרטית ל-Google דרך IPv6.
  • בגרסאות GKE‏ 1.26.0-gke.2200 ואילך יש תמיכה ב-IPv6 (רשומות AAAA) עם Cloud DNS לפעולות פנימיות באשכול ולשאילתות DNS חיצוניות.
  • שירותי Dual-stack נתמכים בשירותי ClusterIP,‏ NodePort ו-LoadBalancer.
  • אין תמיכה ב-IPv6 בצומתי Windows.

לפני שיוצרים אשכול עם רשתות בפריסת dual-stack, חשוב להביא בחשבון את המגבלות שצוינו למעלה. איך יוצרים אשכולות מותאמים ל-VPC עם רשתות במחסנית כפולה

הקצאת כתובות IPv6 ציבוריות ופרטיות

בטבלה הבאה מופיע סיכום של כתובות IPv6 ציבוריות ופרטיות, עם התנהגות והגדרות של רשתות בסטאק כפול:

דגל ipv6-access-type הקצאת כתובת IP טווח של רשת משנה
EXTERNAL

‫GKE מקצה כתובות IPv6 חיצוניות שניתן לנתב לאינטרנט.

החל מ-2600:1900/28
INTERNAL

‫GKE מקצה כתובות IPv6 פנימיות שלא ניתנות לניתוב לאינטרנט.

אשכולות עם סוג הגישה INTERNAL ל-IPv6 לא יכולים לגשת לאינטרנט דרך כתובות IPv6. ‫Cloud NAT לא תומך בכתובות IPv6.

מתוך fd20::/20 (שהוא קבוצת משנה של טווח ה-ULA הכולל: fc00::/7).

מידע נוסף זמין במאמר איך משתמשים ברשת עם שני סוגי כתובות IP באשכול המותאם ל-VPC.

ארכיטקטורה

לאשכול עם רשת IPv4/IPv6 במצב דואלי מוקצים הטווחים הבאים:

  • טווח ‎ /64 לכל רשת משנה כטווח ראשי.
  • טווח של ‎ /96 לכל צומת מהטווח הראשי, שישמש כטווח כתובות ה-IP הראשי של הצומת.
  • טווח של ‎ /112 לכל צומת מטווח כתובות ה-IP של הצומת הראשי, שישמש כטווח כתובות IP של Pod לאותו צומת. ברשתות עם שני סטאקים, הפודים מקבלים את כתובות ה-IPv6 שלהם מטווח כתובות ה-IP הכולל של הפודים (בדומה לצמתים), ולא מטווח משני של פודים ששמורים לכתובות IPv4.

    טווח כתובות ה-IP הכולל של Pod מורכב מטווחים לא חופפים מטווח ה-IP הראשי של הצומת. לכן, טווח כתובות ה-IP של ה-Pod לא רציף.

  • טווח של ‎ /112 לשימוש בשירותים. הטווח הזה מגיע מטווח ‎ /64 מטווח הכתובות הפרטיות של Google, ששמור לטווח כתובות ה-IP המשני של שירותי GKE.

בתרשים הבא מוצג איך Google Cloud ו-GKE מקצים כתובות IPv6:

הקצאת כתובות IPv6 ב-GKE. תרשים שמראה איך Google Cloud ו-GKE מקצים כתובות IPv6.

בתרשים, הטווח הראשי של רשת המשנה של ה-VPC הוא 2600:1900:0:1::/64 והטווח השמור לשירותי GKE הוא 2600:2D00:0:4::0:0/64. לכל צומת באשכול יש טווח ‎ /96 לטווח כתובות ה-IP הראשי של הצומת, וטווח ‎ /112 לטווח כתובות ה-IP של ה-Pod. לאשכול יש גם טווח כתובות IP משני של שירותים ‎ /112.

שירותים

אפשר ליצור שירות בסטאק כפול של IPv4/IPv6 מסוג ClusterIP או NodePort. אשכולות GKE חדשים שפועלים בגרסה 1.29 ואילך תומכים בשירותים עם מחסנית כפולה מסוג LoadBalancer.

אפשר לחשוף פריסה באמצעות שירות מסוג ClusterIP,‏ NodePort או LoadBalancer. לכל אחד מסוגי השירותים האלה, אפשר להגדיר את השדות ipFamilies ו-ipFamilyPolicy כ-IPv4, כ-IPv6 או כשירות במצב דואלי. למידע נוסף, ראו דוגמה להגדרה של פריסה.

המאמרים הבאים