PracticU

Docker Swarm - Remote CLI

בלי כתוביותעם כתוביות
PracticU › קורס Docker - עם Swarm Cluster › Docker Swarm - Remote CLI
מילון מושגים:
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
קלאסטר - קבוצת מחשבים או שרתים שעובדים יחד כמערכת אחת, לשם זמינות גבוהה, ביצועים או חלוקת עומס.
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
פורט - מספר שמזהה שירות או תהליך מסוים בתוך מחשב, ומאפשר לכוון תעבורת רשת ליעד הנכון. למשל פורט 80 ל-HTTP.
משתנה סביבה - ערך בעל שם שמוגדר במערכת ההפעלה ומשמש תוכנות להגדרות, כמו נתיבים או מפתחות תצורה.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.
PowerShell - סביבת שורת פקודה ושפת סקריפטים של מיקרוסופט לניהול אוטומטי של מערכות Windows ושירותים.

Docker Swarm - Remote CLI
הרצאה על ניהול קלאסטר Docker מרחוק: חיבור מתחנת עבודה לקלאסטר דרך UCP בעזרת client bundle, והגדרת הקונטקסט כך שההגדרות נשמרות אחרי הפעלה מחדש.
השלבים העיקריים
1. מטרה: משתמשים צריכים להריץ פקודות דוקר מתחנת העבודה שלהם בלי להיכנס לנודים עצמם, ובלי לפתוח את כל הפורטים של הקלאסטר. מספיק פורט אחד, של UCP.
2. חיבור דרך UCP: כל משתמש מוריד מ-My Profile את ה-client bundle, שמכיל תעודות וקובץ משתני סביבה. הפקודות נשלחות לכתובת UCP, והוא מעביר אותן למנוע הדוקר של הקלאסטר לפי ההרשאות של המשתמש.
3. הגדרת הסביבה: סקריפט הסביבה שבחבילה (env.sh, או הגרסה ל-PowerShell) מגדיר את משתני הסביבה של הכתובת והתעודות. אחרי ההרצה, docker version מציג גם את צד השרת.
4. שמירה בקונטקסט: docker context export שומר את החיבור לקובץ, ו-docker context import מייבא אותו תחת שם משלו. כך החיבור נשמר גם אחרי הפעלה מחדש של המחשב.
5. מעבר בין קלאסטרים: docker context use מחליף את היעד של כל הפקודות בלי לשנות את הפקודה עצמה.
פקודות והגדרות
הרצת סקריפט הסביבה מה-bundle, docker context export, docker context import, docker context use, docker context ls, docker context inspect.
שימו לב
משתמש עם הרשאות מוגבלות רואה מהחיבור רק את מה שהותר לו, ולכן החיבור מרחוק לא נותן גישה רחבה יותר ממה שהוגדר ב-UCP.
בסיום יודעים לנהל קלאסטר מרחוק מתחנת עבודה ולשמור כמה חיבורים בקונטקסטים נפרדים.
השיעור הבא בקורס: Docker Swarm - Sign Image

פרקי ההרצאה: Docker Swarm - Remote CLI

  1. 00:00

    עבודה מרחוק עם קלאסטר Swarm

  2. 00:56

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

  3. 03:12

    למה פקודת docker מקומית לא מוצאת את הקלאסטר

  4. 04:11

    התחברות ל-DTR אינה מחברת לקלאסטר

  5. 06:16

    הקשרים (Contexts) של Docker

  6. 07:10

    הורדת Client Bundle מ-UCP

  7. 08:24

    הגדרת משתני סביבה מתוך ה-Bundle

  8. 09:02

    UCP כשער לפקודות Docker מרחוק

תמלול ההרצאה: Docker Swarm - Remote CLI

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

  1. 00:02

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

  2. 00:18

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

  3. 00:29

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

  4. 01:04

    לו פה את כל האופציות שיש לאדמיניסטרטור לדוגמה אין לו לדוגמה פה לאדמיניסטרטור יש access control ואצלו אין access control אתם רואים אין לו פה access control טוב אז בואו נראה איך הוא מקים סרוויס אז הוא לוקח סרוויס והוא רוצה לעשות סרוויס חדש בוא ניכנס לdtr ונמשוך איזשהו image dtrfractic.com 8443 באמצעיות אתם תעשו פשוט כתובות IP שונות ולא תצטרכו

  5. 01:47

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

  6. 02:21

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

  7. 03:00

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

  8. 03:33

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

  9. 03:58

    בתוך תיקיית הבית שלנו, בתוך תיקיית הבית אין לנו אפילו תיקייה נקודת דוקר. אתם רואים, אין לנו נקודת דוקר, זאת אומרת נקודת דוקר לא קיים, no such file.

  10. 04:13

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

  11. 04:41

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

  12. 05:08

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

  13. 05:25

    בואו ננסה ליצור סרוויס, איך הפקודה הזאת הולכת? docker service create t2, וזה עדיין לא עובד לנו.

  14. 05:41

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

  15. 06:05

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

  16. 06:30

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

  17. 06:54

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

  18. 07:15

    אז נכנסים ל-UCP, לאלכס, ב-My Profile שלו אנחנו יכולים להוריד את כל ה-Bundle, את כל התעודות הדיגיטליות שלו. Generate Client Bundle, הוא יוצר לנו Public ו-Private Key.

  19. 07:28

    לאלכס, שומר, הורדנו את זה לתיקי הדאונלואודס, הנה זה פה, בואו נפתח את זה. Extract here, הנה פתחנו את זה. ויש לנו פה את כל התעודות שלנו, זו התעודה של האבא שחותם על כל הצעשייה שלנו, זה ה-Public Key שלנו, תעודה עם ה-Public Key, זה public key נטו בלי התעודה, זה רק הנוסחה המתמטית.

  20. 08:04

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

  21. 08:20

    Key זה למעשה ה-private key של אלכס, אנחנו מעוניינים בקובץ הזה, בואו נעשה את זה, בואו נראה את הקובץ הזה, ניכנס לתיקיית bundle, זאת תיקייה environment.sh ואנחנו רואים, פה מאוד מאוד פשוט ארבע משתנה סביבה אחד אומר לבדוק ssl שתיים אומר איזה גרסה של ssl זה שטויות שלוש אומר שהתעודות של אלכס נמצאות

  22. 08:48

    בתיקי הנוכחית וזה מה שרציתי שיהיה לו שאת כל הפקודות docker host לאן ללכת עם הפקודות ללכת לשרת שנקרא ucp practical.com עם כל הפקודות של docker service create שימו לב הוא מגיע תכלס לאתר ווב לתוך הקונטיינר של ucp אבל קונטיינר של ucp מקבל את כל הפקודות הרגילות של דוקר הוא מבין אותם ומעביר את זה לדוקר הפיזי הבנתם זאת אומרת יש לי קלאסטר שאני לא באמת יכול להגיע אליו אז

  23. 09:29

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

  24. 09:58

    אוקיי, אז אני לוקח מפה את כל הפקודות האלו, מריץ אותן כאן עכשיו יש לי דוקר הוסט מקומי ואני יכול לעשות docker service create name t2 אוי, שכחתי להיכנס לתיקייה הנכונה סליחה, סליחה, סליחה, איפה התיקייה שלנו?

  25. 10:30

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

  26. 10:47

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

  27. 11:11

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

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

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

ההרצאה הבאה: Docker Swarm - Sign Image

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

  • docker
  • AWS CLI - חלק 1
  • TS Remote Application
  • התקנה של AWS CLI

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

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