פרמטרים של שירות LoadBalancer

בדף הזה מתוארים פרמטרים של מניפסטים של שירותים ששולטים בהתנהגות ובהגדרה של שירות LoadBalancer. לפני שקוראים את הדף הזה, חשוב להכיר את המושגים של שירות LoadBalancer ב-Google Kubernetes Engine ‏ (GKE).

פרמטרים של שירות

פלטפורמת GKE תומכת בפרמטרים הבאים של שירותי LoadBalancer.

פרמטר שדה השירות ותיאור פנימי חיצוני תמיכה בגרסאות
מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי
  • spec.loadBalancerClass: networking.gke.io/l4-regional-internal
  • networking.gke.io/load-balancer-type: "Internal"

הוראה ל-GKE ליצור מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי.

מאזן העומסים משתמש ב-GCE_VM_IP NEG backends אם מתקיים אחד מהתנאים הבאים:

  • מחילים את מניפסט השירות על אשכול שמופעל בו חלוקת משנה של GKE.
  • מניפסט השירות מוחל על אשכול שפועלת בו גרסה 1.36 ואילך של GKE. החל מגרסה 1.36 של GKE, התכונה 'חלוקת משנה של GKE' מופעלת באופן אוטומטי.

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

  • spec.loadBalancerClass: networking.gke.io/l4-regional-internal: נדרשת גרסה ‎1.33.1-gke.1779000 ואילך של GKE והפעלת חלוקת משנה של GKE.
  • networking.gke.io/load-balancer-type: "Internal": כל הגרסאות הנתמכות.

מומלץ להשתמש ב-spec.loadBalancerClass אם האשכול שלכם משתמש ב-GKE בגרסה 1.33.1-gke.1779000 ואילך, והאפשרות GKE subsetting מופעלת. המאפיין הזה הוא קבוע ואי אפשר לשנות אותו אחרי שקובץ המניפסט של השירות הוחל על אשכול.

מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי שמבוסס על שירות לקצה העורפי
  • spec.loadBalancerClass: networking.gke.io/l4-regional-external
  • cloud.google.com/l4-rbs: "enabled"

ההגדרה הזו מורה ל-GKE ליצור מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי.

מאזן העומסים משתמש ב-GCE_VM_IP NEG backends אם מתקיים אחד מהתנאים הבאים:

  • המניפסט של השירות כולל את spec.loadBalancerClass: networking.gke.io/l4-regional-external והוא מוחל על אשכול שמריץ את GKE בגרסה ‎1.33.1-gke.1779000 ואילך.
  • מניפסט השירות כולל את ההערה cloud.google.com/l4-rbs: "enabled" והוא מוחל על אשכול שפועלת בו גרסה 1.32.2-gke.1652000 של GKE ואילך.

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

  • spec.loadBalancerClass: networking.gke.io/l4-regional-external: נדרשת גרסה 1.33.1-gke.1779000 של GKE ואילך.
  • cloud.google.com/l4-rbs: "enabled": כל הגרסאות הנתמכות.

מומלץ להשתמש ב-spec.loadBalancerClass אם האשכול שלכם משתמש ב-GKE מגרסה 1.33.1-gke.1779000 ואילך. המאפיין הזה הוא קבוע ואי אפשר לשנות אותו אחרי שמחילים את מניפסט השירות על אשכול.

איזון עומסים משוקלל networking.gke.io/weighted-load-balancing: "pods-per-node"

מאפשר לצמתים עם יותר פודים של שרתים לקבל חלק גדול יותר מהחיבורים החדשים בהשוואה לצמתים עם פחות פודים של שרתים.

‫GKE 1.31.0 ואילך
מדיניות בנושא תנועה פנימית spec.internalTrafficPolicy

אם מגדירים את הערך Local, ‏ GKE מעביר חבילות רק מפודים של לקוחות בצומת לפודים שמשרתים באותו צומת. כשמגדירים את הערך Cluster, ‏ GKE מנתב חבילות מ-Pods של לקוחות בצומת ל-Pods של שרתים בכל צומת. פרטים נוספים מופיעים במאמר מדיניות תעבורה פנימית של שירות.

