PracticU

הגדרת Service
מסוג Load Balancer
בתוך Kubernetes

בלי כתוביותעם כתוביות
PracticU › קורס קוברנטיקס - Kubernetes › הגדרת Service מסוג Load Balancer בתוך Kubernetes
מילון מושגים:
מאזן עומסים - רכיב שמחלק בקשות נכנסות בין כמה שרתים, כדי לשפר ביצועים, זמינות ועמידות בעומס.
Kubernetes - מערכת לניהול ותזמור של קונטיינרים בקנה מידה גדול, שמפעילה, מרחיבה ומתחזקת אותם אוטומטית.
API - ממשק תכנותי שמגדיר כיצד תוכנה אחת פונה לאחרת ומחליפה איתה נתונים ופעולות.
ענן - אספקת משאבי מחשוב כשירות דרך האינטרנט, כמו שרתים, אחסון ותוכנות, במקום להחזיק אותם מקומית.
חומת אש - מערכת שמסננת תעבורת רשת לפי כללים, ומתירה או חוסמת חיבורים כדי להגן על מחשב או רשת.
פרוקסי - שרת מתווך שמעביר בקשות בין לקוח ליעד, ויכול לשמש להסתרה, לסינון, למטמון או לבקרת גישה.

הגדרת Service מסוג Load Balancer בתוך Kubernetes
כדי לחשוף שירות בקלסטר Kubernetes לתעבורה מהאינטרנט, אפשר להגדיר Service מסוג Load Balancer. בהרצאה רואים איך כותבים אותו ב-YAML, מפעילים אותו ובודקים שהוא עובד.
איך זה עובד
1. הגדרת ה-Service: בקובץ YAML נותנים ל-Service שם (payment API service) וכותבים type: LoadBalancer. ספק הענן מקים Load Balancer חיצוני לקלסטר ומעביר דרכו תעבורה לפודים.
2. ההבדל מ-NodePort: ב-NodePort הכול בתוך הקלסטר, והתעבורה נכנסת דרך פורט ב-node הפיזי. ה-Load Balancer נמצא מחוץ לקלסטר. בענן, שבו גם ה-nodes וירטואליים, הוא יכול להתחבר ישירות לרשת הפנימית של הפודים.
3. בחירת הפודים: ה-selector בוחר פודים לפי תווית (app), שנקבעת ב-label של כל פוד. שני פודים עם אותה תווית מקבלים את התעבורה.
4. פורטים: בדוגמה פורט 80 בחוץ מועבר לפורט 80 בפוד, ואפשר להוסיף עוד פורטים (כמו 443) - כשיש יותר מפורט אחד חייבים לתת להם שמות.
5. הפעלה ובדיקה: עם kubectl apply הורמו שני פודים וה-Service. הפקודה get pods הציגה שני פודים, ו-get service הציגה IP חיצוני (אחרי המתנה) שאליו גלשו וקיבלו תשובה מהפוד הראשון, בלי צורך בכללי firewall.
6. כשל ושחזור: מחיקת הפוד הראשון גרמה לכך שרענון הדף קיבל תשובה מהפוד השני.
שימו לב
kube-proxy אחראי להעביר את התעבורה לפודים הנכונים ולנהל את טבלאות הניתוב, ה-routing וה-firewall בכל node.
אחרי ההרצאה אתם יודעים להקים Service מסוג LoadBalancer ולהבין איך תעבורה חיצונית מגיעה לפודים בקלסטר.

פרקי ההרצאה: הגדרת Service מסוג Load Balancer בתוך Kubernetes

  1. 00:00

    הקמת load balancer אמיתי בענן

  2. 00:41

    load balancer חיצוני לקלסטר

  3. 01:15

    חיבור ישיר לרשת הפודים בענן

  4. 01:54

    selector ופתיחת כמה פורטים

  5. 02:34

    השוואה ל-NodePort

תמלול ההרצאה: הגדרת Service מסוג Load Balancer בתוך Kubernetes

הטקסט המלא של הדקות הראשונות בהרצאה «הגדרת Service מסוג Load Balancer בתוך Kubernetes» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם. היום אנחנו נקים load balancer אמיתי בענן שיכניס את כל הטראפיק לתוך הקלסטר שלנו. האמת זה די פשוט. יש לנו פה קובץ YAML שמכריז על service חדש.

  2. 00:16

    ניתן לו איזשהו שם payment API service וכל מה שצריך זה לכתוב פה type load balancer, ואז הספק שלנו בענן יקים לנו load balancer חיצוני לקוברנטיס וישלח את כל התקשורת כמו שהיה פה ב-node port ל-IP של ה-node עם הפיזיים וה-node עם הפיזיים יעבירו את זה לרשת פנימית לתוך ה-service.

  3. 00:41

    אז למעשה load balancer זה כמו node port רגיל שפותח פורטים במחשבים הפיזיים והם אלו שמעבירים את התקשורת לרשת הפודים הפנימית. רק ה-load balancer הזה הוא חיצוני בכלל לכל הקוברנטיס.

  4. 00:57

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

  5. 01:12

    תחשבו שבמציאות יש לנו כמה hostים פיזיים, אז כדי שהתקשורת מבחוץ תגיע לרשת הפנימית של הפודים היא חייבת לעבור דרך port ב-node הפיזי. זה מה שקורה בקוברנטיס רגיל.

  6. 01:25

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

  7. 01:52

    בכל מקרה, ההגדרה שלי מאוד פשוטה. אני נותן לו פה type load balancer. נותן לו selector לאיזה פודים לשלוח את התקשורת. פודים עם תווית app שווה payment API pod.

  8. 02:05

    דרך אגב, התווית הזאת אני שם אותה פה ב-label של ה-pod ואז זה יגיע לפוד הזה וזה גם יגיע לפוד הזה, כי בשני הפודים האלו יש את התווית הזאת, ואז ה-selector בוחר את הפודים עם התווית ומעביר אליהם תקשורת.

  9. 02:21

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

  10. 02:35

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

  11. 02:47

    דרך אגב, השם הזה קוברנטיס זה הרב חובל שאחראי על ההגה של האונייה. הנהג של האוניות זה קוברנטיס ביוונית עתיקה. ב-load balancer הוא מחוץ לקלסטר שלנו. שימו לב ב-node port הרגיל הכל בתוך הקלסטר.

  12. 03:03

    פה load balancer הוא מחוץ לקלסטר.

לקורס המלא: קורס קוברנטיס – Kubernetes

ההרצאה הקודמת: הגדרת Service - מסוג NodePort - בתוך Kubernetes

ההרצאה הבאה: הסבר על ReplicaSet - בקוברנטיס

הרצאות קשורות מקורסים אחרים

  • הגדרת Load Balancer - מסוג ALB בענן של AWS
  • הסבר על Load Balancer ב-Azure
  • AWS ALB - Application Load Balancer - חלק 1
  • חלוקת עומסים - Load Balancer - צ'ק פוינט - חלק 1

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell
  • קורס Git ו-GitHub עם Visual Studio