בעולם של ימינו, ארגונים התחילו להתלהב ממכולות דורשות מיומנויות רשת חזקות כדי לקבוע תצורה נכונה של ארכיטקטורת מכולות, וכך זה מציג את הרעיון של רשת דוקר.
בבלוג זה ברשת Docker, תוכלו לעבור על הנושאים הבאים:
מה זה Docker?
כדי להבין את Docker, עליך לדעת על ההיסטוריה של האופן שבו יישומים נפרסו לפני כן ואז כיצד נפרסים יישומים באמצעות מכולות כעת.
כפי שניתן לראות בתרשים לעיל, בדרך הישנה היו יישומים על המארח.לכן, מספר יישומים חולקים את הספריות הקיימות באותה מערכת הפעלה.אבל, עם מיכל, מערכת ההפעלה תהיה ליבה שהיא הדבר היחיד שהולך להיות נפוץ בין כל היישומים.לכן, יישומים לא יכולים לגשת זה לספריות של השני.
כך, דוקר במילים פשוטות היא פלטפורמה פתוחה לפיתוח, משלוח והפעלת יישומים, המאפשרת למשתמש להפריד יישומים מתשתיות בעזרת מכולות לספק תוכנה במהירות.
אז איך מתקשרים מכולות אלה עם אלו במצבים שונים?
ובכן, זה מגיע דרך Docker Networking.
רשת דוקר
לפני שאצלול לעומק ברשת Docker תן לי להראות לך את זרימת העבודה של Docker.
כפי שניתן לראות בתרשים לעיל. מפתח כותב קוד הקובע את דרישות היישום או את התלות בקובץ Docker קל לכתיבה וקובץ Docker זה מייצר תמונות Docker. לכן, כל התלות הנדרשת ליישום מסוים קיימת בתמונה זו.
כעת, מיכלי Docker אינם אלא מופע זמן הריצה של Image Docker. תמונות אלו מועלות ל Docker Hub (מאגר Git לתמונות Docker) המכיל מאגרים ציבוריים / פרטיים.
אז, ממאגרים ציבוריים, אתה יכול למשוך גם את התמונה שלך ותוכל להעלות תמונות משלך לרכזת Docker. ואז, מ- Docker Hub, צוותים שונים כגון אבטחת איכות או צוותי הפקה ימשכו את התמונה ויכינו מכולות משלהם. מכולות נפרדות אלה, מתקשרות ביניהן באמצעות רשת לביצוע הפעולות הנדרשות, ואין זה אלא Docker Networking.
אז אתה יכול להגדיר רשת דוקר כמעבר תקשורת שדרכו כל המכולות המבודדות מתקשרות ביניהן במצבים שונים כדי לבצע את הפעולות הנדרשות.
מה לדעתך המטרות של Docker Networking?
מטרות רשת דוקר
גְמִישׁוּת - Docker מספק גמישות בכך שהוא מאפשר לכל מספר יישומים בפלטפורמות שונות לתקשר זה עם זה.
פלטפורמה חוצה - ניתן להשתמש בקלות ב- Docker בפלטפורמות שונות הפועלות על פני שרתים שונים בעזרת Docker Swarm Clusters.
מדרגיות - Docker היא רשת המופצת במלואה, המאפשרת ליישומים לגדול ולהתרחב בנפרד תוך הקפדה על ביצועים.
מבוזר - דוקר משתמש ברשת מבוזרת, המאפשרת יכולת הפצת היישומים וזמינים מאוד. במקרה שחסר פתאום מכולה או מארח במאגר המשאב שלך, תוכל להעלות משאב נוסף או להעביר לשירותים שעדיין זמינים.
סוף סוף סופית בג'אווה
ידידותי למשתמש - Docker מקל על פריסת השירותים באופן אוטומטי, מה שהופך אותם לקלים לשימוש בחיי היום יום.
תמיכה - Docker מציע תמיכה מחוץ לקופסה. לכן, היכולת להשתמש ב- Docker Enterprise Edition ולקבל את כל הפונקציונליות מאוד קלה וישרה, הופכת את פלטפורמת Docker לקלה מאוד לשימוש.
כדי לאפשר את היעדים שלמעלה, אתה זקוק למשהו המכונה מודל רשת המיכלים.
רוצה לחקור שלבי DevOps שונים?מודל רשת מיכל (CNM)
לפני שאגיד לך מהו בדיוק מודל רשת Container, הרשה לי לתדרך אותך על Libnetwork הדרוש לפני שתבין את CNM.
Libnetwork היא ספריית קוד פתוח של Docker המיישמת את כל מושגי המפתח המרכיבים את ה- CNM.
כך, מודל רשת מיכל (CNM) מתקן את הצעדים הנדרשים לספק רשת למכולות המשתמשות במנהלי רשת מרובים. CNM דורש חנות עם ערך מפתח מבוזר כמו קונסולה כדי לאחסן את תצורת הרשת.
ל- CNM יש ממשקים עבור תוספי IPAM ותוספי רשת.
ממשקי ה- API של תוסף ה- IPAM משמשים ליצירה / מחיקה של מאגרי כתובות ולהקצאה / דילוקציה של כתובות IP של מכולות, בעוד שממשקי ה- API של תוספי הרשת משמשים ליצירה / מחיקה של רשתות ולהוספה / הסרה של מכולות מרשתות.
CNM בנוי בעיקר על 5 אובייקטים: בקר רשת, מנהל התקן, רשת, נקודת קצה וארגז חול.
אובייקטים של דגם רשת מיכלים
בקר רשת: מספק את נקודת הכניסה ל- Libnetwork שחושפת ממשקי API פשוטים עבור Docker Engine להקצאה ולניהול רשתות. מכיוון ש- Libnetwork תומך במספר מנהלי התקנים מובנים ומרוחקים, בקר הרשת מאפשר למשתמשים לצרף מנהל התקן מסוים לרשת נתונה.
נהג: בעל הרשת ואחראי על ניהול הרשת על ידי כך שמשתתפים נהגים מרובים משתתפים בכדי לספק מקרי שימוש ותרחישי פריסה שונים.
רֶשֶׁת: מספק קישוריות בין קבוצה של נקודות קצה השייכות לאותה רשת ומבודדות מהשאר. לכן, בכל פעם שרשת נוצרת או מתעדכנת, הנהג המקביל יקבל הודעה על האירוע.
נקודת סיום: מספק קישוריות לשירותים שנחשפים על ידי מכולה ברשת עם שירותים אחרים הניתנים על ידי מכולות אחרות ברשת. נקודת קצה מייצגת שירות ולאו דווקא מיכל מסוים, נקודת קצה כוללת היקף גלובלי גם באשכול.
ארגז חול: נוצר כאשר משתמשים מבקשים ליצור נקודת קצה ברשת. בארגז חול יכולות להיות מחוברות נקודות קצה מרובות לרשתות שונות המייצגות את תצורת הרשת של המכולה כגון כתובת IP, כתובת MAC, מסלולים, DNS.
אז אלה היו 5 האובייקטים העיקריים של CNM.
עכשיו, הרשה לי לספר לך את מנהלי ההתקן השונים המעורבים ברשת Docker.
רוצה לקחת למידה של DevOps לשלב הבא?מנהלי רשת
ישנם בעיקר 5 מנהלי התקן רשת: Bridge, Host, None, Overlay, Macvlan
לְגַשֵׁר: רשת הגשר היא רשת ברירת מחדל פנימית פרטית שנוצרה על ידי העגינה במארח. לכן, כל המכולות מקבלות כתובת IP פנימית והמכולות הללו יכולות לגשת זו לזו באמצעות IP פנימי זה. רשתות Bridge משמשות בדרך כלל כאשר היישומים שלך פועלים במיכלים עצמאיים שצריכים לתקשר.
מנחה : מנהל התקן זה מסיר את בידוד הרשת בין מארח הדוקר למכולות העגינה כדי להשתמש ישירות ברשת המארח. אז עם זאת, לא תוכלו להריץ מספר מכולות אינטרנט באותו מארח, באותה יציאה כמו שהנמל משותף כעת לכל המכולות ברשת המארחת.
אף אחד : ברשת מסוג זה, מכולות אינן מחוברות לרשת כלשהי ואין להן גישה לרשת החיצונית או למכולות אחרות. אז, רשת זו משמשת כאשראתה רוצה להשבית לחלוטין את ערימת הרשת על מיכל,ליצור רק מכשיר לולאה-גב.
כיסוי : יוצר רשת פרטית פנימית המשתרעת על פני כל הצמתים המשתתפים באשכול הנחילים. לכן, רשתות כיסוי מאפשרות תקשורת בין שירות נחילים למיכל עצמאי, או בין שני מכולות עצמאיות בדמונים שונים של דוקר.
מקוולן: מאפשר לך להקצות כתובת MAC למכולה, כך שהיא תופיע כמכשיר פיזי ברשת שלך. לאחר מכן, הדמון של דוקר מנתב תנועה למכולות לפי כתובות ה- MAC שלהם. מנהל ההתקן של Macvlan הוא הבחירה הטובה ביותר כאשר מצפים ממך להיות מחובר ישירות לרשת הפיזית, במקום לנותב דרך מחסנית הרשת של מארח הדוקר.
בסדר, כך כל התיאוריה הנדרשת להבנת רשת דוקר. עכשיו, תן לי להמשיך ולהראות לך בפועל כיצד הרשתות נוצרות והמכולות מתקשרות ביניהן.
ידיים למעלה
לכן, מתוך הנחה שכולכם התקנתם את דוקר במערכות שלכם, יש לי תרחיש להציג.
נניח שתרצה לאחסן שם קורסים ותעודת קורסים, שעבורם תזדקק ליישום אינטרנט. בעיקרון, אתה זקוק למכולה אחת ליישום אינטרנט ואתה זקוק למכולה אחת נוספת כ- MySQL עבור ה- backend, כי מיכל MySQL צריך להיות מקושר למיכל יישומי האינטרנט.
מה דעתך שאבצע את הדוגמה הנ'ל באופן מעשי.
השלבים המעורבים:
- אתחל את נחיל הדוקר ליצירת אשכול נחילים.
- צור רשת כיסוי
- צור שירותים עבור יישומי אינטרנט וגם עבור MySQL
- חבר את היישומים דרך הרשת
בואו נתחיל!
שלב 1: אתחל את Docker Swarm במכונה.
init נחיל הדוקר - advertise-addr 192.168.56.101
הדגל – advertise-addr מגדיר את צומת המנהל כך שיפרסם את כתובתו כ- 192.168.56.101. הצמתים האחרים בנחיל חייבים להיות מסוגלים לגשת למנהל בכתובת ה- IP.
שלב 2: כעת, אם ברצונך להצטרף לצומת מנהל זה לצומת העובד, העתק את הקישור שתקבל בעת אתחול נחיל בצומת העובד.
שלב 3: צור רשת כיסוי.
רשת docker ליצור -d כיסוי
כאשר myoverlay הוא שם הרשת ו- d מאפשר לדאמון דוקר לרוץ ברקע.
שלב 4.1: צור webapp1 שירות והשתמש ברשת שיצרת כדי לפרוס שירות זה באשכול הנחילים.
שירות docker ליצור - שם webapp1 -d - רשת myoverlaynetwork -p 8001: 80 hshar / webapp
איפה -pמיועד להעברת נמל,השרהוא שם החשבון ב- Docker Hub, ו- webapp הוא שם יישום האינטרנט שכבר קיים ב- Docker Hub.
שלב 4.2: כעת, בדקו אם השירות נוצר או לא.
שירות העגינה ls
שלב 5.1: כעת, צור שירות MySQL והשתמש ברשת שיצרת כדי לפרוס את השירות על אשכול הנחילים.
שירות העגינה ליצור - שם mysql -d - רשת myoverlaynetwork -p 3306: 3306 hshar / mysql: 5.5
שלב 5.2: כעת, בדקו אם השירות נוצר או לא.
שירות העגינה ls
שלב 6.1: לאחר מכן, בדוק איזה מיכל פועל בצומת הראשי שלך והיכנס למיכל hshar / webapp.
docker ps
שלב 6.2: אז אתה יכול לראות שרק שירות ה- webapp נמצא בצומת המנהל. אז היכנס למכולה של webapp.
docker exec -it container_id bash nano var / www / html / index.php
הפקודה ps docker תפרט את שני המכולות שלך עם מזהה המכולה המתאים. הפקודה השנייה תאפשר את המכולה במצב אינטראקטיבי.
שלב 7: כעת, שנה את $ servername מ localhost ל- mysql ואת הסיסמה $ מ '' 'ל' edureka ', ושנה גם את כל מילוי פרטי הנתונים הנדרשים ושמור את קובץ index.php באמצעות קיצור המקשים Ctrl + x ולאחר מכן כדי לשמור ולחץ על Enter.
שלב 8: כעת, היכנס למיכל mysql הפועל בצומת אחר.
העגינה לבצע - זה container_id bash
שלב 9: ברגע שאתה נכנס למיכל mysql, הזן את הפקודות שלמטה כדי להשתמש במסד הנתונים ב- MySQL.
שלב 9.1: קבל גישה לשימוש במיכל mysql.
mysql -u שורש -pedureka
איפה -u מייצג את המשתמש ו- -p היא הסיסמה של המחשב שלך.
שלב 9.2: צור מסד נתונים ב- mysql שישמש לקבל נתונים מ webapp1.
הפעל שאילתת כוורת משורת הפקודה
צור מידע בסיסי על הידיים
שלב 9.3: השתמש במסד הנתונים שנוצר.
השתמש ב- HandsOn
שלב 9.4: צור טבלה במסד נתונים זה שישמש לקבלת נתונים מ- webapp1.
צור לוח קורס_פרטים (שם קורס VARCHAR (10), קורס_ VARCHAR (11))
שלב 9.5: כעת צא מ- MySQL וממיכל באמצעות הפקודה יְצִיאָה .
שלב 10: עבור לדפדפן שלך והזן את הכתובת כ- localhost: 8001 / index.php . פעולה זו תפתח את יישום האינטרנט שלך. כעת, הזן את פרטי הקורסים ולחץ על הגש שאילתה .
שלב 11: לאחר שתלחץ על שלח שאילתה, עבור לצומת בו פועל שירות MySQL שלך ואז היכנס למכולה.
docker exec -it container_id bash mysql -u root -pedureka השתמש ב- HandsOn SHOW טבלאות בחר * מתוך course_details
זה יראה לכם את התפוקה של כל הקורסים, מהם מילאתם את הפרטים.
הנה, אני מסיים את הבלוג שלי ברשת Docker. אני מקווה שנהניתם מהפוסט הזה. אתה יכול לבדוק בלוגים אחרים גם בסדרה העוסקת ביסודות דוקר.
אם גילית שבלוג Docker Container רלוונטי, עיין ב מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -450,000 לומדים מרוצים הפרוסים ברחבי העולם. קורס הדרכת ההסמכה של Edureka DevOps עוזר ללומדים לרכוש מומחיות בתהליכי וכלים שונים של DevOps כגון Puppet, Jenkins, Docker, Nagios, Ansible ו- GIT לאוטומציה של שלבים מרובים ב- SDLC.
מחפש הסמכה ב- DevOps?יש לך שאלה בשבילי? אנא הזכיר זאת בסעיף ההערות ואחזור אליך.