הפרמטר הזה לא נתמך באשכולות שמופעל בהם GKE Dataplane V2.

‫GKE 1.22 ואילך
External Traffic Policy spec.externalTrafficPolicy

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

פרטים נוספים זמינים במאמר מושגים של שירות LoadBalancer.

‫GKE 1.14 ואילך (‫1.23.4-gke.400 ואילך למאגר צמתים של Windows).
תחום עניין משותף אזורי spec.trafficDistribution: PreferSameZone

הגדרה של זיקה אזורית לשירותים פנימיים של LoadBalancer. הזיקה לתחום (zonal) קובעת לאיזה תחום מאזן העומסים הפנימי להעברת סיגנל ללא שינוי ינתב תעבורה נכנסת עבור לקוחות תואמים, כשאפשר למצוא התאמה לתחום. כדי להשתמש בהעדפה אזורית, צריך להפעיל את תכונת החלוקה לקבוצות משנה ב-GKE (התכונה מופעלת כברירת מחדל מגרסה 1.36 של GKE ואילך).

מידע נוסף זמין במאמר זיקה אזורית וחלוקת תנועה.

תצוגה מקדימה ב-GKE 1.33.3-gke.1392000 ואילך. זמין לכלל המשתמשים ב-GKE מגרסה 1.36 ואילך.
יציאת בדיקת תקינות spec.healthCheckNodePort

פריסת בדיקת תקינות של מאזן עומסים לשירותי LoadBalancer. הפרמטר הזה תקף רק אם בשדה spec.externalTrafficPolicy מגדירים את הערך Local.

כל הגרסאות הנתמכות.
כללי חומת אש ורשימת כתובות IP מותרות של המקור spec.loadBalancerSourceRanges

מגדיר כללי חומת אש אופציונליים ב-GKE וברשת ה-VPC כדי לאפשר רק טווחי מקור מסוימים. ‫kube-proxy גם מגדיר כללים של iptables להתאמה לטווחי המקור שצוינו.

כל הגרסאות הנתמכות.
כתובות IP סטטיות
  • spec.loadBalancerIP (IPv4 בלבד)
  • networking.gke.io/load-balancer-ip-addresses

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

  • spec.loadBalancerIP: כל הגרסאות הנתמכות.
  • networking.gke.io/load-balancer-ip-addresses: GKE 1.29 ואילך. פרטים נוספים על דרישות ההגדרה או ההערות של אשכולות זמינים במאמר בנושא פרמטרים של כתובות IP סטטיות.
Network Service Tiers cloud.google.com/network-tier

מציינים את מסלולי שירות הרשת שבהם GKE משתמש עבור כלל ההעברה החיצוני וכתובת ה-IP. הערכים החוקיים של ההערה הם Standard ו-Premium (ברירת מחדל).

‫GKE 1.19 ואילך.
תת-רשת בהתאמה אישית
  • networking.gke.io/internal-load-balancer-subnet
  • networking.gke.io/load-balancer-subnet

(רק ל-IPv6)
גישה גלובלית networking.gke.io/internal-load-balancer-allow-global-access: "true"

מאפשרת ללקוחות בכל אזור ברשת ה-VPC או ברשת מקושרת לגשת לכתובת ה-IP של כלל ההעברה.

גרסת טרום-השקה ב-GKE 1.16 ואילך. זמינה לכלל המשתמשים ב-GKE 1.17.9-gke.600 ואילך.
כל היציאות

‫GKE מגדיר אוטומטית את כלל ההעברה כך שישתמש בכל היציאות אם מצוינות יותר מחמש (עד 100) יציאות ייחודיות ב-spec.ports[].port.

‫GKE גרסה ‎1.18.19-gke.1400 ואילך
ipFamilyPolicy

spec.ipFamilyPolicy

