PracticU

Swarm - Layer 7 Routing - HTTP Host Header

בלי כתוביותעם כתוביות
PracticU › קורס Docker - עם Swarm Cluster › Swarm - Layer 7 Routing - HTTP Host Header
מילון מושגים:
HTTP - פרוטוקול להעברת דפי אינטרנט ונתונים בין דפדפן לשרת. הגרסה המאובטחת שלו היא HTTPS.
כותרת HTTP - שדה מידע נלווה בבקשה או בתגובה של HTTP, המעביר נתונים כמו סוג התוכן, אימות או הגדרות מטמון.
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
כתובת IP - מספר שמזהה באופן ייחודי מכשיר ברשת מבוססת פרוטוקול IP, ומאפשר לשלוח אליו ולקבל ממנו מידע.
ממשק - נקודת מגע בין רכיבים: ממשק משתמש שבו אדם מפעיל תוכנה, או ממשק תכנותי שמגדיר אילו פעולות רכיב אחד חושף לאחר.
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
פרוקסי - שרת מתווך שמעביר בקשות בין לקוח ליעד, ויכול לשמש להסתרה, לסינון, למטמון או לבקרת גישה.
קונטיינר - חבילה קלה ומבודדת שאורזת אפליקציה עם כל תלויותיה, ורצה באופן אחיד בכל סביבה, למשל ב-Docker.

Swarm - Layer 7 Routing - HTTP Host Header
הרצאה על ניתוב Layer 7 ב-UCP: שני אתרי ווב על אותו פורט 80, מפוצלים לפי כותרת ה-Host של הבקשה, בעזרת שירות Interlock שנוצר אוטומטית.
השלבים העיקריים
1. ההבדל מניתוב רגיל: ניתוב Layer 4 מסתכל על IP ופורט בלבד. ניתוב Layer 7 מסתכל על תוכן הבקשה, כלומר על כותרת Host בבקשת HTTP, ולכן אפשר להציג שני אתרים על אותו פורט 80.
2. שינוי פורט הממשק: ממשק UCP תפס את פורט 443, ולכן הוא הועבר לפורט 8443 בהגדרות הניהול. כך הפורטים 80 ו-443 פנויים לניתוב האתרים.
3. יצירת השירותים: שני סטאקים בשם client1 ו-client2 נוצרים בלי פורטים מפורסמים, וכל אחד מחובר לרשת פנימית משלו.
4. הפעלת ניתוב לשירות: מעדכנים את השירות ומוסיפים לו תוויות (labels) בשם com.docker.lb.hosts עם שם המארח, ו-com.docker.lb.port עם הפורט. שירות Interlock קורא את התוויות ובונה לבד את הגדרות ה-NGINX.
5. בדיקה: הכתובות client1 ו-client2 מובילות לאתר הנכון, בלי שום שינוי ידני ב-NGINX.
פקודות והגדרות
docker service update --label-add com.docker.lb.hosts=client1.com --label-add com.docker.lb.port=80, docker network inspect, docker service inspect. בהגדרות UCP מסמנים את ניתוב ה-Layer 7 ובוחרים את הפורטים שלו.
שימו לב
שירות שנחשף דרך Layer 7 לא צריך פורט מפורסם בנוד, אבל הוא חייב להיות מחובר לרשת שבה נמצא הפרוקסי. ההרצאה ציינה שכתובת וירטואלית (VIP) של השירות עדיפה על פני רשומות DNS מרובות, כי אם קונטיינר נופל, ה-VIP ממשיך להפנות ללקוחות לקונטיינר חי.
בסיום יודעים לחלק פורט אחד בין כמה אתרים לפי שם מארח, בלי לכתוב קובץ NGINX ידנית.
השיעור הבא בקורס: Swarm - RBAC - Users & Roles

פרקי ההרצאה: Swarm - Layer 7 Routing - HTTP Host Header

  1. 00:00

    תזכורת: ניתוב פניות לפי כותרת Host

  2. 01:23

    הפעלת ניתוב Layer 7 מתוך הממשק הגרפי

  3. 02:48

    שינוי פורט הניהול כדי לפנות את 443

  4. 05:00

    Interlock: NGINX שנוצר אוטומטית

  5. 05:58

    פריסת סטאק ללא פורטים חיצוניים

  6. 07:21

    רכיבי Interlock והרשת הפנימית שלהם

  7. 10:48

    חשיפת שירות לפי כותרת Host דרך הממשק

  8. 12:26

    תוויות הניתוב שנוצרות על השירות

תמלול ההרצאה: Swarm - Layer 7 Routing - HTTP Host Header

