סקירה כללית על איזון עומסים ב-Google Distributed Cloud

במאמר הזה מוסבר על אפשרויות איזון העומסים שנתמכות על ידי Google Distributed Cloud עבור אשכולות חדשים.

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

אלה האפשרויות הזמינות:

  • ‫MetalLB בחבילה

  • איזון עומסים ידני לכל מאזן עומסים של צד שלישי, כמו F5 BIG-IP Citrix

כשיוצרים אשכולות משתמשים באמצעות מסוף Google Cloud , ה-CLI של gcloud או Terraform, סוג מאזן העומסים של אשכול האדמין ושל אשכולות המשתמשים שלו חייב להיות זהה. יוצא הדופן היחיד הוא אם אשכול האדמין משתמש ב-Seesaw, ואז אשכולות המשתמשים יכולים להשתמש ב-MetalLB. אם רוצים שאשכולות האדמין והמשתמשים ישתמשו בסוגים שונים של מאזני עומסים, צריך ליצור אשכולות משתמשים באמצעות כלי שורת הפקודה gkectl.

MetalLB

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

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

מידע נוסף זמין במאמר בנושא איזון עומסים בחבילה עם MetalLB.

Citrix

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

איזון עומסים ידני באופן כללי

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

הקצאת כתובות IP וירטואליות

לא משנה באיזה מאזן עומסים משתמשים, צריך להקצות כמה כתובות IP וירטואליות (VIP) שמתכוונים להשתמש בהן לאיזון עומסים.

עבור אשכול האדמין, צריך להקצות את כתובות ה-VIP הבאות:

  • כתובת IP וירטואלית לשרת Kubernetes API
  • VIP for add-ons

לכל אשכול משתמשים שרוצים ליצור, צריך להקצות את כתובות ה-VIP הבאות:

  • כתובת IP וירטואלית לשרת ה-API של Kubernetes
  • VIP לשירות הכניסה

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

כתובות IP של הצמתים

אם בוחרים ב-MetalLB כמאזן העומסים, אפשר להשתמש בכתובות IP סטטיות לצמתי האשכול, או לאפשר לצמתי האשכול לקבל את כתובות ה-IP שלהם משרת DHCP.

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

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

יצירת שירותים באשכול

אחרי שקלאסטר המשתמשים פועל, מפתחי אפליקציות יכולים ליצור שירותי Kubernetes ולחשוף אותם ללקוחות חיצוניים.

בשירותים מסוג LoadBalancer, צריך להגדיר כתובות VIP במאזן העומסים. אופן ההגדרה של כתובות ה-VIP האלה תלוי בבחירה שלכם לגבי מאזן העומסים.

MetalLB

בקובץ ההגדרה של אשכול המשתמשים, מציינים מאגרי כתובות שבהם בקר MetalLB משתמש כדי להקצות כתובות VIP לשירותים. כשמפתחים יוצרים שירות מסוג LoadBalancer, בקר MetalLB בוחר כתובת ממאגר ומקצה את הכתובת לשירות. המפתח לא צריך לציין ערך ל-loadBalancerIP במניפסט השירות.

מאזן עומסים שהוגדר באופן ידני

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

  • יוצרים Service מסוג NodePort.

  • בוחרים כתובת VIP לשירות.

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