מידע על איזון עומסים ב-GKE

בדף הזה יש סקירה כללית של האופן שבו Google Kubernetes Engine ‏ (GKE) יוצר ומנהל את Cloud Load Balancing. כדי להבין את המידע שבדף הזה, צריך להכיר את הנושאים הבאים:

  • סוגים של Cloud de Confiance by S3NS מאזני עומסים
  • ההבדל בין מאזני עומסים בשכבה 4 (מאזני עומסי רשת) לבין מאזני עומסים בשכבה 7 (מאזני עומסים של אפליקציות)

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

איך GKE יוצר מאזני עומסים

כדי שהאפליקציות יהיו נגישות מחוץ לאשכול (למשתמשים חיצוניים) או בתוך הרשת הפרטית (למשתמשים פנימיים), אתם יכולים לחשוף את האפליקציות על ידי הקצאת מאזני עומסים באמצעות ממשקי ה-API של Gateway,‏ Ingress ו-Service. לחלופין, אתם יכולים ליצור את רכיבי מאזן העומסים בעצמכם, בזמן ש-GKE מנהל את קבוצות נקודות הקצה ברשת (NEGs) שמחברות את מאזן העומסים לפודים באשכול.

שער

בקר השער של GKE הוא ההטמעה של Google ל-Kubernetes Gateway API בשביל Cloud Load Balancing. ‫Gateway API הוא פרויקט קוד פתוח שמטרתו ליצור סטנדרטיזציה של האופן שבו Service mesh ובקרי כניסה חושפים אפליקציות ב-Kubernetes. ‫Gateway API הוא יורש של משאב Ingress, והוא נועד להיות גמיש יותר, עם יכולת הרחבה וביטוי טובה יותר.

בקר השער של GKE משמש להגדרת מאזני עומסים של אפליקציות בשכבה 7, כדי לחשוף תנועת HTTP(S) לאפליקציות שפועלות באשכול.

שיטה מומלצת:

משתמשים ב-Gateway API כדי להטמיע את מאזן העומסים.

תעבורת נתונים נכנסת (Ingress)

בקר GKE Ingress הוא ההטמעה של Google ל-Ingress API. ‫Ingress API מאפשר לכם לנהל גישה חיצונית לשירותים שפועלים באשכול. כשיוצרים משאב Ingress ב-GKE, בקר Ingress מגדיר באופן אוטומטי מאזן עומסים של אפליקציות בשכבה 7, שמאפשר לתנועת נתונים מסוג HTTP או HTTP(S) להגיע לאפליקציות שפועלות באשכול.

‫GKE Gateway הוא האפשרות המומלצת לפריסות חדשות ולאפליקציות שדורשות ניהול תעבורת נתונים מתקדם, תמיכה בכמה פרוטוקולים או ריבוי דיירים משופר. עם זאת, GKE Ingress היא אפשרות טובה לתרחישים פשוטים יותר של ניתוב HTTP/HTTPS, במיוחד להגדרות קיימות שבהן היתרונות של המעבר ל-Gateway API עדיין לא עולים על המאמץ.

LoadBalancer Services

Service API מאפשר לחשוף אפליקציות שפועלות כ-Pods באשכול לתנועה חיצונית או פנימית. כשיוצרים Service מסוג LoadBalancer, ‏ GKE יוצר באופן אוטומטי מאזן עומסים ברשת מסוג Passthrough (העברת סיגנל ללא שינוי) בשכבה 4 (TCP/UDP) על סמך הפרמטרים של מניפסט ה-Service.

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

איזון עומסים משוקלל

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

קבוצות NEG עצמאיות

שיטה נוספת לניהול מאזני העומסים ב-GKE היא ליצור את רכיבי מאזן העומסים בעצמכם, ולאפשר ל-GKE לנהל את ה-NEGs. מאזן העומסים הזה נקרא "מאזן עומסי רשת בשרת proxy". קבוצות של נקודות קצה ברשת הן דרך לייצג קבוצות של נקודות קצה לקצה העורפי (לדוגמה, Pods) לאיזון עומסים.

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

מה זה איזון עומסים שמקורם בקונטיינר?

איזון עומסים שמותאם לקונטיינרים הוא שיטה שבה תעבורת הנתונים מנותבת באופן שווה ישירות לכתובות ה-IP של Pods ספציפיים (ולא של צמתים) באמצעות קבוצות NEG של GCE_VM_IP_PORT. GCE_VM_IP_PORT קבוצות NEGs מאפשרות לכם לציין נקודות קצה של שרתים עורפיים באמצעות כתובת ה-IP הפנימית הראשית של מכונה וירטואלית (VM) ב-Compute Engine, או כתובת IP מאחד מטווח כתובות ה-IP של הכינויים שהוגדרו למכונה הווירטואלית.

איזון עומסים שמקורם בקונטיינר משמש לכל מאזני העומסים בשכבה 7 שמנוהלים על ידי GKE, כולל Gateway ו-Ingress, וקבוצות NEG עצמאיות. שירותי LoadBalancer לא משתמשים באיזון עומסים שמקורם בקונטיינר. עם זאת, אפשר להשיג יכולת דומה על ידי הפעלת איזון עומסים משוקלל.

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

טבלאות סיכום

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

בחירת סוג מאזן העומסים

בטבלה הבאה מוצג סוג מאזן העומסים שנוצר למשאב נתון (Gateway,‏ Ingress או שירות LoadBalancer):

משאב ב-Kubernetes סוג מאזן העומסים שנוצר
Application Load Balancer מאזן עומסי רשת להעברת סיגנל ללא שינוי
שער
תעבורת נתונים נכנסת (Ingress)
שירות LoadBalancer

בחירת שיטה ליצירת מאזן עומסים

בטבלה הבאה מוצגות האפשרויות ב-GKE ליצירת מאזן העומסים שבחרתם:

סוג מאזן העומסים שיטות ליצירת מאזן העומסים שנבחר
שער תעבורת נתונים נכנסת (Ingress) LoadBalancer Service קבוצות NEG עצמאיות
מאזן עומסים גלובלי חיצוני של אפליקציות (ALB)
מאזן עומסים חיצוני קלאסי של אפליקציות (ALB)
מאזן עומסים חיצוני אזורי של אפליקציות (ALB)
מאזן עומסים פנימי אזורי של אפליקציות (ALB)
מאזן עומסים פנימי של אפליקציות (ALB) באזורים שונים
מאזן עומסי רשת בשרת proxy
(כל הסוגים)
מאזן עומסי רשת להעברת סיגנל ללא שינוי
(פנימי וחיצוני)

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