PracticU

התקנה של DTR HA Cluster

בלי כתוביותעם כתוביות
PracticU › קורס Docker - עם Swarm Cluster › התקנה של DTR HA Cluster
מילון מושגים:
קלאסטר - קבוצת מחשבים או שרתים שעובדים יחד כמערכת אחת, לשם זמינות גבוהה, ביצועים או חלוקת עומס.
Docker Image - תבנית לקריאה בלבד שמכילה אפליקציה ותלויותיה, וממנה מריצים קונטיינרים ב-Docker.
אחסון - שמירת נתונים באופן קבוע על התקנים כמו דיסקים או שירותי ענן, כך שיישמרו גם לאחר כיבוי.
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
שיתוף - תיקייה או משאב שהועמדו לרשת כדי שמשתמשים אחרים יוכלו לגשת אליהם לפי הרשאות.
ענן - אספקת משאבי מחשוב כשירות דרך האינטרנט, כמו שרתים, אחסון ותוכנות, במקום להחזיק אותם מקומית.
S3 - שירות אחסון אובייקטים של AWS לשמירת קבצים ונתונים בענן בכמות גדולה ובזמינות גבוהה.
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.

התקנה של DTR HA Cluster
הרצאה על הגדרת DTR בסביבת High Availability: יצירת מאגרים והרשאות לצוותים, דחיפה ומשיכה של אימג'ים, הוספת רפליקות לקלאסטר DTR, ואחסון משותף.
השלבים העיקריים
1. מאגרים והרשאות: מאגר (repository) נוצר לכל משתמש או לכל צוות, עם רמת גישה ציבורית או פרטית. ההרצאה הדגימה צוות DBA עם הרשאת כתיבה, וצוות אתרים עם הרשאת קריאה בלבד על אותו מאגר.
2. דחיפה ומשיכה: אחרי docker login לכתובת ה-DTR, תיוג האימג' בשם המאגר ופקודת push מעלים את האימג'. משתמש ללא הרשאה מקבל access denied.
3. תגיות וחתימה: לכל אימג' יש תגיות (tags). ב-DTR מוצג גם אם האימג' חתום דיגיטלית.
4. הוספת רפליקה: פקודת join של DTR מתקינה רפליקה נוספת על נוד אחר ומעתיקה ממנו את המידע. מומלץ מספר אי-זוגי של רפליקות (שלוש או חמש), כדי ששאר הרפליקות יהוו רוב כשאחת נופלת.
5. אחסון משותף: כברירת מחדל כל רפליקה שומרת את האימג'ים בדיסק המקומי שלה. ההרצאה הזהירה שצריך אחסון משותף לכל הרפליקות, כמו תיקייה משותפת או שירות ענן כמו S3, אחרת אימג' שנדחף לרפליקה אחת לא יופיע באחרת.
טעויות נפוצות
רפליקה אחת בלי אחסון משותף מציגה אזהרה. ההרצאה הציגה גם מצב שבו קלאסטר עם שתי רפליקות מפסיק להגיב כשאחת נופלת, כי אין רוב, ולכן יש להקים לפחות שלוש.
שימו לב
Webhooks ו-Promotion הם כלים לפעולות אוטומטיות שמופעלות כשאימג' נדחף או מקבל תגית מסוימת. הפעולות האלה מוגדרות בהגדרות המאגר ב-DTR.
בסיום יודעים להקים מאגרים עם הרשאות ולהגדיר DTR זמין עם כמה רפליקות.
השיעור הבא בקורס: הרצת Image מתוך DTR

פרקי ההרצאה: התקנה של DTR HA Cluster

  1. 00:00

    מה כולל מאגר DTR בגרסה בתשלום

  2. 01:13

    יצירת מאגר אימג'ים לפי משתמש

  3. 03:48

    מאגרים לפי ארגון וצוותים

  4. 05:53

    הרשאות קריאה וכתיבה על מאגר

  5. 10:04

    התחברות ל-DTR עם docker login

  6. 11:44

    תיוג אימג' לפי שם המאגר

  7. 12:36

    בדיקת הרשאות בעת Push לאימג'

  8. 14:15

    Webhooks: התראות על אירועים במאגר

