מכשיר Google Distributed Cloud (GDC) עם בידוד פיזי מספק מאזני עומסים שמאפשרים לאפליקציות לחשוף שירותים זו לזו. מאזני עומסים מקצים כתובת IP וירטואלית (VIP) יציבה שמאזנת את תעבורת הנתונים בין קבוצה של עומסי עבודה בבק-אנד. מאזני עומסים ב-GDC מבצעים איזון עומסים בשכבה 4 (L4), כלומר הם ממפים קבוצה של יציאות TCP או UDP שהוגדרו בקצה הקדמי ליציאות תואמות בבק-אנד. מאזני עומסים מוגדרים ברמת הפרויקט.
מאזני עומסים מוגדרים לסוגי עומסי העבודה הבאים:
- עומסי עבודה (workloads) שפועלים במכונות וירטואליות.
- עומסי עבודה בקונטיינרים בתוך אשכול Kubernetes.
יש שלוש דרכים להגדיר מאזני עומסים ב-GDC:
- שימוש ב-Networking Kubernetes Resource Model (KRM) API. אפשר להשתמש ב-API הזה כדי ליצור מאזני עומסים.
- משתמשים ב-CLI של gcloud. אפשר להשתמש ב-API הזה כדי ליצור מאזני עומסים.
- שימוש בשירות Kubernetes ישירות מאשכול Kubernetes. השיטה הזו יוצרת רק מאזני עומסים אזוריים.
רכיבים של מאזן עומסים
כשמשתמשים ב-KRM API או ב-CLI של gcloud כדי להגדיר את מאזן העומסים, משתמשים במאזן עומסים מסוג L4 passthrough:
- L4 מציין שהפרוטוקול הוא TCP או UDP.
- המשמעות של passthrough היא שאין שרת proxy בין עומס העבודה לבין הלקוח.
מאזן העומסים מורכב מהרכיבים הבאים שאפשר להגדיר:
כללי העברה: מציינים איזו תנועה מועברת ולאיזה שירות לקצה העורפי. המאפיינים של כללי ההעברה הם:
- מורכב משלושה טאפלים, CIDR, יציאה ופרוטוקול, לגישה של הלקוח.
- תמיכה בפרוטוקולים TCP ו-UDP.
- מציע כללי העברה פנימיים וחיצוניים. לקוחות יכולים לגשת לכללי העברה פנימיים מתוך הענן הווירטואלי הפרטי (VPC). לקוחות יכולים לגשת לכללי העברה חיצוניים מחוץ לפלטפורמת GDC או מתוך עומסי עבודה שהוגדר להם ערך של
EgressNAT. - כללי העברה מתחברים לשירות לקצה העורפי. אפשר להפנות כמה כללי העברה לאותו שירות קצה עורפי.
שירותים לקצה העורפי: הם מרכז איזון העומסים שמקשר בין כללי העברה, בדיקות תקינות וקצה עורפי. שירות קצה עורפי מפנה לאובייקט קצה עורפי שמזהה את עומסי העבודה שמאזן העומסים מעביר אליהם את התנועה. יש מגבלות על הקצה העורפי שאליו שירות קצה עורפי יחיד יכול להפנות:
- משאב בק-אנד אחד של תחום מוגדר לכל תחום מוגדר.
- משאב אחד של קצה עורפי באשכול לכל אשכול. אי אפשר לערבב את זה עם העורפים של הפרויקט.
קצה עורפי: אובייקט אזורי שמציין את נקודות הקצה שמשמשות כקצה עורפי לשירותי הקצה העורפי שנוצרו. המשאבים בעורף חייבים להיות בתחום של אזור. בחירת נקודות קצה באמצעות תוויות. מגדירים את ההיקף של הבורר לפרויקט או לאשכול:
עורף פרויקט הוא עורף שלא מוגדר בו השדה
ClusterName. במקרה הזה, התוויות שצוינו חלות על כל עומסי העבודה בפרויקט הספציפי, ב-VPC הספציפי באזור. התוויות מוחלות על עומסי עבודה של מכונות וירטואליות ושל pods בכמה אשכולות. כששירות קצה עורפי משתמש בקצה עורפי של פרויקט, אי אפשר להפנות לקצה עורפי אחר באזור הזה בשירות הקצה העורפי הזה.שרת קצה עורפי של אשכול הוא שרת קצה עורפי שצוין בו השדה
ClusterName. במקרה כזה, התוויות שצוינו חלות על כל עומסי העבודה באשכול שצוין בפרויקט שצוין. אפשר לציין לכל היותר בקצה העורפי אחד לכל אזור לכל אשכול בשירות קצה עורפי יחיד.
בדיקות תקינות: מציינים את הבדיקות כדי לקבוע אם נקודת קצה נתונה של עומס עבודה בשרת העורפי תקינה. נקודת הקצה הלא תקינה מוצאת ממאזן העומסים עד שהיא חוזרת להיות תקינה. בדיקות תקינות רלוונטיות רק לעומסי עבודה של מכונות וירטואליות. עומסי עבודה של Pod יכולים להשתמש במנגנון בדיקת המוכנות המובנה של Kubernetes כדי לקבוע אם נקודת קצה ספציפית תקינה.
כשמשתמשים בשירות Kubernetes ישירות, משתמשים באובייקט Service במקום ברכיבים שצוינו קודם. אפשר לטרגט עומסי עבודה רק באשכול שבו נוצר אובייקט Service.
איזון עומסים חיצוני ופנימי
לאפליקציות GDC יש גישה לסוגים הבאים של שירותי רשת:
- מאזן עומסים פנימי (ILB): מאפשר לחשוף שירות לאשכולות אחרים בארגון.
- מאזן עומסים חיצוני (ELB): מקצה כתובת VIP מתוך טווח שאפשר לנתב ממנו עומסי עבודה חיצוניים, וחושף שירותים מחוץ לארגון GDC, כמו ארגונים אחרים בתוך מופע GDC או מחוצה לו.
כתובות IP וירטואליות של שירות
מאזני עומסים פנימיים מקצים כתובות VIP שהן פנימיות לארגון בלבד. אי אפשר להגיע לכתובות ה-VIP האלה מחוץ לארגון, ולכן אפשר להשתמש בהן רק כדי לחשוף שירותים לאפליקציות אחרות בארגון. יכול להיות שכתובות ה-IP האלה יחפפו בין ארגונים באותו מופע.
לעומת זאת, ב-ELB מוקצים כתובות VIP שאפשר להגיע אליהן מבחוץ, מחוץ לארגון. לכן, כתובות ה-VIP של ELB צריכות להיות ייחודיות בין כל הארגונים. בדרך כלל, יהיו פחות כתובות ELB VIP זמינות לשימוש הארגון.