PracticU

יצירת POD בתוך
Kubernetes

בלי כתוביותעם כתוביות
PracticU › קורס קוברנטיקס - Kubernetes › יצירת POD בתוך Kubernetes
מילון מושגים:
Kubernetes - מערכת לניהול ותזמור של קונטיינרים בקנה מידה גדול, שמפעילה, מרחיבה ומתחזקת אותם אוטומטית.
מאזן עומסים - רכיב שמחלק בקשות נכנסות בין כמה שרתים, כדי לשפר ביצועים, זמינות ועמידות בעומס.
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
קונטיינר - חבילה קלה ומבודדת שאורזת אפליקציה עם כל תלויותיה, ורצה באופן אחיד בכל סביבה, למשל ב-Docker.
ענן - אספקת משאבי מחשוב כשירות דרך האינטרנט, כמו שרתים, אחסון ותוכנות, במקום להחזיק אותם מקומית.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
מעבד - יחידת העיבוד המרכזית של המחשב, שמבצעת את הפקודות של התוכניות ומנהלת את החישובים.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.

יצירת POD בתוך Kubernetes
ההרצאה מראה איך מריצים פוד ראשון בקלסטר, איך בודקים מה קרה לו ואיך מתחברים אליו בלי load balancer.
השלבים העיקריים
1. יצירת הפוד: בקלסטר ריק kubectl get pods מחזיר no resources. מריצים kubectl run mypod עם image של nginx (שרת web). Kubernetes מוריד את ה-image, בונה קונטיינר ועוטף אותו בפוד. אזהרות אפשר להתעלם מהן.
2. מעקב אחר הסטטוס: kubectl get pods מראה pending ואז creating. עם -w הסטטוס מתרענן בלי לצאת מהפקודה. אותן פקודות עובדות על Kubernetes מקומי, בשרת או בענן.
3. פרטי הפוד: kubectl describe מראה את האירועים: תזמון על node, משיכת ה-image, יצירה והפעלה של הקונטיינר. רואים גם על איזה שרת פיזי (node) רץ הפוד ומה ה-IP שלו (טווח 10.208), ואת כתובת הפוד ברשת הפנימית (10.11) שבה הפודים מדברים ישירות. כתוב גם מה ה-limits של הזיכרון והמעבד: קונטיינר שחורג מהם נהרג והפוד מוקם מחדש.
4. התחברות בלי load balancer: בעולם האמיתי load balancer מפנה את הלקוחות לפוד, ובהמשך הקורס נראה איך. בינתיים kubectl port-forward מגלגל פורט 8080 במחשב המקומי לפורט 80 בפוד (הנקודתיים מפרידות בין חוץ לפנים). החלון חייב להישאר פתוח, עד Ctrl C. בדפדפן גולשים לכתובת 127.0.0.1:8080.
5. לוג בשידור חי: בחלון נוסף kubectl logs עם -f מציג בקשות GET של הלקוחות בזמן אמת.
6. פלט רחב: kubectl get pods -o wide מוסיף עמודות, כולל IP של הפוד וה-node שבו הוא רץ. kubectl get nodes מציג את השרתים הפיזיים (בדוגמה ארבעה), ו--o wide מוסיף את ה-IP שלהם.
אחרי ההרצאה אפשר ליצור פוד עם nginx, לבדוק את מצבו, להתחבר אליו עם port-forward ולעקוב אחרי הלוג.
השיעור הבא בקורס: כניסה לתוך הפוד Kubernetes

פרקי ההרצאה: יצירת POD בתוך Kubernetes

  1. 00:00

    pod כקפסולה סביב קונטיינר

  2. 00:39

    יצירת pod עם kubectl run

  3. 01:15

    מעקב אחר סטטוס ה-pod

  4. 01:52

    תיאור אירועי ה-pod

  5. 02:33

    רשת וירטואלית בין podים

תמלול ההרצאה: יצירת POD בתוך Kubernetes

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

  1. 00:02

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

  2. 00:14

    קודם כל אני כותב kubectl get pods. רואה שכרגע no resources. אין לי אף pod. זה קלסטר נקי לחלוטין, חדש דנדש, ואנחנו מריצים פקודה kubectl run.

  3. 00:28

    תריץ לי pod בשם mypod. אני יכול לתת לו כל שם שאני רוצה, ובפנים container מתוך image nginx. nginx זה שרת web. שימו לב, הוא מוריד את Image הזה, בונה ממנו container ומריץ את זה בתוך הקלסטר של קוברנטיס כאשר הקונטיינר עטוף ב-pod, בקפסולה.

  4. 00:51

    pod זה קפסולה. אני מתעלם מכל ה-warnings שהוא נותן לי, כל מיני אזהרות, והכי חשוב לי פה שהוא יצר לי pod בשם mypod ונותן לי הודעה "mypod created".

  5. 01:03

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

  6. 01:15

    זה אותו קוברנטיס, אותן פקודות ולא משנה על איזה ברזל הוא עובד. אנחנו רואים שהוא בשלב pending. נעשה עוד פעם kubectl get pods. רואים שהוא creating.

  7. 01:26

    אפשר לעשות מינוס W ולראות את כל השלבים קורים. שימו לב, מינוס W מרענן לי את הסטטוס בלי לצאת מ-kubectl. עכשיו בתוך הקלסטר יש לי pod אחד בשם mypod ובפנים container עם האתר.

  8. 01:42

    אם אני אריץ פקודה kubectl describe, תתאר לי pod בשם mypod. אני עושה Enter. אנחנו יכולים לראות פה אירועים שהיו. לפני שלוש דקות לא היה לו שרת זמין.

  9. 01:56

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

  10. 02:15

    אנחנו רואים את כל האירועים. חוץ מזה אנחנו גם רואים פה למעלה בתוך ה-describe את השם של ה-pod. אני רואה פה על איזה שרת פיזי רץ ה-pod שלי ומה ה-IP של השרת הזה.

  11. 02:28

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

לקורס המלא: קורס קוברנטיס – Kubernetes

ההרצאה הקודמת: חיבור CMD לענן - Kubernetes

ההרצאה הבאה: כניסה לתוך הפוד - Kubernetes

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

  • הסבר על Kubernetes
  • יצירת דשבורד בתוך ElasticSearch - חלק 1
  • יצירת SCRIPT בתוך GPO
  • יצירת Global State בתוך MobX

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

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