בדף הזה יש סקירה כללית על האופן שבו Google Kubernetes Engine (GKE) יוצר ומנהל את Cloud Load Balancing. בדף הזה אנחנו יוצאים מנקודת הנחה שאתם מכירים את הנושאים הבאים:
- סוגים של Google Cloud מאזני עומסים
- ההבדל בין מאזני עומסים בשכבה 4 (מאזני עומסי רשת) לבין מאזני עומסים בשכבה 7 (מאזני עומסים של אפליקציות)
הדף הזה מיועד לארכיטקטים של ענן ולמומחי רשתות שתפקידם לתכנן את הרשת של הארגון. מידע נוסף על תפקידים נפוצים ומשימות לדוגמה שאנחנו מתייחסים אליהם ב Google Cloud תוכן זמין במאמר תפקידים נפוצים של משתמשים ומשימות ב-GKE Enterprise.
איך GKE יוצר מאזני עומסים
כדי להפוך את האפליקציות לנגישות מחוץ לאשכול (משתמשים חיצוניים) או בתוך הרשת הפרטית (משתמשים פנימיים), אפשר לחשוף את האפליקציות באמצעות הקצאת מאזני עומסים באמצעות ממשקי ה-API של Gateway, Ingress ו-Service. אפשרות אחרת היא ליצור את רכיבי מאזן העומסים בעצמכם, בזמן ש-GKE מנהל את קבוצות נקודות הקצה ברשת (NEGs) שמקשרות את מאזן העומסים אל ה-Pods באשכול.
שער
בקר GKE Gateway הוא היישום של Google של Kubernetes Gateway API ל-Cloud Load Balancing. Gateway API הוא פרויקט קוד פתוח שמטרתו ליצור סטנדרטיזציה של האופן שבו רשתות שירות ובקרי כניסה חושפים אפליקציות ב-Kubernetes. הוא נועד להיות מחליף יותר גמיש, מורחב ובעל יכולת הבעה טובה יותר של משאב Ingress.
בקר GKE Gateway משמש להגדרת מאזני עומסים של אפליקציות בשכבה 7 כדי לחשוף תעבורת HTTP(S) לאפליקציות שפועלות באשכול.
משתמשים ב-Gateway API כדי להטמיע את מאזן העומסים.
תעבורת נתונים נכנסת (Ingress)
בקר GKE Ingress הוא היישום של Google ל-Ingress API. ממשק ה-API של Ingress מאפשר לכם לנהל גישה חיצונית לשירותים שפועלים באשכול. כשיוצרים משאב Ingress ב-GKE, בקר Ingress מגדיר באופן אוטומטי מאזן עומסים של אפליקציות בשכבה 7, שמאפשר לתנועת HTTP או HTTP(S) להגיע לאפליקציות שפועלות באשכול.
GKE Gateway היא הבחירה המומלצת לפריסות חדשות ולאפליקציות שנדרש בהן ניהול מתקדם של תנועת גולשים, תמיכה במספר פרוטוקולים או שימוש טוב יותר במספר דיירים. עם זאת, GKE Ingress היא אפשרות טובה לתרחישי ניתוב פשוטים של HTTP/HTTPS, במיוחד להגדרות קיימות שבהן היתרונות של מעבר ל-Gateway API עדיין לא מצדיקים את המאמץ.
שירותי LoadBalancer
Service API מאפשר לחשוף אפליקציות שפועלות כקבוצות Pod באשכול לתנועה חיצונית או פנימית. כשיוצרים Service מסוג LoadBalancer, GKE יוצר באופן אוטומטי מאזן עומסי רשת חיצוני מסוג Passthrough בשכבה 4 (TCP/UDP), על סמך הפרמטרים של מניפסט ה-Service.
במאזני עומסי רשת להעברת סיגנל ללא שינוי, כשתנועה מגיעה למכונות הווירטואליות של ה-Backend, כתובות ה-IP המקוריות של המקור והיעד, פרוטוקול התקשורת (כמו TCP או UDP) ומספרי היציאות (אם הפרוטוקול משתמש בהם) נשארים זהים. המשמעות היא שהתעבורה מועברת ישירות למכונות הווירטואליות או ל-Pods של ה-Backend, ומאזן העומסים לא מפסיק את החיבורים. השירותים לקצה העורפי מטפלים בסיום החיבורים ומוודאים שהתעבורה זורמת בצורה חלקה מהלקוח לשירות.
איזון עומסים משוקלל
אם הגדרתם שירות LoadBalancer חיצוני שלקוחות מחוץ לרשת ה-VPC ולמכונות וירטואליות יכולים לגשת אליו, תוכלו להפעיל איזון עומסים משוקלל. Google Cloud איזון עומסים משוקלל מחלק את התנועה על סמך מספר ה-Pods שמשרתים בכל צומת GKE, כך שצמתים עם יותר Pods שמשרתים מקבלים חלק גדול יותר מהתנועה בהשוואה לצמתים עם פחות Pods.
קבוצות עצמאיות של נקודות קצה ברשת (NEGs)
דרך נוספת לנהל את מאזני העומסים ב-GKE היא ליצור את רכיבי מאזן העומסים בעצמכם, ולאפשר ל-GKE לנהל את קבוצות ה-NEG. סוג מאזן העומסים הזה נקרא מאזן עומסי רשת לשרת proxy. NEGs הן דרך לייצג קבוצות של נקודות קצה של בק-אנד (לדוגמה, Pods) לצורך איזון עומסים.
מאזן העומסים מהסוג הזה מיועד רק לתנועת TCP. מאזני עומסים מסוג Proxy Network מחלקים את תעבורת ה-TCP לשרתי קצה עורפיים ברשת ה-VPC או בסביבות ענן אחרות. התנועה מסתיימת בשכבת איזון העומסים. לאחר מכן, מאזן העומסים מעביר את התעבורה על ידי יצירת חיבורי TCP חדשים לשרת העורפי הזמין הקרוב ביותר.
מהו איזון עומסים שמקורם בקונטיינר?
איזון עומסים מובנה בקונטיינר הוא שיטה לחלוקת תעבורה באופן שווה ישירות לכתובות ה-IP של פודים בודדים (ולא צמתים) באמצעות GCE_VM_IP_PORT NEGs. GCE_VM_IP_PORT קבוצות NEGs מאפשרות לכם לציין נקודות קצה של שרתים עורפיים באמצעות כתובת ה-IP הפנימית הראשית של מכונה וירטואלית (VM) ב-Compute Engine, או כתובת IP מאחד מטווח כתובות ה-IP של הכינויים שהוגדרו למכונה הווירטואלית.
איזון עומסים שמקורם בקונטיינר משמש את כל מאזני העומסים ברמה 7 שמנוהלים על ידי GKE, כולל Gateway ו-Ingress, וקבוצות נקודות קצה ברשת (NEGs) עצמאיות. שירותי LoadBalancer לא משתמשים באיזון עומסים שמקורם בקונטיינר. עם זאת, אפשר להשיג יכולת דומה על ידי הפעלת איזון עומסים משוקלל.
לאיזון עומסים שמקורם בקונטיינר יש כמה יתרונות, כולל שיפור הביצועים ברשת ושיפור בדיקות תקינות, כי הוא מיועד ישירות ל-Pods. מידע נוסף זמין במאמר בנושא איזון עומסים ברמת הקונטיינר.
טבלאות סיכום
הטבלאות הבאות יעזרו לכם לתכנן את ההגדרות של איזון העומסים.
בחירת סוג מאזן עומסים
בטבלה הבאה מפורט סוג איזון העומסים שנוצר עבור משאב נתון (Gateway, Ingress או LoadBalancer Service):
| משאב Kubernetes | סוג מאזן העומסים שנוצר | |
|---|---|---|
| מאזן עומסים של אפליקציות (ALB) | מאזן עומסי רשת להעברת סיגנל ללא שינוי | |
| שער | ||
| תעבורת נתונים נכנסת (Ingress) | ||
| LoadBalancer Service | ||
בחירת שיטה ליצירת מאזן עומסים
בטבלה הבאה מוצגות האפשרויות ב-GKE ליצירת מאזן העומסים שבחרתם:
| סוג מאזן העומסים | שיטות ליצירת מאזן העומסים שנבחר | |||
|---|---|---|---|---|
| שער | תעבורת נתונים נכנסת (Ingress) | LoadBalancer Service | קבוצות עצמאיות של נקודות קצה ברשת (NEGs) | |
| מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) | ||||
| מאזן עומסים חיצוני קלאסי של אפליקציות (ALB) | ||||
| Regional external Application Load Balancer | ||||
| מאזן עומסים פנימי אזורי של אפליקציות (ALB) | ||||
| מאזן עומסים פנימי של אפליקציות (ALB) חוצה אזורים | ||||
|
מאזן עומסי רשת לשרת proxy
(כל הסוגים) |
||||
|
מאזן עומסי רשת להעברת סיגנל ללא שינוי
(פנימי וחיצוני) |
||||