ההגדרה קובעת איך GKE מקצה כתובות IP לשירות. אפשר להגדיר את spec.ipFamilyPolicy בתור SingleStack,‏ PreferDualStack או RequireDualStack.

מידע נוסף זמין במאמר שירותים עם סטאק כפול של IPv4/IPv6.

אשכולות GKE בגרסה 1.29 ואילך תומכים ברשת עם פרוטוקול כפול לשירותי LoadBalancer.
ipFamilies (אופציונלי)

spec.ipFamilies

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

  • IPv4 לשירות IPv4 בלבד.
  • IPv6 לשימוש בשירות IPv6 בלבד.
  • IPv4,IPv6 בשירות עם סטאק כפול שבו כתובת ה-IP הראשית של השירות היא IPv4.
  • IPv6,IPv4 בשירות עם סטאק כפול שבו כתובת ה-IP הראשית של השירות היא IPv6.
אשכולות GKE בגרסה 1.29 ואילך תומכים ברשת עם פרוטוקול כפול לשירותי LoadBalancer.

יציאה לבדיקת תקינות

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

האפשרות להגדיר פרמטר healthCheckNodePort תלויה בהגדרות externalTrafficPolicy הבאות:

externalTrafficPolicy יציאה לבדיקת תקינות
Cluster

אין לך אפשרות להשתמש ב-spec.healthCheckNodePort.

Local

אפשר לבחור יציאה בהתאמה אישית באמצעות התג spec.healthCheckNodePort. אם לא מציינים יציאה, מישור הבקרה של Kubernetes מקצה יציאה לבדיקת תקינות מטווח יציאות הצומת.

כללי חומת אש ורשימת כתובות IP מותרות

אלא אם הגדרתם אשכול לדלג על יצירת כללי חומת אש ב-VPC עבור שירותי LoadBalancer,‏ GKE יוצר כלל חומת אש ב-VPC לתעבורת נתונים נכנסת לכל שירות.

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

  • הכיוון של כלל חומת האש הוא כניסה, והפעולה שלו היא הרשאה. כללי חומת האש שמוגדרים כברירת מחדל לחסימת תנועה נכנסת ב- Cloud de Confianceאומרים ש-GKE משתמש במודל של רשימת היתרים כשיוצרים כללי חומת אש לתנועה נכנסת.
  • ‫GKE מגדיר את הפרוטוקול של כלל חומת האש ואת יציאת היעד בהתאם למה שצוין ברשימת spec.ports[] של השירות.
  • פלטפורמת GKE מגדירה כללים של חומת אש לשירותי LoadBalancer על ידי הגדרה מפורשת של פרמטר היעד לכתובת ה-IP הווירטואלית של LoadBalancer (כלל ההעברה של מאזן העומסים).
  • מערכת GKE מגדירה את פרמטר היעד של כלל חומת האש כך שיכלול את כל הצמתים באשכול.
  • אם השירות כולל spec.loadBalancerSourceRanges[], GKE מגדיר את פרמטר המקור של כלל חומת האש לכתובות ה-IP שברשימה. בנוסף, GKE מגדיר מסלולים וכללים במערכת ההפעלה של הצומת כדי להגביל את כתובות ה-IP של המקור לתנועה מאוזנת עומסים, באמצעות kube-proxy ו-iptables (Legacy Dataplane) או cilium-agent וכללי eBPF (GKE Dataplane V2). אם השירות לא כולל את loadBalancerSourceRanges[], ‏ GKE מגדיר את פרמטר המקור של כלל חומת האש לכל כתובות ה-IP‏ (0.0.0.0/0).

כתובות IP סטטיות

אתם יכולים ליצור כתובת IP סטטית ולהגדיר את GKE להקצות את הכתובת הסטטית הזו לכלל ההעברה של מאזן העומסים. שימוש בכתובת IP סטטית מבטיח שכתובת ה-IP של מאזן העומסים תישאר זהה גם אם מבצעים שינויים בשירות LoadBalancer. בלי כתובת IP סטטית, יכול להיות ש-GKE יקצה כתובת IP אחרת לכלל העברה של מאזן העומסים כשמעדכנים LoadBalancerService. כתובת ה-IP של כלל ההעברה לא זהה לכתובת של שירות spec.clusterIP. כתובת ה-ClusterIP של Service אף פעם לא משתנה כשמעדכנים Service מסוג LoadBalancer.

