PracticU

הסבר על Kubernetes
הבדל בין קונטיינר ומכונה וירטואלית

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

הסבר על Kubernetes הבדל בין קונטיינר ומכונה וירטואלית
לפני שמבינים את Kubernetes צריך להבין במה קונטיינר שונה ממכונה וירטואלית, ומה זה בכלל kernel. ההרצאה מסבירה את ההבדל ואז מציגה את הרעיון של Kubernetes כמערכת שמנהלת קונטיינרים.
איך זה עובד
1. ה-kernel: הליבה של מערכת ההפעלה מנהלת את העולם הפיזי: מעבד, דיסק, זיכרון וכרטיסי רשת, וגם דואגת שתוכנות לא יתנגשו בזיכרון. תוכנות רגילות חיות ב-user mode, בתוך process משלהן, ופונות ל-kernel דרך system calls, בדומה לשליחת טופס בקשה ל-API.
2. מכונה וירטואלית: ב-VMware, Hyper-V או VirtualBox מדמים חומרה, וה-kernel נמצא בתוך המכונה. לכן אפשר להריץ Linux על Windows, כי לכל מערכת kernel ו-system calls משלה.
3. קונטיינר: הווירטואליזציה היא ברמת ה-kernel ולא ברמת החומרה. בתוכו יש רק קבצי user mode (חלק ממערכת ההפעלה, ספריות והאפליקציה), ו-system call ממופה ל-kernel של המחשב הפיזי. ה-kernel שוקל הרבה ג'יגות, וזה נחסך.
4. למה צריך WSL: ה-kernel של Windows לא מבין system calls של Linux, ולכן ב-Windows מריצים קונטיינרים של Linux בתוך מכונת Linux. WSL של Microsoft עולה תוך שתי שניות ברקע.
5. מה זה Kubernetes: מערכת אורקסטרציה שמנהלת קונטיינרים: מרימה קונטיינר זהה כשאחד נופל או בעומס, ומוחקת מיותרים. ה-worker nodes הם שרתים פיזיים שמריצים קונטיינרים לפי הוראות ה-master node, שהוא המוח של המערכת.
6. כמה masters: אם ה-master נופל, האתרים ממשיכים לעבוד אך ב-read only, ו-worker שעושה restart לא יעלה כראוי. לכן בונים שלושה או חמישה masters, ונדרש רוב זמין (שניים מתוך שלושה, שלושה מתוך חמישה). בארגון קטן עם שלושה שרתים כל שרת יכול להיות גם master וגם worker.
רקע
Kubernetes הוא open source. גוגל פיתחה אותו בשם Borg, שחררה אותו והעבירה את הבעלות ל-Cloud Native Computer Foundation.
אחרי ההרצאה אפשר להסביר מה ההבדל בין קונטיינר למכונה וירטואלית ולמה Kubernetes צריך כמה masters.
השיעור הבא בקורס: ארכיטקטורה של Kubernetes

פרקי ההרצאה: הסבר על Kubernetes הבדל בין קונטיינר ומכונה וירטואלית

  1. 00:00

    קונטיינר מול מכונה וירטואלית

  2. 00:41

    תפקיד ה-kernel בעולם הפיזי

  3. 01:22

    user mode וספריות עזר

  4. 01:57

    פנייה ל-kernel עם system call

  5. 02:38

    הבדל ה-kernel בקונטיינר מול VM

תמלול ההרצאה: הסבר על Kubernetes הבדל בין קונטיינר ומכונה וירטואלית

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

  1. 00:02

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

  2. 00:18

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

  3. 00:35

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

  4. 00:55

    חוץ מזה, במערכת ההפעלה יש גם תוכנות רגילות, כמו IP config, if config, שמראות כתובת IP. למעשה, במערכת ההפעלה יש kernel ותוכנות רגילות לעבודה נוחה מול המחשב.

  5. 01:08

    תראו, התוכנה חיה באזור שנקרא user mode. היא חיה בתוך בועה משלה, בתוך process, ומבחינתה יש לה את כל הזיכרון שבעולם, וה-kernel, מאחורי הקלעים, מקבל בקשות מהרבה תוכנות ומסדר אותן שלא תהיה התנגשות.

  6. 01:25

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

  7. 01:51

    system call זה איזשהו interface שאומרת באיזה פורמט, באיזה צורה צריך להעביר נתונים. זה כמו שרת API שדרכו האפליקציות מעבירות את הטופס של הבקשה, "תעשה לי ככה וככה", נותנות את כל המידע שצריך, ואז ה-kernel, הליבה, מבצעים את זה על החומרה בזמנם הפנוי.

  8. 02:11

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

  9. 02:24

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

  10. 02:49

    זאת בניגוד למכונה וירטואלית רגילה, שבמכונה וירטואלית רגילה ה-kernel נמצא בתוך המכונה הווירטואלית. שמה רק החומרה היא וירטואלית. זאת אומרת, במכונה וירטואלית רגילה, כמו

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

ההרצאה הבאה: ארכיטקטורה של Kubernetes

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

  • הסבר על Kubernetes
  • מה הבדל בין כל סוגי הלולאות
  • דיסקים - הבדל בין RAID 5, 6, 10, 50, 60
  • קונטיינר בענן - Cloud Run - הסבר על Docker image

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

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