PracticU

הכרות עם Docker Swarm

בלי כתוביותעם כתוביות
PracticU › קורס Docker - עם Swarm Cluster › הכרות עם Docker Swarm
מילון מושגים:
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
קלאסטר - קבוצת מחשבים או שרתים שעובדים יחד כמערכת אחת, לשם זמינות גבוהה, ביצועים או חלוקת עומס.
Kubernetes - מערכת לניהול ותזמור של קונטיינרים בקנה מידה גדול, שמפעילה, מרחיבה ומתחזקת אותם אוטומטית.
WordPress - מערכת ניהול תוכן בקוד פתוח לבניית אתרים ובלוגים, מבוססת PHP ומסד נתונים.
קונטיינר - חבילה קלה ומבודדת שאורזת אפליקציה עם כל תלויותיה, ורצה באופן אחיד בכל סביבה, למשל ב-Docker.
מתג - התקן רשת שמחבר מכשירים בתוך אותה רשת מקומית ומעביר נתונים ישירות ליעד לפי כתובת ה-MAC.
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
מסד נתונים - אוסף מאורגן של נתונים המאוחסן כך שאפשר לשמור, לחפש, לעדכן ולשלוף אותו ביעילות, לרוב באמצעות שפת שאילתות.

הכרות עם Docker Swarm
בהרצאה הזאת מוצגת הקדמה לקלאסטר של Docker, ואת מצב Swarm שנכלל בתוך Docker עצמו. המטרה היא שקבוצת מחשבים תעבוד כיחידה אחת, כך שאם שרת אחד נופל, הקונטיינרים שעליו עולים בשרת אחר בלי שהשירות נעצר.
מושגים בסיסיים
1. Swarm: מצב קלאסטר מובנה בתוך Docker. לא צריך להתקין כלי נוסף, ולכן ההרצאה מציינת שזה נוח יותר מכלים אחרים כמו Kubernetes.
2. Manager ו-Worker: מנהלים (managers) מתאמים את הקלאסטר ויכולים גם להריץ קונטיינרים. עובדים (workers) מקבלים הוראות ומריצים קונטיינרים בלי לנהל את הקלאסטר. כל מחשב יכול להיות מנהל, עובד, או שניהם.
3. Service ו-Task: שירות הוא ההגדרה, למשל אתר WordPress. Task הוא קונטיינר אחד שנוצר עבור השירות.
4. מצב רצוי: מגדירים בקובץ YAML כמה רפליקות רוצים. המנהל משווה את המצב הרצוי למצב בפועל, ואם קונטיינר נפל הוא מפעיל אחד חדש במקומו.
רשתות וסקיילינג
1. רשת Overlay: רשת וירטואלית שמחברת בין מחשבים פיזיים, כאילו הם באותו מתג. קונטיינרים מתקשרים בה ביניהם בלי לפתוח פורטים ברשת הפיזית.
2. DNS פנימי ואיזון עומסים: הקלאסטר מנהל DNS פנימי ומפזר את הבקשות בין הרפליקות.
3. סקיילינג: מגדילים או מקטינים את מספר הרפליקות של שירות, והמנהלים מתאימים את עצמם.
הבעיה שנשארה פתוחה
Swarm לא מעתיק נתונים בין הדיסקים של השרתים. אם קונטיינר של מסד נתונים עולה בשרת אחר, המידע שהיה על הדיסק של השרת הקודם לא זמין לו. ההרצאה הבאה תעסוק בפתרון זה, בהעתקה של דיסק בין שלושה שרתים.
השיעור הבא בקורס: התקנת GlusterFS - חלק 1

פרקי ההרצאה: הכרות עם Docker Swarm

  1. 00:00

    מבוא: קלאסטר ללא נקודת כשל אחת

  2. 00:38

    Swarm לעומת Kubernetes: שתי שיטות לקלאסטר

  3. 01:14

    Swarm המובנה בתוך Docker

  4. 02:14

    מנהלים (Managers) ועובדים (Workers)

  5. 03:45

    מצב רצוי והגדרה דקלרטיבית בקובץ YAML

  6. 04:24

    Scaling: הרחבת מספר הקונטיינרים

  7. 06:05

    Reconciliation ושכפולים (Replicas) בתקלה

  8. 07:46

    רשת Overlay בין המחשבים בקלאסטר

תמלול ההרצאה: הכרות עם Docker Swarm

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

  1. 00:02

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

  2. 00:32

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

  3. 00:49

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

  4. 01:03

    עכשיו, כש-Swarm, Swarm זה הקלאסטר המובנה בתוך דוקר. אתם רואים current version of docker הגרסה הנוכחית של docker includes כבר כוללת בפנים מצב של swarm שזה מצב של קלאסטר ששני מחשבים יודעים לדבר אחד עם השני ואם אחד נופל השני קם במקומו.

  5. 01:28

    בשביל לעשות native זה אומר בצורה טבעית המובנית בדוקר management cluster זאת אומרת הם מנהלים קלאסטר בצורה מובנית בתוך דוקר זה נקרא swarm ומה הוא יודע לעשות?

  6. 01:47

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

  7. 02:25

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

  8. 02:36

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

  9. 02:51

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

  10. 03:14

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

  11. 03:45

    לא יתפקד כמו שצריך הלאה declarative service model זה אומר שאנחנו רושמים בצורה דקלרטיבית מה אנחנו רוצים כמו שעשינו את קבצי הyaml אנחנו נעשה את זה איתכם ביחד זאת אומרת בתוך קובץ yaml אנחנו כותבים desire state לאיזה מצב אנחנו רוצים להגיע והסרוויס של הקלאסטר מביא את זה למצב שאנחנו רוצים שימו לב המצב הרצוי אנחנו

  12. 04:21

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

  13. 04:43

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

  14. 05:04

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

  15. 05:18

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

  16. 05:37

    אז למעשה Swarm יודע לעשות אדפטציה למצב החדש באופן אוטומטי. Removing Task, מה זה Task? זה משימה שנותנים לו להרים קונטיינר, אוקיי?

  17. 05:53

    אז יש פה כל מיני מושגים, הם הכניסו בכל ה-Swarm, בכל הקלאסטר, כביכול במקום קונטיינר הם קוראים לזה Task, אוקיי?

  18. 06:05

    זה מה שנקרא Desire Statric Consolation, זה אומר שהוא מפעיל את עצמו, כמה שאני אגיד. Swarm Manager, המנאג'ר של ה... זוכרים אמרנו שיש תפקיד מנאג'ר לו?

  19. 06:19

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

  20. 06:44

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

  21. 07:04

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

  22. 07:28

    מנאג'רס אומרים ליצור 2 חדשים במקומו, אוקיי? יש שני קונטיינרים חדשים, הבנתם? The Swarm Manager assigns new replicas, מדביק את הפערים לזה.

  23. 07:42

    הלאה, מה עוד יש? או, זה משהו מגניב. יש Network רשת, נכון, כמו רשת סגורה, אבל שהיא עוברת כמו VPN בין ה-nodes של הקלאסטר.

  24. 07:59

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

  25. 08:16

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

  26. 08:35

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

  27. 08:50

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

  28. 09:08

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

  29. 09:21

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

  30. 09:34

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

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

ההרצאה הקודמת: יצירת Docker Image מאפס - ללא בסיס

ההרצאה הבאה: התקנת GlusterFS - חלק 1

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

  • docker
  • הכרות עם Sharepoint
  • הכרות עם המעבדה שלנו
  • הכרות עם ממשק CONSOLE של-AWS

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

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