הטקסט המלא של הדקות הראשונות בהרצאה «Swarm - Layer 7 Routing - HTTP Host Header» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם בהרצאה הקודמת התקנו ucp שזה קונטרול פאנל ממשק גרפי לניהול קונטיינרים וסוורם וכל הקלאסטר שלי ועשינו את זה על ידי פקודה אחת שהריצה לנו את האימג' של ucp 321 שזאת הגרסה הנוכחית עם תוכנת אינסטול בפנים והרצנו את האינסטול עם כל הפרמטרים האלו לקחנו את זה מאתר האינטרנט והקונטיינר היחיד הזה שהרצנו התקין לנו

  2. 00:39

    את כל הסרוויסים של UCP שזה למעשה קונטיינרים קטנים שרצים על הקלאסטר שלנו והם יוצרים לנו אתר וב ואנחנו יכולים דרכו לנהל את כל הקלאסטר שלנו.

  3. 01:05

    ועכשיו אנחנו רוצים לפרסם שני אתרי וב על אותו פורט על ידי הממשק גרפי לעשות את זה. על ידי זה שהקונטרול פאנל הזה הכלי הזה שעלה לנו אלפי דולרים יעשה לנו את זה אוטומט ואנחנו הולכים לאדמין settings ועושים layer 7 ראוטינג זה אומר שאנחנו נקבל פניות בפורט 80 ונפנה אותם פעם לאתר אחד פעם לאתר שני זה נקרא layer 7 שזה שכבת האפליקציה שבודקת את

  4. 01:44

    פקודת הגט וזה שונה מל-R3 ראוטינג שמסתכל על IP ופורט ל-R4 ראוטינג שמסתכל על הפורט ולא בודק מה קורה שם בפנים רואה פורט 80 מפנה אותו לקונטיינר אחד רואה פורט 443 מפנה אותו לסרוויס אחר אם אנחנו רוצים ששני סרוויסים ישבו על אותו פורט צריך משהו חכם שיסתכל על ההדר של הפאקט ויראה שפנו ברמת האפליקציה בגט לאתר אחד או השני.

  5. 02:24

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

  6. 02:41

    אנחנו יכולים לעשות 8443, עכשיו 443 תפוס, אז אם אני רוצה אני יכול להחליף את ה-cluster קונפיגוריישן פה לפנות את ה-HTTPs מתוך הקלאסטר קונפיגוריישן ואז לכלי ניהול להתחבר בפורט אחר בואו נעשה את זה 443 ואז אחרי שאני עושה את זה 443 בראוטינג פה אני יכול להשתמש ב-443 אז ב-443 וב-80

  7. 03:17

    אני אשתמש בשביל ל-R7 ובשביל הניהול שלי אני אשתמש ב-443 וזהו ואז אני עושה סייב וזהו. עכשיו, אם אנחנו ננסה לגשת לדשבורד, אנחנו רואים שהוא לא עובד, אנחנו צריכים לעשות נקודתיים 443, להוסיף עוד ארבע נניח, ועכשיו הוא אמור לעבוד עוד פעם.

  8. 04:02

    הנה, אנחנו מקבלים פה את ההתראה ב-443, אתם רואים, הוספתי עוד ארבע כדי לפנות את ה-SSL הרגיל, אותה הודעת אזהרה, ואנחנו חזרה בממשק ניהול, רק שהפעם פינינו פה את 443 הרגיל לטובת ה-Routing ל-R7, שזה מה שרצינו או אדמין סליחה טוב אז אנחנו

  9. 04:35

    חזרנו לממשק ניהול אנחנו רואים פה באדמין settings שהקלאסטר שלי הניהול שלו יש פה גם הסבר the port used by ucp web ui משתמש ב-443 ואז routing 7 יכול להשתמש ב-80 ו-443 מה שזה עושה מאחורי הקלעים זה עושה interlock ש-interlock זה למעשה ה-engine x כמו שעשינו אותו ידנית רק שעושה אותו אוטומט יופי עכשיו נשאר לנו לפרוס את הסרוויסים שלנו.

  10. 05:14

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

  11. 05:36

    עכשיו הוא שואל אותי איפה הדוקר קומפוז, אני יכול לכתוב איתו ידנית, אני יכול לעשות אפלואוד, לוחץ קונטרול L, סלאש MNT, סלאש קלאסטר סטינגס.

  12. 05:55

    יש לנו פה בקלאסטר סטינגס קליינט אחד ימל יופי והנה זה כל הקובץ שלנו שכתבנו לבד מי ששם לב אין לו פה אף פורט החוצה הוא לא מפרסם אף פורט שניהם יהיו ברשת נטוורק נפרד נטוורק משלהם בלי אף פורט החוצה מי שיחבר אותם מבחוץ זה engine x שהUCP ייצור לבד ניתן לו לעבוד שימו לב הוא עושה קליינט אחד דיפולט

  13. 06:37

    שזה הנטוורק הרשת הפנימית בין שני הסרוויסים שיש לנו ואף פורט לא מפורסם החוצה created successfully done יופי יש לנו סרוויס אחד בואו נראה אותו docker service ls אנחנו רואים את הסרוויסים של הקליינט אחד יפה מאוד אנחנו דרך אגב רואים את הפורט 80 זה היה interlock proxy מה זה interlock proxy זה למעשה האנג'ין x שהוא יוצר לבד מאחורי הקלעים בלי שנצטרך לעשות משהו.

  14. 07:26

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

  15. 07:43

    רשת אז רשת של ucp אינטרלוק זה רכיבים פנימיים של אינטרלוק של האנג'ין x ביניהם מדברים על מורכב מכמה רכיבים אם אתם תסתכלו יש לו אחד שתיים ושלוש שלושה רכיבים שלושה סרוויסים כאשר הפרוקסי זה זה שתכלס מאזין ומה שמחבר ביניהם זה רשת פנימית שלהם.

  16. 08:09

    נעשה docker network ls inspect client1-default ונראה של-client1-default כרגע מחובר רק הקונטיינרים של ה-wordpress ו-database פשוט לא עלו את הרשת אז אתם לא רואים.

  17. 08:37

    בינתיים הכל תקין מה עוד אני רוצה להראות לכם שהפקודות הקודמות גם עובדות אני יכול גם בקומנדליין לרשום docker stack deploy ולעשות deploy רגיל רגע אני לא בתיקייה נכונה אני יכול לעשות docker stack deploy רגיל זאת אומרת הממשק גרפי בא לעזור הוא לא בא להחליף והנה אני פורס את ה-client2 וברגע שפרסתי אותו אתם יכולים לראות פה ש-client2

  18. 09:13

    נפרס הנה אין לו עדיין קונטיינרים הנה הופיעו לו שני קונטיינרים אני יכול להיכנס פנימה ושימו לב אני רואה את ה-stack client2 stack אני רואה סרוויסים שיש לו כן זה docker stack ls אני רואה את התוצאות שלו לאיזה רשתות הוא מחובר איזה ווליומים איזה סיקריטים כל מיני הגדרות שלו עכשיו

  19. 09:29

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

  20. 10:16

    לדוגמה שיהיה overlay שטובות IP אוטומטיות איזה לייבלים יש לו באיזה קונטיינרים מחוברים אתם רואים רק wordpress וdb2 זה מה שמחובר אליו טוב אז כרגע פרסנו שני סרוויסים אנחנו יכולים לראות אותם כאן שני סרוויסים שני סטייקים וזה כל הסרוויסים שיש לי אבל אין שום דרך להגיע אליהם מבחוץ.

  21. 10:48

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

  22. 11:10

    אתם רואים זה נקרא Update Service, שלא אד פורט, זה לפרסם פורט החוצה, כן? אני לא רוצה, אני רוצה להשתמש ב-Layer 7 ראוטינג, ואני אומר לו תפסר לי פורט 80 תעשה אותו ב-HTTP שימו לב הוא גם יודע HTTPS פסט טרו זה אומר הוא נותן ל-SSL מוצפן לעבור עד לקונטיינר וטרמינשן הוא עוצר את ה-SSL אצלו והולך לבד מביא את

  23. 11:43

    התוכן ההצפנה נגמרת ונפתחת ברוורס פרוקסי רוורס פרוקסי עוצר את ה-SSL אני אומר כרגע ב-HTTP רגיל עבור מי? עבור client1.com יש client1.com בפורט 80 שימו לב זה ל-R7 רגיל ראוטינג והוא מחובר רק לנטוורק אחד.

  24. 12:14

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

  25. 12:29

    כשעשינו את זה לתוך הנטוורק, כשעשינו את זה לתוך הסרוויס של WP1 שכרגע אדום כי הוא עושה ריסטארט, הוא עשה משהו מעניין, הוא הוסיף לו לייבלים, תגיות לסרוויס, שימו לב לסרוויס, הוא הוסיף כל מיני תגיות, לדוגמה, הוסט-הדר, בוקר קום לואוט בלנסר הוסט-הדר, שזה קליינט אחד,

  26. 13:10

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

  27. 13:31

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

  28. 14:15

    אומר לו בפורט 80 אני רוצה לפרסם אותך חוצה אבל עם הוסט האדר של קליינט 2 זה הכל זה כולה להוסיף זה כל מה שאני עושה סייב תראו מה קרה קליינט פליינט 2 קיבל לייבלים חדשים ברמת סרוויס, הנה כל אלו, הוסט, אתם רואים, לורד בלנסר הוסט, LB הוסט,

  29. 14:56

    פליינט 2 LB port 80.

לקורס המלא: קורס Docker עם Swarm Cluster

ההרצאה הקודמת: התקנה של Docker Enterprise - UCP

ההרצאה הבאה: Swarm - RBAC - Users & Roles

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

  • Routing Parameters
  • יצירת Header ב-React
  • אתר Security Header
  • פרוטוקול HTTP

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

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