PracticU

התקנת Wordpress בתוך Swarm Cluster

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

התקנת Wordpress בתוך Swarm Cluster
הרצאה על הרצת וורדפרס בתוך קלאסטר Swarm: איך שירותים מתחברים זה לזה ברשת משותפת, איך הקלאסטר מחזיק את השירות בחיים, ואיך מודדים את השפעת מספר הרפליקות על הביצועים.
השלבים העיקריים
1. רשת משותפת לכל הקלאסטר: ב-Compose הרגיל נוצרת רשת מקומית שמוגבלת למחשב אחד. docker network create -d overlay יוצר רשת Overlay שפרוסה על כל הנודים, וכל שירות שמחובר אליה מדבר עם השירותים האחרים בלי קשר למיקומם.
2. שירות מסד נתונים: docker service create עם שם, רשת ומשתני סביבה של MySQL יוצר משימה (task) שהמנהל מתזמן לנוד, והמשימה מייצרת את הקונטיינר. השירות מוגדר ברמת הקלאסטר ולא ברמת מחשב בודד.
3. שירות וורדפרס עם רפליקות: הפרמטר --replicas קובע כמה עותקים צריכים לרוץ. הקלאסטר מפזר אותם בין הנודים, ואם קונטיינר נעצר הוא עולה מחדש, כי השירות מגדיר את המצב הרצוי.
4. הגדלה והקטנה: docker service scale משנה את מספר העותקים. בהדגמה ההרצאה הגדילה ל-3 ואחר כך ל-6 על אותם שלושה מחשבים, והשיפור נעצר כשהקונטיינרים התחילו להתחרות על אותה חומרה.
5. מעקב: docker service ls, docker service ps (שמראה את היסטוריית המשימות) ו-docker service inspect (שמראה את ההגדרה, כולל הגרסה הקודמת לשחזור).
פקודות והגדרות
docker network create --driver overlay my-network, docker service create --name db-service --network my-network, docker service scale wordpress=3, docker service ps wordpress, docker service rm.
ההרצאה הציגה גם שירות Visualizer שמקבל את /var/run/docker.sock ומוגבל לנוד מנהל, כדי שיוכל לקרוא את מידע הקלאסטר.
שימו לב
לפי ההדגמה, לפני הקלאסטר שרת אחד ענה בכ-68 בקשות בשנייה, ועם שלושה קונטיינרים על שלושה מחשבים התוצאה עלתה לכ-123 בקשות בשנייה. הוספת רפליקות על אותה חומרה לא תמיד משפרת את הביצועים, ולשיפור גדול צריך חומרה נוספת.
בסיום יודעים להקים שירותים על כמה נודים, לעקוב אחרי מצבם ולהגדיל או להקטין אותם.
השיעור הבא בקורס: Swarm Cluster - Failover

פרקי ההרצאה: התקנת Wordpress בתוך Swarm Cluster

  1. 00:00

    הרמת וורדפרס ומסד נתונים בקלאסטר

  2. 00:46

    תזכורת: הרמת השירותים עם Docker Compose

  3. 02:02

    סוגי הרשתות הקיימות ב-Docker

  4. 05:58

    יצירת רשת Overlay שפרוסה על הקלאסטר

  5. 07:59

    רשת ingress שנוצרת אוטומטית בקלאסטר

  6. 10:36

    שירות בקלאסטר במקום קונטיינר רגיל

  7. 12:06

    יצירת שירות מסד הנתונים MySQL

  8. 13:04

    בדיקת השירות ומספר הרפליקות