פרמטרים של כתובת IP סטטית

כדי להגדיר ששירות LoadBalancer ישתמש בכתובת IP סטטית, משתמשים בפרמטר spec.loadBalancerIP או בהערה networking.gke.io/load-balancer-ip-addresses. ב-GKE בגרסה 1.29 ואילך, ההערה מקבלת עדיפות על פני spec.loadBalancerIP אם מניפסט השירות מכיל גם את הפרמטר וגם את ההערה.

פרמטר או הערה וערך דרישות ויכולות
spec.loadBalancerIP:
IPv4_ADDRESS

אפשר לציין כתובת IPv4 פנימית סטטית לשירות Internal LoadBalancer שמבוסס רק על IPv4. אתם יכולים לציין כתובת IPv4 חיצונית סטטית לשירות External LoadBalancer שמבוסס על IPv4 בלבד. הפרמטר פועל עם כל הגרסאות הנתמכות של GKE.

networking.gke.io/load-balancer-ip-addresses:
IP_ADDRESS_RESOURCE_NAME
  • בשירותי LoadBalancer עם מחסנית יחידה, צריך להגדיר את הערך של ההערה לשם משאב כתובת IPv4 או IPv6, ולא לכתובת ה-IP עצמה.
  • בשירותי LoadBalancer עם סטאק כפול, מגדירים את הערך של האנוטציה לשם המשאב של כתובת ה-IPv4 הסטטית ולשם המשאב של טווח כתובות ה-IPv6 הסטטי, כשהם מופרדים בפסיק.

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

  • כדי להשתמש בהערה הזו עם שירות מאזן עומסים פנימי, צריך להפעיל באשכול חלוקת משנה של GKE. החל מגרסה 1.36 של GKE, התכונה 'חלוקת משנה של GKE' מופעלת כברירת מחדל.
  • כדי להשתמש בהערה הזו עם שירות External LoadBalancer, צריך להגדיר את השדה spec.loadBalancerClass לערך networking.gke.io/l4-regional-external במניפסט של השירות כשיוצרים את שירות External LoadBalancer.

שיקולים לגבי שיתוף של כתובת IP משותפת

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

  • כתובות IPv6 סטטיות הן למעשה טווחי כתובות IPv6, אבל GKE מגדיר את הצמתים לקבל חבילות רק בכתובת ה-IPv6 הראשונה (/128) בטווח /96./96

  • כדי ששני שירותים או יותר של איזון עומסים פנימי ישתמשו באותה כתובת IPv4 פנימית או באותו טווח כתובות IPv6 פנימי, צריך ליצור את כתובת ה-IP הסטטית עם המטרה SHARED_LOADBALANCER_VIP.

שירות Internal LoadBalancer שירות LoadBalancer חיצוני
מפרט הניוד

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

אם בשירות Internal LoadBalancer יש יותר מחמש spec.ports[], ‏ GKE מגדיר את כלל ההעברה של מאזן העומסים הפנימי להעברת סיגנל ללא שינוי לשימוש בכל היציאות.

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

  • אם יוצרים שירות Internal LoadBalancer באמצעות יציאת TCP 80, אי אפשר ליצור שירות נוסף באמצעות יציאות TCP 80,‏ 81 ו-90 כי יש חפיפה בין יציאה 80.
  • אם שירות Internal LoadBalancer משתמש ביציאות TCP‏ 80, 8080 ו-90, אי אפשר ליצור שירות אחר באמצעות TCP בכל היציאות, כי זה יוביל גם לחפיפה בין היציאות

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

‫GKE יוצר מאגר יעד שמבוסס על מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי, אם במניפסט של שירות LoadBalancer לא מוגדר השדה spec.loadBalancerClass לערך networking.gke.io/l4-regional-external, או אם הוא לא כולל את ההערה cloud.google.com/l4-rbs: "enabled".

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

