
/mnt פרוסה על כל הנודים באמצעות רפליקציה. קובץ שנכתב בנוד אחד מופיע בנודים האחרים, ולכן מסד הנתונים והווורדפרס לא תלויים במחשב מסוים.docker node update --availability active מחזיר אותו לפעילות.--mount type=bind עם תיקייה באחסון המשותף. התיקייה לא הייתה קיימת, והקלאסטר ניסה שוב ושוב להקים משימה שנכשלה עם השגיאה bind source path does not exist. אחרי יצירת התיקייה השירות עלה.docker service ps מראה את מצב כל משימה, ו-docker service inspect מציג את הפרטים הטכניים שלה.www יש שלוש כתובות IP. בכל שאילתה הסדר מתחלף, וכל לקוח מקבל כתובת ראשונה אחרת. זה ראונד רובין שמפזר עומס, אבל אין בו בדיקת תקינות, ולכן לקוחות ממשיכים להתחבר לשרת שנפל.docker node update --availability active ubuntu1, docker service create --mount type=bind,..., docker service ps, docker service inspect. ההרצאה השתמשה גם ב-watch על docker service ls כדי לעקוב אחרי השינויים בזמן אמת.הטקסט המלא של הדקות הראשונות בהרצאה «Swarm Cluster - Failover» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
טוב חברים, עכשיו הגיע הזמן לחבר את האתר אינטרנט שלנו לדאטאבייס כדי שכל פעם שנפעיל מחדש את הקונטיינרים המידע לא ייעלם וגם אם שרת אחד נופל הדאטאבייס יעלה במקום אחר עם אותו מידע.
לעשות את הקלאסטר הזה אמיתי, אחרי שהכרנו קצת מה זה סרוויס הגיע הזמן לחבר את הסרוויס לתוך ה-Storage ולתוך הקלאסטר.
אני מזכיר לכם שה- storage שלנו נמצא תחת mnt ובואו נעשה דבר כזה, קודם כל אני מדגים לכם שהוא נמצא ברפליקציה אם נעשה echo a1 b2 c3 שלושה סימני קריאה שלושה שטרודלים וכל זה לתוך קובץ test.txt מה הוא לא מצא event not found הוא פירש את זה כסימנים מיוחדים בואו נעשה לזה טעם כזה דבר ונעשה עכשיו cut ונראה שזה באמת נשמר שמה.
הטריק שעשינו בהרצאות קודמות שראינו שזה גם עושה רפליקציה לשירתים אחרים, נעשה cut ל-MNT לקובץ טסט ונראה שזה עבר ברפליקציה גם לשרת השני וה-Storage שלנו עובד תקין ברפליקציה.
cut ל-MNT טסט. אנחנו רואים שהכל עובר והכל עובד כמו שצריך, ואם נעשה aaa לתוך mnt-test אנחנו נראה שזה באמת עובר ברפליקציה לכל שאר התחנות. יפה מאוד, עכשיו כשהסטורייץ שלנו עובד אנחנו יכולים להתחיל להגדיר קלאסטר ואני שם לב שיש לי פה מההרצאה הקודמת אובונטו 1 נמצא ב-drain, נורד 1 נמצא במצב של דריין, מה זה דריין? שהוא לא
מוכן לקבל משימות חדשות, שהוא לא מוכן לקבל טאסקים חדשים וכל מה שיש עליו צריך להעיף ממנו הולכים להוריד אותו עוד מעט בניגוד ל-Active, Active אומר שהוא מוכן לקבל משימות חדשות ולהריץ קונטיינרים חדשים שאפשר לתזמן עליו משימות חדשות Taskים שהופכים לקונטיינרים אז ה-Drain הזה לא מקובל עליי
כי אני רוצה להריץ עליו קונטיינרים אז אנחנו עושים docker node update == help == ורואים פה availability availability active, אוקיי? availability active, אתם או active או pause או drain.
pause, דרך אגב, אומר שהוא ממשיך להריץ את מה שיש, אבל לא מקבל משימות חדשות, קונטיינרים חדשים להרצה. ועל מי אנחנו רוצים?
על איזה נוד אנחנו רוצים? אנחנו רוצים על נוד בשם Ubuntu 1. בואו נראה שזה באמת עבד לנו. הנה, זה הפך ל-active. מצוין.
אז יש לנו מצב שיש לנו קלאסטר שעובד ויש לנו קלאסטר ריק שעובד, כן? כי אין בו אף סרוויס. יופי, אז בואו נתחיל לחבר את הסרוויסים שלנו לתוך הקלאסטר.
דבר ראשון, אני שם ויז'ואליז'טור שיהיה לנו כלי גרפי, מה שראינו לפני כן, docker service create יוצר סרוויס בשם viz בפורט 8080 שעובד רק constraint, זה אומר מגבלה, הוא מוגבל רק למנאג'ר, נוד רול מנאג'ר, אני יכול לעשות מגבלות לפי תוויות ותכף נראה את זה.
ו-Mount Type ומחבר לו Volume Storage מסוג Bind, זה אומר שהוא קיים. Source VAR Docker SOC, שזה כל המידע על ה-Docker הלוקאלי אצלי במנג'ר, לתוך VAR RAN Docker SOC בתוך הקונטיינר הווירטואלי, וזה מה שראינו כבר בהרצאות קודמות, יש לנו סרוויס ראשון.
עכשיו אנחנו רוצים באותה שיטה גם לחבר את ה-Database נכון? הסרוויס של הדאטאבייס נו לוקח לו קצת זמן אנחנו רוצים לחבר את המיי sql יופי עם זה סיימנו עכשיו רוצים את הדאטאבייס שימו לב לגבי דאטאבייס אנחנו עושים פקודת docker service create זה כאילו הכל רשום
באותה שורה השם של הסרוויס יהיה db service השם של הנטוורק יהיה מיי נטוורק עשינו לפני כן רשת מסוג overlay שפורסה על כל אלו כל אלו ראינו משתני סביבה עם איזה פסוורד אנחנו מריצים דרך אגב מה sql 5.7 וזה הטריק שרציתי להראות לכם תעשה מעונד לתיקייה אוי שכחתי ליצור אותה צריך ליצור אותה ודיסטנשן כזה וכזה אני מחבר אצלי בהרדיסק בתוך mnt
מה sql ואצלי בהרדיסק mnt מה sql ירוץ ברפליקציה לכולם אתם רואים זה ירוץ ברפליקציה לכולם שכחתי ליצור את התיקייה הזאת בוא נעשה לזה קופי וואר לי מה sql זה בפנים שמה ב read only false זה אומר שיהיה read-write.
אז ככה מגדירים מיפוי בצורה מפורשת. שימו לב, זה לא ווליום, זה ביינד. ווליום זה משהו שהם מנהלים, אני רוצה לנהל בעצמי את התיקייה הזאת, כדי שזה יהיה במיקום שאני רוצה.
שימו לב, אני בא להריץ את זה. בגלל שאין לי את התיקייה הזאת, הוא לא יצליח. תראו, הוא לא יצליח. invalid mount config bind. bind לא יודע ליצור תיקייה שלא קיימת.
bind path does not exist. והנה הוא תקוע, מנסה שוב ותקוע ומנסה שוב ותקוע זו דוגמה מצוינת אתם רואים הוא אומר docker הוא אומר operation continuing in background זה רץ ברקע אתה רוצה להתעדכן תעשה docker service ps לפי הזה אז בוא נעשה docker service ls אנחנו נראה שהוא עשה לנו את הservice של db service אבל הוא לא הצליח להקים אף אחד 0 קונטיינרים
הצליחו לקום מתוך אחד שצריך שימו לב זה מצב מצוין שבו הוא לא לא יכול להקים קונטיינר למרות שיש לו משימה לעשות את זה. בואו נעשה פירוט על הסרוויס הזה.
אנחנו נראה פה, שימו לב כמה פעמים הוא מנסה, מנסה, מנסה ולא מצליח. כל פעם הוא נותן טאסק אחר, משימה. הוא מקים משימה להקמה, היא נכשלת.
הוא מקים עוד משימה, היא עוד פעם נכשלת. כל פעם הוא מקים טאסק, הוראות ביצוע, וכל פעם זה נכשל. אתם רואים? לפני 23 שניות, 18 שניות. אבל הוא מקים טאסקים שונים עד שהוא לא יצליח אוקיי ואתם רואים כמה שמה המצב של כל טאסק זה הוראה לביצוע ויש פה הודעת שגיאה invalid mount config type וכולי וכולי וזה היסטוריה בוא נראה מה יש לנו פה no trunk אנחנו יכולים לעשות ולראות את כל הפירוש של
הסיפור הזה no trunk אנחנו רואים פה invalid mount bind bind source path does not exist mnt msql אתם רואים הוא לא מצליח והוא מנסה לעשות את זה שימו לב כבר חמש פעמים ניסה בוא נעשה mkdir ניצור לו תיקייה לפני שאני עוצר את זה אתם יודעים מה אני רוצה לנצל את ההזדמנות הזאת ולעשות docker inspect כדי להראות לכם מה זה המשימות אז נניח ניקח את המשימה לא יודע
מה לא משנה הראשונה האחרונה לא משנה איזה משימה ניקח ניקח את המשימה נניח הזאת את הטאסק שימו לב שהטאסק לא הפך לקונטיינר תכלס זה ההבדל שסרוויס, יש הגדרה מה צריך להיות, מנאג'ר לוקח את ההגדרות של הסרוויס ומתזמן משימות.
הוא אומר למי לעשות איזה משימה, והמשימה זה להקים קונטיינר. לפעמים המשימה לא הופכת להיות לקונטיינר בגלל איזושהי בעיה טכנית.
דוקר אינספקט, מה קרה לו? דוקר אינספקט, בואו ניקח את המשימה הזאת. הנה, זה דוקר אינספקט של המשימה, אנחנו רואים מה המשימה הזאת שהוטלה עליו.
אנחנו רואים קודם כל זה מספר סידורי של כל עדכון שמתבצע בקלאסטר המספר עולה ב-1 ככה תחנות בין הקלאסטר כאילו נודים יודעים מה הדבר האחרון שקרה זו גרסה גלובלית אחרונה רואים אימג' איזה אימג' איזה משתנה סביבה זה משימה להקים את הקונטיינר שלא בוצע init mounts שימו לב פה כתוב
והמאונטים של המשימה זה מה שהגדרנו לו טייפ ביינד ויש ווליום ווליום הוא מנהל וביינד אני מנהל מה זה מנהל זה אומר איפה הסורס נמצא אני רוצה שהסורס יהיה במקום שלי אז זה צריך להיות ביינד בווליום הוא מנהל אז אפשר גם לשים שם פלאגינים כמו גיבוי לענן dns קונפיג הגבלת משאבים שימו לב המשימה אומרת לרוץ רק על לינוקס אתם רואים אני מזכיר לכם אנחנו בדוקר אינספקט של משימה
אז אומרים רק להריץ על נוד מסוג לינוקס ו-DesireState שלה, שימו לב, בגלל שזה נכשל, הוא רוצה שעכשיו זה יהיה כבוי, שהקונטיינר יהיה כבוי.
הוא החליט שהסטטוס שלה Rejected, כאילו הנוד דחה אותה, הסטטוס Rejected, ועכשיו ה-DesireState, המצב הרצוי של הקונטיינר שאמור להיות צמוד אליו, זה ShutDown.
כאילו הוא הפך את ה-DesireState למצב של ShutDown, ויש פה עוד כל מיני הגדרות, כמו להתחבר לרשת זאת ואיזה IP שימו לב המנאג'ר נתן לנו הקציב לו IP אתם רואים 3.131 אתם רואים דרך אגב הוא לכל משימה מקציב IP שזה גם מאוד מאוד חשוב איזה משימה עשינו OD 5 סתם נתפוס עכשיו משימה אחרת שימו לב הוא
מקציב להם כתובות IP נו מה יש לו דורקר סרוויס פי אס הוא רוצה שזה יהיה ריידי הוא רוצה שזה יהיה ריידי אחרי שהוא לא הצליח הוא להפוך את זה לשאט דאון הנה בבקשה אני לוקח את זה עושה דוקר אינספקט אני רוצה אינספקט והנה טוב את איי פי הבנתם זה מה שעושה מנאג'ר זה המהות של מנאג'ר לקחת הגדרות ולתזמן
אותם שימו לב זה עדיין לא הפך לשום קונטיינר כן אנחנו רואים פה שאין קונטיינר טוב בוא ניצור לו את הקונטיינר אחרת הוא ישתגע אתם רואים כל חמש שניות הוא מנסה משימה אחרת אז אתם רואים הדיזייר סטייט שלו ריידי שהוא רוצה שזה יהיה ריידי קארנט סטייט פריפרינג כרגע הוא מנסה להכין אותו אחרי שהוא יכשל הדיזייר סטייט יהפוך להיות שאט דאון והוא יתזמן
משהו חדש כך הוא עובד אתם רואים דיזייר סטייט זה המצב הרצוי וזה המצב הנוכחי יופי טוב מאוד שזה קרה לנו בואו נעשה רק נו טרנקייט נראה את כל הודעת השגיאה כדי שנוכל להעתיק ממנה את הנתיב שלנו mkdir הנה יצרנו, ועכשיו הוא ישר ישים פה את הקבצים שלו.
בואו תראו, הנה, ראיתם? הוא התחיל לשים לשם את הקבצים. הנה הוא שם, אתם רואים? הנה הוא שם קבצים. יפה מאוד, ממש הקונטיינר עולה ושם את הקבצים בסטורייץ' שלנו.
ממש יכולים לראות את זה. אז אם אנחנו נעשה פה דוקר סרוויס,