תמלול ההרצאה: התקנת Wordpress בתוך Swarm Cluster

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

  1. 00:02

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

  2. 00:38

    הרמנו את הכל דרך קובץ Docker Compose. בואו אני אראה לכם, מי שלא זוכר, עשינו פה שירות אחד של דאטאבייס, כן, קונטיינר אחד של דאטאבייס, ושירות אחר של אתר וב, ושירות שלישי של PHP MyAdmin כדי לנהל את הדאטאבייס ישירות דרך ממשק גרפי, ממשק ניהול לדאטאבייס, כמו SSMS Studio כזה.

  3. 01:10

    זה אתר וב שמנהל את הדאטאבייס. אז יש לנו שלושה קונטיינרים. איך הם דיברו ביניהם? אתם זוכרים? איך הם תקשירו ביניהם?

  4. 01:19

    כי היה להם נטוורק פרטי. בואו אני אראה לכם איך זה היה, כי יש לנו בעיה, תכף אני אראה לכם איזה בעיה יש לנו, אתם תבינו.

  5. 01:31

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

  6. 01:56

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

  7. 02:35

    כשעשינו docker-compose-app-d שהם מאחורה מה שקורה שהוא יוצר לי שימו לב creating network יוצר רשת שנקראת wordpress-default הוא default driver בואו נראה אני רק מזכיר לכם כשעשינו docker run והרצנו ישירות קונטיינרים דרך פקודת docker run כל הקונטיינרים נוצרו בתוך רשת בשם NAT מסוג NAT ברגע שעשינו docker-compose הוא הוסיף לנו רשת חדשה

  8. 03:18

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

  9. 03:43

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

  10. 04:01

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

  11. 04:26

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

  12. 04:52

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

  13. 05:06

    אז איך עושים את זה? אז אנחנו עושים פקודה שנקראת docker network, כן? זוכרים? ב- docker יש לנו פה, חוץ מפקודות קצרות, management commands, אזורים גדולים, תתי פקודות, ויש לנו פה network.

  14. 05:26

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

  15. 05:50

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

  16. 06:26

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

  17. 06:58

    אני גם יכול לעשות כמה רשתות כאלו. לדוגמה אני יכול לעשות My Network נניח וילאן 2, רשת פנימית מספר 2, אני יכול לעשות וילאן 3, כל מיני רשתות ואם אנחנו נעשה עכשיו דוקר נטוורק Ls, סליחה דוקר נטוורק Ls, נראה פה אתם רואים וילאן 3 מסוג Overlay, וילאן 2 מסוג אוברליי,

  18. 07:27

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

  19. 07:47

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

  20. 08:11

    אנחנו נדבר על הרשת הזאת, היא מאוד מאוד חשובה. למה הקלאסטר יצר אותה? לפני הקלאסטר היא לא הייתה. הלאה, מה אני רוצה? אני רוצה לעשות Network Create -d Overlay ולתת לה שם My Network.

  21. 08:38

    ועכשיו אנחנו רואים שיש לנו את ה-My Network מסוג Overlay בגבולות של Swarm. יפה מאוד זה אומר שאני אוכל להקים קונטיינרים בכל מיני נודים וכולם יוכלו לדבר עם כולם ישירות כמו רשת פרטית ביניהם דרך אגב אם אתם תעשו אינספקט מיינטוורק אתם תראו את כל הפרטים שקשורים לדוגמה איזה אייפים היא תחלק היא עובדת כמו DHCP כן דוקר נטוורק אינספקט

  22. 09:18

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

  23. 09:50

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

  24. 10:03

    הלאה, עכשיו אחרי שיש לנו את הרשת הזאת, פרוסה על הכל אנחנו יכולים להתחיל ליצור מכונות וירטואליות בעצם ליצור קונטיינרים אבל בקלאסטר זה נקרא קצת אחרת אז בואו נראה docker network ls יש לנו את הרשת my network docker node ls יש לנו את כל השרתים האלו טוב אז

  25. 10:31

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

  26. 10:57

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

  27. 11:21

    M זה למחוק את הסרוויס ו-Rollback ו-Scale זה אומר לשים יותר קונטיינרים מאותו סרוויס, נניח אני רוצה שני מכונות. עכשיו שימו לב מה ההבדל בין סרוויס לפשוט לעשות docker run, להריץ את הקונטיינר הספציפי.

  28. 11:39

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

  29. 11:55

    אני עושה לו docker service create תיצור לי slash ו-enter אפשר ללחוץ slash אומר שזה המשך של פקודה ולא סוף פקודה שם של service יהיה db-service database-service הוא יצטרף ל-mind network לרשת הפרטית למה דווקא mind network כי היא overlay בין כולם ויש פה משתני סביבה כמו מה sql password איזה database של sql user של sql ואיזה image

  30. 12:26

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

  31. 12:45

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

  32. 13:01

    אז בואו נראה מה קרה פה בעצם. אנחנו צריכים סרוויס ls אנחנו רואים שיש לנו את הסרוויס db-service רק אחד שימו לב אחד מתוך אחד זה אומר רק קונטיינר אחד רץ עם אימג' כזה מסוג replicated נדבר על ה mode אחרי זה אם אנחנו נעשה ps וניתן את השם שלו אנחנו חייבים לתת את השם שלו אנחנו נראה שהסרוויס הזה הוא פירוט שלו רץ על אובונטו 3 בכלל זה אומר שלאובונטו 3 יש קונטיינר שרץ אם

  33. 13:39

    אם נלך לאובונטו 3 ונעשה פה docker ps אתם רואים שבאמת רץ הקונטיינר הזה של mysql לפני 57 שניות יפה מאוד אז ראינו שזה נראה כאילו עשינו docker run רגיל רק מרוחק אבל יש לנו אופציה לעשות משהו יותר מורכב לעשות כמה רפליקות זה אומר שאני יכול לבוא ולהגיד שהשירות הזה בקלאסטר יהיה שני תיקים שלו זה אומר שני קונטיינרים ירוצו עם אותו סרוויץ וזה היופי בקלאסטר שהוא

  34. 14:31

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

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

ההרצאה הקודמת: Swarm - Node Labels

ההרצאה הבאה: Swarm Cluster - Failover

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

  • התקנת Wordpress ו-XAMPP על - וונדוס 10
  • התקנת וונדוס בתוך ESXi
  • הרצאה על FortiGate HA Cluster
  • התקנה של wordpress - Helm Kubernetes

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

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