‫GKE יוצר מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי שמבוסס על שירות קצה עורפי אם מניפסט שירות LoadBalancer כולל את השדה spec.loadBalancerClass שהערך שלו מוגדר ל-networking.gke.io/l4-regional-external. כללי העברה למאזנים חיצוניים של עומסי רשת להעברת סיגנל ללא שינוי שמבוססים על שירות קצה עורפי תומכים בעד חמישה מספרי יציאה נפרדים או בטווח יציאות רציף.

Network Service Tiers אי אפשר להגדיר את זה – כתובות פנימיות הן תמיד במסלול פרימיום.

אפשר להגדיר את זה לכתובות IPv4 חיצוניות אזוריות סטטיות. אפשר ליצור טווחים סטטיים של כתובות IPv6 חיצוניות אזוריות רק במסלול הפרימיום.

מסלול שירות הרשת שצוין לכתובת ה-IP החיצונית הסטטית צריך להיות זהה לאחד מהמסלולים הבאים:

  • רמת השירות שצוינה בהערה cloud.google.com/network-tier במניפסט של LoadBalancer Service, אם ההערה הזו מופיעה במניפסט, או
  • רמת ברירת המחדל של הפרויקט, אם ההערה cloud.google.com/network-tier לא מופיעה במניפסט של שירות LoadBalancer.

מסלול ברירת המחדל של הפרויקט הוא פרימיום, אלא אם הגדרתם אותו אחרת.

שמירה של כתובת IP

‫GKE לא שומר את כתובות ה-IP הסטטיות שהוגדרו באמצעות ההערות spec.loadBalancerIP או networking.gke.io/load-balancer-ip-addresses. המשמעות היא שכתובת ה-IP שאתם מקצים לשירות יכולה להתפנות כשמוחקים את השירות.

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

  • תתבקשו לשלם בתרומות בלבד.
  • להיות באותו אזור כמו האשכול.
  • להיות באותם מסלולי שירות רשת כמו שירות LoadBalancer.
  • השם לא יכול להיות זהה לשם של LoadBalancer, להתחיל בקידומות כמו k8s- או להיות זהה ל-UUID של השירות.

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

תת-רשת של מאזן עומסים

אתם יכולים להגדיר שירות Internal LoadBalancer כך שישתמש בכתובת IPv4 ארעית או סטטית, בטווח כתובות IPv6 או בשניהם, ברשת משנה בהתאמה אישית שנמצאת באותו אזור ובאותה רשת VPC כמו האשכול. שימוש ברשת משנה מותאמת אישית לשירות Internal LoadBalancer כדי:

  • לקבץ מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי שנוצרו על ידי שירותי Internal LoadBalancer משני אשכולות GKE או יותר באותה רשת VPC ואותו אזור.
  • יוצרים שירותים של מאזן עומסים פנימי, שמאזני העומסים הפנימיים שלהם להעברת סיגנל ללא שינוי כוללים כתובות IPv4 נפרדות מכתובות ה-IPv4 של הצמתים באשכול.
  • בקלסטר עם סטאק כפול, יוצרים שירותים של מאזני עומסים פנימיים להעברת סיגנל ללא שינוי, שלמאזני העומסים הפנימיים האלה יש טווחים של כתובות IPv6 נפרדים מכתובות ה-IPv6 של הצמתים וה-Pods בקלסטר. חובה להשתמש ברשת משנה מותאמת אישית של LoadBalancer כדי לתמוך בשירותים של מאזן עומסים פנימי, אם לרשת המשנה של האשכול יש טווח כתובות IPv6 חיצוני.

