PracticU

DTR HA Cluster - Storage Bind

בלי כתוביותעם כתוביות
PracticU › קורס Docker - עם Swarm Cluster › DTR HA Cluster - Storage Bind
מילון מושגים:
קלאסטר - קבוצת מחשבים או שרתים שעובדים יחד כמערכת אחת, לשם זמינות גבוהה, ביצועים או חלוקת עומס.
אחסון - שמירת נתונים באופן קבוע על התקנים כמו דיסקים או שירותי ענן, כך שיישמרו גם לאחר כיבוי.
שיתוף - תיקייה או משאב שהועמדו לרשת כדי שמשתמשים אחרים יוכלו לגשת אליהם לפי הרשאות.
Docker Image - תבנית לקריאה בלבד שמכילה אפליקציה ותלויותיה, וממנה מריצים קונטיינרים ב-Docker.
ווליום - יחידת אחסון לוגית על דיסק או מספר דיסקים. ב-Docker, מנגנון לשמירת נתונים מחוץ לקונטיינר.
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
חתימה דיגיטלית - מנגנון מבוסס הצפנה שמוכיח את מקור המידע ושלא שונה בדרך, בעזרת המפתח הפרטי של החותם.

DTR HA Cluster - Storage Bind
הרצאה על העברת האחסון של DTR לתיקייה משותפת, כדי שכל הרפליקות יראו את אותם אימג'ים. ההרצאה מתארת גם רפליקה שנכנסה למצב לא בריא ואיך מתקנים אותה.
השלבים העיקריים
1. הבעיה: DTR רץ כקונטיינרים, וכל רפליקה שומרת את האימג'ים בווליום מקומי שלה. לכן אימג' שנדחף לרפליקה אחת לא מופיע באחרת, וה-UCP מציג אזהרה על אחסון שאינו משותף.
2. בדיקת הנתונים: docker volume inspect על הווליום של ה-registry מראה איפה הנתונים נשמרים בדיסק. בתוך התיקייה נמצאים קבצי האימג'ים בתת-תיקיות registry ו-v2.
3. העתקה לתיקייה משותפת: מעתיקים את כל התוכן לתיקייה על האחסון המשותף. ההרצאה השתמשה בהעתקה ששומרת על ההרשאות ועל מבנה התיקיות.
4. הפעלה מחדש עם bind: פקודת reconfigure של האימג' של DTR רצה על הרפליקות, ומגדירה את התיקייה המשותפת כ-bind במקום ווליום מקומי. ה-UCP מעביר את ההגדרה לכל הנודים.
5. בדיקה: docker ps מראה שהקונטיינרים של DTR חיים, והאזהרה ב-UCP נעלמת.
טעויות נפוצות
כשרפליקה הופכת ללא בריאה, יש לבדוק ב-docker ps איזו רפליקה לא עובדת. ההרצאה הראתה רפליקה שמתאתחלת שוב ושוב ולא מקבלת פניות. הפתרון היה להריץ reconfigure מחדש, והנתונים נשמרו בווליומים הקיימים.
ההרצאה הזהירה שכדי ש-DTR יעבוד באחסון משותף, כל הרפליקות חייבות לקרוא מאותה תיקייה.
שימו לב
במהלך העבודה הופעלה מדיניות של UCP שמחייבת חתימה דיגיטלית, ולכן הקונטיינרים של DTR עצמם נחסמו. המרצה כיבה את המדיניות זמנית ואז הפעיל אותה מחדש. מדיניות כזאת משפיעה גם על המערכת שמנהלת את המאגר.
בסיום יודעים להעביר את האחסון של DTR לתיקייה משותפת ולהחזיר רפליקה לא בריאה למצב תקין.
השיעור הבא בקורס: Docker Swarm - Remote CLI

פרקי ההרצאה: DTR HA Cluster - Storage Bind

  1. 00:00

    אחסון משותף ל-DTR בלי ענן

  2. 00:46

    DTR כקונטיינרים רגילים ולא כשירות

  3. 03:23

    הרפליקות של DTR על כל נוד

  4. 05:47

    זיהוי רפליקה לא בריאה והפעלה מחדש

  5. 07:36

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

  6. 08:11

    בניית מחדש של רפליקה עם reconfigure

  7. 09:28

    איפה נשמרים האימג'ים בדיסק

  8. 12:21

    חסימת הרצה של אימג'ים לא חתומים

