PracticU

Swarm - Global Mode

בלי כתוביותעם כתוביות
PracticU › קורס Docker - עם Swarm Cluster › Swarm - Global Mode
מילון מושגים:
קונטיינר - חבילה קלה ומבודדת שאורזת אפליקציה עם כל תלויותיה, ורצה באופן אחיד בכל סביבה, למשל ב-Docker.
שירות - תוכנה שרצה ברקע ומספקת פונקציונליות לרכיבים אחרים, לרוב ללא ממשק משתמש, ומופעלת אוטומטית עם המערכת.
קלאסטר - קבוצת מחשבים או שרתים שעובדים יחד כמערכת אחת, לשם זמינות גבוהה, ביצועים או חלוקת עומס.
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
פורט - מספר שמזהה שירות או תהליך מסוים בתוך מחשב, ומאפשר לכוון תעבורת רשת ליעד הנכון. למשל פורט 80 ל-HTTP.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
Linux - מערכת הפעלה בקוד פתוח מבוססת ליבת Linux, נפוצה מאוד בשרתים וקיימת בהפצות רבות כמו Ubuntu.

Swarm - Global Mode
הרצאה על מצב Global בשירותי Swarm, שבו יש קונטיינר אחד בדיוק בכל נוד, וההבדל בינו לבין מצב Replicated הרגיל.
השלבים העיקריים
1. מצב Replicated: השירות רץ כמספר עותקים שהקלאסטר מחליט איפה להציב. אם נוד נופל, העותקים שרצו עליו עוברים לנודים אחרים.
2. מצב Global: --mode global מבטיח קונטיינר אחד על כל נוד, לא פחות ולא יותר. לא ניתן לשנות את המספר, ולכן docker service scale נכשל במצב זה.
3. דוגמה למעקב: cAdvisor, כלי שאוסף מדדים על קונטיינרים ועל הנוד, רץ במצב global כדי שלכל נוד יהיה סוכן משלו. הוא מקבל תיקיות מהמחשב המארח באמצעות מאונטים מסוג bind.
4. נוד שנוסף אוטומטית: כשנוד חדש מצטרף לקלאסטר, הקלאסטר מוסיף לו את הקונטיינר של השירות Global בלי פעולה נוספת.
5. פרסום פורט: הפורט שפורסם של השירות נגיש מכל נוד בקלאסטר, וההרצאה הדגימה את הגישה אליו מדפדפן.
פקודות והגדרות
docker service create --mode global --constraint 'node.platform.os == linux', docker service scale (נכשל במצב global), docker node demote, docker swarm join.
שימו לב
כשמנסים להגדיל שירות Global, הקלאסטר מסרב עם הודעה שהגדלה אפשרית רק במצב Replicated. מצב Global מתאים לסוכנים שצריכים לרוץ על כל מחשב, כמו כלי ניטור, ולא לאפליקציה שצריך לפזר עליה עומס.
בסיום יודעים מתי לבחור במצב Global ואיך הוא מתנהג כשנוד נוסף או יוצא מהקלאסטר.
השיעור הבא בקורס: Swarm - Network Ingress

פרקי ההרצאה: Swarm - Global Mode

  1. 00:00

    מצב Replicated והתנהגותו בקלאסטר

  2. 00:39

    הוצאת שרת מהקלאסטר בהדגמה

  3. 01:52

    העברת מופעים לנוד אחר כשנופל נוד

  4. 02:58

    למה Scale לא מספיק לאגנט בכל נוד

  5. 04:02

    מצב Global: מופע אחד על כל נוד

  6. 06:01

    הגדרת Mounts מסוג Bind בשירות

  7. 06:39

    הגדרת מצב Global עם מגבלת Linux

תמלול ההרצאה: Swarm - Global Mode

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

  1. 00:02

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

  2. 00:35

    הכל יעבור למחשבים אחרים, בואו נראה. לדוגמה, השרת פה החליט לעזוב אותנו, אוקיי? אני רוצה להחליף אותו. אז אנחנו כאן עושים docker swarm, קודם כל ככה, זה docker node-demoat, אובונטו 2, תהפוך אותו ל-Worker, בואו נראה שהוא הפך באמת ל-Worker, docker node-LS, שימו לב,

  3. 01:12

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

  4. 01:28

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

  5. 01:48

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

  6. 02:22

    rm תמחק לי את אובנטו שתיים האובנטו שתיים הזה מת הוא לא קיים יותר ויש לי קלאסטר רק עם שני נודים ושתיהם מנאג'רים דרך אגב מומלץ לעשות קלאסטרים עם מספר אי-זוגי של נודים לדוגמה 3 או 5. טוב חברים הכל עובד לנו סליחה אתם רואים פה נהיה לנו רק 2 ועל כל אחד יש 3. טוב זה מה שראינו עד עכשיו אבל מה קורה אם אני רוצה לפרוס איזשהו שירות שאמור

  7. 03:01

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

  8. 03:21

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

  9. 04:11

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

  10. 04:42

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

  11. 05:07

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

  12. 05:47

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

  13. 06:06

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

  14. 06:39

    הלאה, וזה מה שרציתי להראות לכם, מוד גלובל. זה המוד הזה, אתם רואים? במקום Replicated Global. מה זה אומר? אחד על כל אחד, לא פחות ולא יותר.

  15. 06:49

    שימו לב, קונסטריינט יש מגבלה שזה יהיה רק על לינוקסים, שלא ירוץ בטעות על ווינדוס, ו-Google's Advisor Latest. זה קונסטריינט, זוכרים מאיפה אנחנו מכירים את הקונסטריינט הזה? מהמדבקות, מהלייבלים.

  16. 07:06

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

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

ההרצאה הקודמת: Swarm Update & Rollback

ההרצאה הבאה: Swarm - Network Ingress

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

  • איך אפשר לראות Global Catalog ?
  • הסבר על Trust - Global Catalog
  • דיבאג בג'אווה - Debug Mode
  • יצירת User Mode בריאקט

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

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