אתם יכולים להגדיר שירות חיצוני של איזון עומסים שישתמש בטווח כתובות IPv6 ארעיות או סטטיות ברשת משנה מותאמת אישית שנמצאת באותו אזור ובאותה רשת VPC כמו האשכול. משתמשים בתת-רשת מותאמת אישית כדי ליצור שירותים מסוג External LoadBalancer שמאזני העומסים החיצוניים שלהם להעברת סיגנל ללא שינוי כוללים טווחי כתובות IPv6 נפרדים מכתובות ה-IPv6 של הצמתים וה-Pods באשכול. חובה להשתמש ברשת משנה (subnet) מותאמת אישית של LoadBalancer כדי לתמוך בשירותי LoadBalancer חיצוניים באשכול עם סטאק כפול, כי לרשת המשנה של האשכול יש טווח כתובות IPv6 פנימי.

הערות לגבי רשתות משנה בהתאמה אישית

כדי להנחות את שירות LoadBalancer להשתמש בכתובת IP זמנית או סטטית ברשת משנה מותאמת אישית, משתמשים באחת מההערות הבאות. אם מניפסט של LoadBalancer Service כולל את שתי ההערות, ההערה networking.gke.io/load-balancer-subnet מקבלת עדיפות בתנאי שהדרישות שלה מתקיימות.

הערה וערך דרישות ויכולות
networking.gke.io/internal-load-balancer-subnet:
SUBNET_RESOURCE_NAME

אפשר להשתמש בהערה רק כדי לציין תת-רשת בהתאמה אישית לשירות Internal LoadBalancer עם IPv4 בלבד. ההערה פועלת בכל הגרסאות הנתמכות של GKE.

networking.gke.io/load-balancer-subnet:
SUBNET_RESOURCE_NAME

אפשר לציין תת-רשת בהתאמה אישית לשירות Internal LoadBalancer עם IPv4 בלבד, עם IPv6 בלבד או עם שתי כתובות IP (dual-stack). אפשר לציין רשת משנה בהתאמה אישית עבור שירות איזון עומסים חיצוני עם IPv6 בלבד או עם מחסנית כפולה. ההערה דורשת GKE בגרסה 1.29 ואילך, וגם את הדרישות הנוספות הבאות:

  • כדי להשתמש בהערה הזו כדי לציין רשת משנה מותאמת אישית לשירות Internal LoadBalancer, צריך להפעיל חלוקת משנה של GKE באשכול. החל מגרסה 1.36 ואילך, התכונה 'חלוקת משנה של GKE' מופעלת כברירת מחדל.
  • כדי להשתמש בהערה הזו כדי לציין רשת משנה בהתאמה אישית לשירות External LoadBalancer, צריך לכלול את השדה spec.loadBalancerClass עם הערך networking.gke.io/l4-regional-external במניפסט של השירות כשיוצרים את השירות External LoadBalancer.

רשת משנה וכתובת IPv4 לשירות Internal LoadBalancer

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

כתובת IPv4 סטטית כתובת IPv4 זמנית
תת-רשת בהתאמה אישית
  • צריך להיות באותה רשת VPC ואותו אזור כמו האשכול.
  • במקרה של IPv4 בלבד, אפשר לציין את כתובת ה-IP באמצעות ההערות של רשת המשנה המותאמת אישית.
  • במקרה של כתובות IPv4 ו-IPv6, צריך לציין את הכתובת באמצעות ההערה .networking.gke.io/load-balancer-subnet
רשת משנה בהתאמה אישית וכתובת IPv4 סטטית: כתובת ה-IPv4 הפנימית הסטטית צריכה להיווצר בטווח הכתובות הראשי של IPv4 ברשת המשנה בהתאמה אישית. רשת משנה בהתאמה אישית וכתובת IPv4 ארעית: ‏ GKE משתמש בכתובת IPv4 פנימית שלא הוקצתה בטווח הכתובות הראשי של IPv4 ברשת המשנה בהתאמה אישית.
רשת משנה של אשכול רשת משנה של האשכול וכתובת IPv4 סטטית: כתובת ה-IPv4 הפנימית הסטטית צריכה להיווצר בטווח הכתובות הראשי של IPv4 ברשת המשנה של האשכול. רשת משנה של האשכול וכתובת IPv4 ארעית: ‏ GKE משתמש בכתובת IPv4 פנימית שלא הוקצתה בטווח הכתובות הראשי של רשת המשנה של האשכול.