תמלול ההרצאה: התקנה של DTR HA Cluster

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

  1. 00:02

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

  2. 00:16

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

  3. 00:31

    בואו נתחיל לראות את זה. הכי חשוב להבין שזה חלק מאנטרפרייז, דוקר אנטרפרייז זה שני מוצרים, DTR זה המאגר המרכזי של אימג'ים ו-UCP שזה Universal Control Plan שזה המוצר השני שמריץ את כל הקונטיינרים ומראה לי את המצב של הקלאסטר שלי.

  4. 00:53

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

  5. 01:15

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

  6. 01:59

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

  7. 02:30

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

  8. 02:49

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

  9. 03:32

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

  10. 04:02

    לי טימס של dba אדמינס יש יש טים של ובסייט אדמינס ויש אחד כללי לכולם אז נניח אני יכול לעשות פה שDB אדמינס שזה אלכס וליזה וובסייט אדמינס אין אף אחד אוקיי אז בוא נעשה שDB אדמינס יש להם לא add users אני לא רוצה להוסיף לפה משתמשים אני יכול דרך אגב להוסיף לפה משתמשים והם יתווספו ב-UCP גם אני עושה להם רפוזיטורי רפוזיטורי ואני עושה להם רפוזיטורי הוא שואל

  11. 04:41

    אותי האם אני רוצה אחד חדש או אחד קיים אם אני עושה קיים הוא אומר לא קיים כלום אני עושה חדש ואני אקרא לו mysql mysql שיהיה public שכולם יוכלו לראות אותו איזה גישה תהיה לדיבי אדמינס יהיה להם read-write וזהו ואני עושה סייב אז יש לי פה מאגר שיש לו read-write

  12. 05:09

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

  13. 05:57

    repositories project1.mysql פה אנחנו נכנסים פנימה אנחנו רואים פה או docker pool איך לעשות את הפקודה הזאת, אתם רואים, זה ה-tag שאנחנו נשים על המשהו בשביל לדחוף לכאן את האימג'ים, tags זה תכלס איזה אימג'ים יש לי, permissions זה הרשאות שיש, ו-dba-admin יש להם read-write.

  14. 06:23

    בואו נוסיף שלאנשי ה-wordpress יש read. אנחנו לא יכולים להוסיף מפה, אנחנו הולכים עוד פעם ל-organization, הולכים לקבוצה שנקראת website-admins, ולא מוסיפים לפה אנשים אפשר להוסיף לפה עוד אנשים לדוגמא להגיד שמי הממברים בקבוצה הזאת כרגע אין בה ממברים בוא נוסיף יוזר נניח לא יודע ליזה שהיא תהיה משתמשת קיימת פה בקבוצה אני יכול לעשות גם משתמש חדש נניח משתמש חדש ג'ון הגיע לתת לו פסוורד והג'ון הזה יופיע

  15. 07:07

    גם בג'ון הזה שנהיה ובסייט הוא גם הופיע פה ב-UCP שימו לב ב-UCP ב-Access Control ב-Users הופיע הג'ון הזה ואם אנחנו ניכנס פה אתם תראו שבפרויקט אחד בוובסייט אדמינס יש גם את ליזה וגם את ג'ון אז זה אותו מאגר מרכזי אבל זה לא מה שמעניין אותנו ניהול היוזרים מה שמעניין אותנו רפוזיטורי ואני עושה שוובסייט אדמינס

  16. 07:39

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

  17. 08:13

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

  18. 08:39

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

  19. 09:10

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

  20. 09:36

    לו פרוג'קט אחד, ושם כבר יש אפשרות לחלק הרשאות. זה משהו שחשוב לציין לכם. ברפוזיטוריז, פרויקט אחד מה-SQL, יש permissions.

  21. 09:51

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

  22. 10:04

    אז מה אנחנו צריכים לעשות? אז קודם כל אנחנו צריכים לעשות דוקר לוגין. אנחנו צריכים לעשות דוקר לוגין ולעשות לוגין ל-DTR, אם נעשה מינוס מינוס help אנחנו נראה את הפקודה docker login options ולאיזה שרת נכנסים אם לא כותבים שום שרת אנחנו נכנסים לhub של הדוקר כן של האונליין שלו וזהו ופה אנחנו יכולים

  23. 10:18

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

  24. 11:19

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

  25. 12:00

    אני מחליף לו תגית, במקום שיקראו לו בשם הזה, הקריאו לו בשם של המאגר שלי, slash admin slash docker demo, מאיפה אני מביא את זה?

  26. 12:10

    אני מביא את זה מפה, admin slash docker-demo, יש? יש. ועכשיו אני יכול לתת לו אפילו תגיד, לדוגמה v1.

  27. 12:20

    אם אני לא אעשה שום תגיד, הוא יעשה latest. אוקיי, אז אנחנו שמים פה תגיד כזאת, בבקשה, ושמים עוד תגיד בשם אלכס. על אותו אימג' בדיוק יש שני תגיות. עכשיו, אם נעשה docker-push עם התגיד של האדמין, מה אתם חושבים, האם אלכס יצליח לעשות פוש עם התגיד של האדמין?

  28. 12:52

    התשובה היא לא. access to the resource is denied גישה נדחתה אתה לא יכול לגשת לתוך ה-resource הזה לתוך המשאב הזה אסור לך למה כי אתה לא מורשה אבל אם אתה רוצה לדחוף אתה יכול לדחוף למאגר שלך ל-repository שלך של אלכס בבקשה תדחוף שמה כמה שאתה רוצה מה שאתה רוצה ואז אני יכול לראות שבתוך admin אין לי פה

  29. 13:20

    כלום אבל ב-repository של אלכס איפה אלכס שלנו יש לנו פה tag latest נכון שלפני 15 19 שניות הוספנו אותו ב-אלכס. אז הבנו שיש הרשאות, יש סיקיוריטי, יש חלוקת הרשאות, עושים פוש.

  30. 13:44

    מה עוד מעניין? טאגס, אנחנו רואים פה שזה latest not signed, הוא לא חתום דיגיטלית. אם הוא היה חתום דיגיטלית היה פה וי כזה שחתמנו דיגיטלית, וכאן אתם רואים אם האימג' נחתם דיגיטלית או לא.

  31. 14:07

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

  32. 14:40

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

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

ההרצאה הקודמת: התקנה של DTR Registry

ההרצאה הבאה: הרצת Image מתוך DTR

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

  • התקנה
  • התקנה של DC
  • הרצאה על FortiGate HA Cluster
  • הקמת Cluster HyperV - חלק 1

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

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