תמלול ההרצאה: DTR HA Cluster - Storage Bind

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

  1. 00:02

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

  2. 00:25

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

  3. 00:46

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

  4. 01:17

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

  5. 01:51

    הקונטיינרים הפשוטים ברמת קלאסטר אבל איפה ה-DTR תשאלו אותי תראו יש פה קליינט אחד UCP דמו שהרצנו אתכם אבל אין DTR איפה ה-DTR DTR אתם לא תאמינו זה קונטיינר פשוט נכון תסתכלו docker.ps מריץ לי קונטיינרים פשוטים זאת אומרת שבקלאסטר יכולים לרוץ קונטיינרים שהם חלק מהסרוויסים כן

  6. 02:23

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

  7. 02:59

    שלדוגמה קונטיינר dtr engine x מקבל את הפניות בפורט 8443 ומפנה אותם לפורט הפנימי 443. אז DTR זה קונטיינרים רגילים שאפילו לא מחוברים לסרוויס אחד בקלאסטר, כביכול כאילו לא קשורים אחד לשני ולא יודע למה לא אספו אותם לסרוויס, אל תשאלו אותי, אבל ככה זה עובד.

  8. 03:25

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

  9. 04:00

    בואו נראה את זה. נעשה פה סודו מינוס S, ונעשה דוקר P-S, גרפ DTR, בשביל לראות את הקונטיינרים של DTR, ואנחנו רואים פה שבשני המספר הוא 557 בסוף.

  10. 04:32

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

  11. 04:59

    אתם רואים? זה מקבל פניות ב-443, וזה, אני רואה שהוא לא מקבל פניות ב-443. מוזר מאוד.

  12. 05:10

    בואו ניקח את הפקודה הזאת לשלישי ונראה מה קורה אצלו. פה הוא כן מקבל פניות ב-443, וזה 706. אנחנו רואים רפליקה 706, פה הוא מקבל פניות, כאן הוא לא מקבל פניות.

  13. 05:44

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

  14. 05:52

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

  15. 06:07

    ש-557, unhealthy, שהוא לא בריא. תראו, הממשק הגרפי אומר שהוא לא בריא, ושני אלו כן בריאים 30d הראשון ו-706 אז 557 הזה הוא unhealthy הוא לא בריא הוא איבד קשר עם הקלאסטר אל תשאלו אותי למה הוא איבד קשר עם הקלאסטר משהו קרה לו אז איך אנחנו פותרים את הבעיה הזאת אתם רואים הוא עושה כל הזמן ריסטרטינג תראו איזה קטע הנה לפני 11 שניות עוד פעם ריסטרטינג והוא לא מקבל פניות אז ככה קודם כל כשקלאסטר מתנתק זה שבמיעוט

  16. 06:43

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

  17. 06:55

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

  18. 07:17

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

  19. 07:29

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

  20. 07:55

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

  21. 08:09

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

  22. 08:17

    כבר ראינו את הפקודה ואנחנו נעשה אותה עוד פעם. הפקודה היא מאוד פשוטה, לעשות Re-Configure. אני מריץ docker dtr, Re-configure, תגדיר מחדש, ואני לא אומר לו שום אופציה, סתם תגדיר הכל מהחדש, אל תחליף שום אופציות, פשוט מקימים הכל מההתחלה.

  23. 08:37

    הוא שואל אותי מי זה ה-UCP שלי, אני נותן לו לינק ל-UCP שלי, Enter my username ב-UCP ו-password, ועכשיו מה שהוא יעשה, הוא יקים מההתחלה, הוא שואל אותי את מי להקים מההתחלה, את ה-557 הזה, כן, הנה 557, אתם רואים,

  24. 09:00

    יש לי 557, 30D זה הראשון ו-706 זה האחרון. אני עושה לו Enter ומה שהוא עושה הוא בעצם מעיף את כל הקונטיינרים, מקים אותם מההתחלה, כאילו מקים את כל הקונטיינרים מההתחלה, מגדיר אותם מההתחלה ומשתמש באותם הווליומים הקיימים.

  25. 09:23

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

  26. 09:42

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

  27. 10:19

    בואו נראה מה יש לנו בארדיסק המקומי של אובונטו אחד. אני עושה LL לראות מה יש בפנים. הוא כותב לי Access Denied, צריך לעשות סודו, LS-L, סודו זה Run as Administrator, הנה יש לי תיקיית דוקר בפנים.

  28. 10:43

    מה יש לי בתוך תיקיית דוקר? יש לי תיקיית רג'יסטרי, בתוך רג'יסטרי, מה יש לי בתוך רג'יסטרי? יש לי V2, מה יש לי בתוך V2?

  29. 10:55

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

  30. 11:30

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

  31. 12:24

    Not met required sign policy. או, יש לנו sign policy. זוכרים שאמרנו שאף אחד לא יכול להריץ קונטיינרים בלי חתימה דיגיטלית שלי?

  32. 12:39

    עכשיו הוא לא יכול להריץ קונטיינרים של DTR. איזה קטע. טוב, בואו נלך לתוך ה-UCP ונבטל את מה שעשינו בשיעור קודם, בהרצאה הקודמת.

  33. 12:52

    בתוך ה-content docker, content trust, אני מוריד את ה-v של run only signed image, אני אוכל להריץ כל אימג' לא רק זה שחתמתי עליו דיגיטלית. אתם רואים, הפוליסה עבדה, שחוסמת הרצה של אימג'ים שלא הרשיתי אותם.

  34. 13:15

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

  35. 13:30

    עכשיו הוא שואל אותי את מי אנחנו רוצים Reconfigure, 30D? לא, לא, לא, לא 30D. לא 30D. רצינו ל-reconfigure את ה-557, נכון? זה ה-557 פה, הבעייתי.

  36. 13:46

    כן, זה ה-557 הבעייתי, נכון. אני אומר לו, לא 30D, 557. Reconfigure ל-557. אז הרסנו את ה-image של docker dtr, ואמרנו לו, בפנים, כשאתה שם בפנים, תפעיל תוכנת Reconfigure אצלך בתוך ה-image שלך, בתוך הקונטיינר אצלך, ואז הוא מתחבר ל-hard disk הפיזי, ל-node הפיזי,

  37. 14:13

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

  38. 14:33

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

  39. 14:51

    הבנתם? האימייג' הזה מתחבר ל-UCP ו-UCP יש לו מונט לתוך ה-Node הפיזי בניהול של ה-Swarm, של

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

ההרצאה הקודמת: חתימה דיגיטלית - DTR - Image Sign

ההרצאה הבאה: Docker Swarm - Remote CLI

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

  • S3 Storage - חלק 1
  • External Storage
  • מבוא ל-Storage בענן
  • הרצאה על FortiGate HA Cluster

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

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