תת-רשת וטווח כתובות IPv6 לשירות Internal LoadBalancer

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

טווח כתובות IPv6 סטטי טווח של כתובות IPv6 זמניות
תת-רשת מותאמת אישית עם מחסנית כפולה
  • צריך להיות באותה רשת VPC ואותו אזור כמו האשכול.
  • חובה להגדיר טווח כתובות IPv6 פנימיות (סוג הגישה INTERNAL).
  • חובה לציין את המאפיין באמצעות האנוטציה networking.gke.io/load-balancer-subnet.
רשת משנה בהתאמה אישית וטווח כתובות IPv6 סטטיות: טווח כתובות ה-IPv6 הפנימיות הסטטיות /96 צריך להיווצר בטווח כתובות ה-IPv6 הפנימיות של רשת המשנה בהתאמה אישית /64. רשת משנה בהתאמה אישית וטווח כתובות IPv6 ארעיות: ‫GKE משתמש בטווח כתובות IPv6 פנימיות שלא הוקצה, /96 מתוך טווח כתובות IPv6 פנימיות של רשת המשנה בהתאמה אישית. /64
תת-רשת של אשכול עם מחסנית כפולה
  • חובה להגדיר טווח כתובות IPv6 פנימיות (סוג הגישה INTERNAL).
רשת משנה של האשכול וטווח כתובות IPv6 סטטיות: טווח כתובות ה-IPv6 הפנימיות הסטטיות /96 צריך להיות בטווח כתובות ה-IPv6 הפנימיות של רשת המשנה של האשכול /64. רשת משנה של האשכול וטווח כתובות IPv6 ארעיות: ‫GKE משתמש בטווח כתובות IPv6 פנימיות /96 שלא הוקצה, מתוך טווח כתובות IPv6 פנימיות /64 של רשת המשנה של האשכול.

תת-רשת וכתובת IPv4 לשירות External LoadBalancer

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

תת-רשת וטווח כתובות IPv6 לשירות External LoadBalancer

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

טווח כתובות IPv6 סטטי טווח של כתובות IPv6 זמניות
תת-רשת מותאמת אישית עם מחסנית כפולה
  • צריך להיות באותה רשת VPC ואותו אזור כמו האשכול.
  • חייב להיות טווח כתובות IPv6 חיצוניות (סוג הגישה EXTERNAL).
  • חובה לציין את המאפיין באמצעות האנוטציה networking.gke.io/load-balancer-subnet.
רשת משנה בהתאמה אישית וטווח כתובות IPv6 סטטיות: טווח כתובות ה-IPv6 החיצוניות הסטטיות /96 צריך להיווצר בטווח כתובות ה-IPv6 החיצוניות /64 של רשת המשנה בהתאמה אישית. אפשר ליצור טווחים של כתובות IPv6 חיצוניות סטטיות רק במסלול הפרימיום. רשת משנה בהתאמה אישית וטווח כתובות IPv6 ארעיות: ‫GKE משתמש בטווח כתובות IPv6 חיצוניות /96 שלא הוקצה, מתוך טווח כתובות IPv6 חיצוניות /64 של רשת המשנה בהתאמה אישית.
תת-רשת של אשכול עם מחסנית כפולה
  • חייב להיות טווח כתובות IPv6 חיצוניות (סוג הגישה EXTERNAL).
רשת משנה של אשכול וטווח כתובות IPv6 סטטיות: טווח כתובות ה-IPv6 החיצוניות הסטטיות /96 צריך להיווצר בטווח כתובות ה-IPv6 החיצוניות של רשת המשנה של האשכול /64. אפשר ליצור טווחים של כתובות IPv6 חיצוניות סטטיות רק במסלול הפרימיום. רשת משנה של האשכול וטווח כתובות IPv6 ארעיות: ‫GKE משתמש בטווח כתובות IPv6 חיצוניות /96 שלא הוקצה, מתוך טווח כתובות IPv6 חיצוניות /64 של רשת המשנה של האשכול.

