
docker service inspect מציג את הספציפיקציה של השירות, כולל האימג', משתני הסביבה, המאונטים וקטע UpdateConfig שקובע את אופן העדכון.--update-parallelism (כמה משימות מתעדכנות בו זמנית) ו---update-delay (כמה זמן לחכות בין קבוצה לקבוצה) קובעות את הקצב. בהרצאה עודכנו שתיים בכל פעם עם המתנה של 10 שניות.docker service update --image מחליף את האימג'. הקלאסטר מפעיל כל משימה חדשה, ממתין כמה שניות לבדוק שהיא תקינה, ורק אז ממשיך לקבוצה הבאה.docker service update --rollback מחזיר את השירות להגדרה הקודמת, שנשמרת אוטומטית בתוך השירות. ההחזרה בוצעה בלי המתנה בין הקונטיינרים, והאתר חזר לעבוד.docker service inspect wordpress, docker service update --image, docker service update --update-parallelism 2 --update-delay 10s, docker service update --rollback, docker service ps.הטקסט המלא של הדקות הראשונות בהרצאה «Swarm Update & Rollback» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הזאת אני רוצה ללמד אתכם איך לעדכן את הסרוויס בקלאסטר איך להחליף לדוגמה וורדפרס לגרסה חדשה יותר יש לנו כרגע קלאסטרים שלושה סרוויסים ושלוש מכונות ומצאתי פתאום וורדפרס באתר של hub docker.com אימג' של וורדפרס שיש לנו פה עם גרסת לא רק וורדפרס לייטסט אלא גם אלפין The image based on popular Alpine Linux
project, והוא אמור להיות small, הוא אמור להיות מאוד קטן, וזה מצוין. ואני רוצה לעדכן את ה-Wordpress שהשתמש בגרסה הזאת ולא בגרסה המלאה, ויש לי כרגע שירות שעובד.
בואו נחקור את השירות שעובד ונראה מה יש לנו בו. docker service inspect, אנחנו חוקרים את השירות שנקרא WordPress service, ומה אנחנו רואים כאן?
אנחנו רואים שיש לנו את הספציפיקציה של השירות כרגע, עם אימג' של WordPress Latest, עם כל מיני משתנה סביבה, חיבור ל-hard disk הפיזי, לסטיקיית מונט, לסטורג'.
מה שמעניין זה Update Config. מה זה Update Config? כשאני אעשה עדכון, Update כלשהו לשירות, בו זמנית יתעדכן רק מופע אחת, ויש לי שישה כאלו, אתם רואים, יש לי שש רפליקות, ויתעדכן רק אחד בו זמנית בפרלל, אם יהיה כישלון אז הוא יעצור את כל העדכונים, אם איזשהו קונטיינר לא יעלה אז הוא יעצור
את כל העדכונים. אחרי חמש שניות הוא בודק שהקונטיינר עלה כמו שצריך. מותר לסבול אפס שגיאות, זאת אומרת אין מצב שמשהו לא עולה, אם משהו לא עולה ישר אני עובר לפאוזה ועוצר את כל העדכונים.
חצי מהמכונות התעדכנו, חצי לא, עוצרים את הכל אם יש תקלה כלשהי בקונטיינר. וזהו, זה מה שרציתי להראות לכם, יש לנו גם rollback, עוד מעט נדבר עליו. אז יש לנו את ה-update הזה, שהוא נמצא בתוך ה-spec, אוקיי?
ואני רוצה להחליף את ה-wordpress, יפה מאוד. יש לנו גם את הכתובות IP ודברים אחרים שנדבר עליהם בהמשך, יש לנו גם פורטים שאנחנו מפרסמים החוצה.
טוב, אז אנחנו רוצים לעדכן את השירות של ה-wordpress, ובואו תראו מה יש לנו פה ב-wordpress, יש לנו פה הרבה היסטוריה.
בואו נעשה עכשיו עדכון, כן, זה לא מעניין. לפני שאני עושה עדכון, אני רוצה לעשות Watch, כן, כדי שאתם יודעים מה, אני לא צריך Watch, בואו נעשה פשוט עדכון וזהו. אז אני כותב docker service update, docker service, ואתם זוכרים מה יש לנו בסרוויס, כבר דיברנו, יש לנו ליצור סרוויס, לבדוק מה יש בתוך הסרוויס, בהגדרות שלו,
לוגים, לראות את הלוגים של סרוויס, מה זה לוגים? כשמכונה עושה console.log, כותבת משהו לממשק לוגי, אנחנו יכולים לשלוף את מה שהתוכנה כתבה.
כאילו המתכנתים יכולים לכתוב דברים ללוג ואנחנו יכולים לשלוף אותם. ls זה לראות את רשימת הסרוויסים שיש לנו. ps זה לראות טאסקים בסרוויס מסוים, זה אומר מכונות ספציפיות שמפעילות את הסרוויס.
rm זה למחוק את הסרוויס. rollback נדבר עליו היום. זה להגדיל מספר מכונות בסרוויס ו-update זה לעדכן. אז בואו נעשה update, אנחנו רוצים לעדכן.
ושימו לב כמה דברים יש לנו פה לעדכן. אנחנו יכולים לעשות מינוס מינוס help, מינוס מינוס help. ותראו כמה דברים אנחנו יכולים לעדכן בסרוויס.
בואו נחפש משהו שמעניין אותנו, אנחנו רוצים לעדכן אימג' ו-update image. איפה יש לנו פה אימג'? כאן אני רואה update paralism, כמה בו זמנית מתעדכנים, שימו לב, במקום לעשות אחד-אחד, אני יכול להגיד לו שיעדכן במקביל כמה טאסקים.
אנחנו יכולים לעשות delay, delay between updates, זאת אומרת, מסיים לעדכן שתיים, תחכה עשר שניות או תחכה יום שלם ואז תעדכן הלאה, אוקיי? זאת אומרת, אנחנו יכולים גם לעשות לו זה, אבל אני מחפש אימג', הנה אימג', Service Image Tag, לעדכן Service Image Tag.
בואו נכתוב את כל זה ביחד. ונעשה פקודה אחת ארוכה שמעדכנת לנו כמה דברים. אני אומר בדוקר סרוויס האבדייט, תעדכן לי את הסרוויס הקיים שנקרא וורדפרס סרוויס, ומה לעדכן בסרוויס הקיים, בדפינישן שלו, בהגדרות שלו, את האימג' לוורדפרס 523 PHP FML Alpin.
מאיפה הבאתי את זה, תשאלו אותי. נכון, יש פה מקף Alpin, תראו למעלה, אני עולה למעלה, אחי למעלה, ויש פה טאגס, אתם רואים טאגים.
סופורטד טייגס איזה טייגים יש והנה מפה לקחתי 523 PHP 71 FM הבנתם כאילו לוקח מפה איזשהו טייג הנה לקחתי פה 523 PHP FM על פין מפה העתקתי את זה גם על פין וגם FM שיהיה לי פה כמה דברים אוקיי אז אני לוקח את המושך את האימייג' הזה אומר לו בין העדכון לעדכון תמתין 10 שניות ותעשה במקביל כל פעם 2 בוא נראה איך
זה מתעדכן כן ודרך אגב האתר שלנו עובד, כן? אתם יודעים שהאתר שלנו עובד. בואו נבדוק שהאתר, הנה, אתם רואים, האתר עובד לנו.
טוב, מה אנחנו רואים? שיש לנו פה שניים שהותעתקנו והוא מחכה עכשיו עשר שניות. ראיתם, הוא בחר ראשון ושני, לאו דווקא הוא היה חייב להתחיל.
עכשיו שלוש וארבע, הוא מעדכן אותם, מעדכן את האימג'ים, מפיל קונטיינרים, מרים קונטיינרים, ממתין עשר שניות ועכשיו מעדכן קונטיינרים הבאים. מה זה אומר?
הוא בעצם מפיל את הטאסק, מפיל את הקונטיינר, מייצר טאסק חדש, מייצר קונטיינר חדש. יופי, וממתין 5 שניות לבדוק שהכל תקין, שהוא בריא, יופי.
עכשיו, אם אנחנו נעשה docker service ls, אנחנו נראה שיש לנו 6 מתוך 6 ב-wordpress, כן? אם אנחנו נעשה ps, פירוט, אנחנו נראה לדוגמה שהמופע מספר 6, סתם אני תופס אותו, כן?
מופע מספר 6 נהיה 5-2-3 החדש הזה עם אלפין ולפני כן והוא רץ על לובונטו 2 אתם רואים הוא רץ על לובונטו 2 56 שניות לפני כן המופע השישי שלו היה ליי טסט ורץ בכלל על לובונטו 3 אז הוא לקח את הטאסק את המשימה שרצה העביר אותה למצב שאט דאון הוריד אותה ויצר משימה חדשה עם האימג' החדש יפה מאוד העדכון הצליח אם אנחנו נעשה docker
service inspect wordpress אנחנו נראה פה כמה דברים מעניינים אנחנו נראה שלמעלה יש לנו את הספק עם האימג' החדש נכון זה הספק הנוכחי עם האימג' החדש ספציפיקיישן הגדרות מה אנחנו נראה כאן דברים מעניינים שבמקביל לעומת כן כל פעם שתיים מעכשיו העדכונים הם שתיים שתיים יש דיליי של עשר שניות ויש
יש לנו Previous Pack שזה משהו מעניין הוא שומר את ההגדרות הישנות אם משהו משתבש אפשר להחזיר חזרה את ההגדרות הישנות וזה ממש יפה וההגדרה הישנה שיהיה Image WordPress Latest וזה מאוד מאוד יפה שהוא שומר את ההגדרות הישנות וזהו זה מה שרציתי להראות לכם אז יש לנו סרוויס שעובד מצוין והכל טוב ויש רק בעיה אחת שאם אנחנו נבוא לבדוק נעשה Control F5
אנחנו פתאום מגלים שהאתר לא עובד לנו. לא יודע מה השתבש, אבל האתר עם האימג' החדש לא עובד.