גישה כללית

אם ההערה networking.gke.io/internal-load-balancer-allow-global-access מוגדרת כ-false או לא מוגדרת לשירות Internal LoadBalancer,‏ GKE יוצר מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי, שכלל ההעברה שלו משבית את הגישה הגלובלית. כשגישה גלובלית מושבתת, לקוחות שצריכים לגשת למאזן העומסים צריכים להיות באותו אזור ובאותה רשת VPC, או ברשת שמחוברת לרשת ה-VPC של האשכול.

כשההערה networking.gke.io/internal-load-balancer-allow-global-access היא true בשירות Internal LoadBalancer, ‏ GKE מפעיל את אפשרות הגישה הגלובלית בכלל ההעברה של מאזן עומסי הרשת הפנימי להעברת סיגנל ללא שינוי. לקוחות שנמצאים באזור כלשהו ברשת ה-VPC או ברשת שמחוברת לרשת ה-VPC של האשכול יכולים לגשת למאזן העומסים.

מידע נוסף על האופן שבו גישה גלובלית חלה על לקוחות ברשת מחוברת זמין במאמרים הבאים:

כל כללי העברה ליציאה אחרת

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

ב-GKE, שירות Internal LoadBalancer יכול לתמוך בעד 100 יציאות ב-spec.ports[].port של השירות. אם שירות Internal LoadBalancer מגדיר עד חמש יציאות, כלל ההעברה יכלול את היציאות הספציפיות האלה. עם זאת, אם בשירות מצוינים יותר מחמישה פורטים, כלל ההעברה יוגדר אוטומטית כך שיתאים לכל הפורטים. כשמגדירים כלל העברה לשימוש בכל היציאות, GKE יוצר רק כללים בחומת האש של תעבורת נתונים נכנסת (ingress) ליציאות הספציפיות שהוגדרו ב-spec.ports[].port בשירות.

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

שירות LoadBalancer עם סטאק כפול של IPv4/IPv6

אפשר ליצור שירות Internal או External LoadBalancer שיכול להיות single-stack (IPv4 בלבד או IPv6 בלבד) או dual-stack. שירותי LoadBalancer עם מחסנית יחידה יוצרים כלל העברה יחיד עם כתובת IPv4 או כתובת IPv6. שירותי LoadBalancer עם סטאק כפול יוצרים שני כללי העברה: אחד עם כתובת IPv4 ואחד עם כתובת IPv6. כדי ליצור שירות LoadBalancer עם סטאק כפול של IPv4/IPv6, צריך לפרוס אותו באשכול עם סטאק כפול של IPv4/IPv6 ולבצע את הפעולות הבאות בהתאם לסוג מאזן העומסים שבו משתמשים:

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

לכל שירות אפשר להגדיר מפרטים של ipFamilyPolicy ושל ipFamilies. מידע נוסף זמין במאמר בנושא IPv4/IPv6 dual-stack.

הגבלות על שירותי LoadBalancer עם תמיכה כפולה ב-IPv4 וב-IPv6

  • שירותי LoadBalancer עם כתובות IPv6 נתמכים רק באשכולות עם סוג הערימה ipv4-ipv6. מידע נוסף זמין במאמר בנושא שימוש בכתובת IP כפולה עבור אשכול המותאם ל-VPC.
  • אי אפשר לשדרג שירותים מסוג LoadBalancer שנוצרו עם כתובת חד-ערימה לשירותים מסוג דו-ערימה.

  • אפשר לשנות שירותי LoadBalancer שנוצרו עם כתובות dual-stack ל-single stack בהתאם לתנאים הבאים:

    • אפשר לשנות שירות עם ipFamilies ["IPv4","IPv6"] לשירות עם ipFamilies IPv4 אבל לא ל-IPv6.
    • אפשר לשנות שירות עם ipFamilies ["IPv6","IPv4"] לשירות עם ipFamilies IPv6 אבל לא ל-IPv4.

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