
הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Kubernetes הבדל בין קונטיינר ומכונה וירטואלית» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם. היום אנחנו נדבר על קוברנטיס. אנחנו נבין איך עובד ה-cluster, נגדיר אותו. והרעיון של קוברנטיס זה לנהל קונטיינרים. קונטיינרים זה כמו מכונה וירטואלית רגילה, אבל בלי הליבה של מערכת ההפעלה.
בתוך מערכת הפעלה, גם בלינוקס, גם בווינדוס, יש את ה-kernel, את הליבה של מערכת ההפעלה, שהיא אחראית על ניהול של הדיסק הפיזי, של הזיכרון, שתוכנה אחת לא תתנגש עם תוכנה אחרת בזיכרון, שהתוכנות יוכלו לרוץ במקביל.
ה-kernel, הליבה, גם אחראית על חלוקת זמן מעבד בין התוכנות. בקיצור, ה-kernel, הליבה הזאת, מנהלת את העולם הפיזי, מנהלת את המעבד, את הדיסק, את הזיכרון, את הכרטיסי רשת, וכשהתוכנות רוצות לעשות משהו, הן מבקשות מה-kernel לבצע פעולה עבורן.
חוץ מזה, במערכת ההפעלה יש גם תוכנות רגילות, כמו IP config, if config, שמראות כתובת IP. למעשה, במערכת ההפעלה יש kernel ותוכנות רגילות לעבודה נוחה מול המחשב.
תראו, התוכנה חיה באזור שנקרא user mode. היא חיה בתוך בועה משלה, בתוך process, ומבחינתה יש לה את כל הזיכרון שבעולם, וה-kernel, מאחורי הקלעים, מקבל בקשות מהרבה תוכנות ומסדר אותן שלא תהיה התנגשות.
לרוב התוכנות משתמשות בספריות עזר כדי לא לכתוב את כל הקוד מאפס, כמו DLLים בווינדוס, NPMים, וכשספריית עזר או הקוד שלנו רוצים לשלוח משהו ברשת, רוצים להציג משהו על המסך, רוצים לקלוט מהיוזר איזשהו מידע, כל מה שקשור לעולם הפיזי, הן פונות ל-kernel דרך system calls.
system call זה איזשהו interface שאומרת באיזה פורמט, באיזה צורה צריך להעביר נתונים. זה כמו שרת API שדרכו האפליקציות מעבירות את הטופס של הבקשה, "תעשה לי ככה וככה", נותנות את כל המידע שצריך, ואז ה-kernel, הליבה, מבצעים את זה על החומרה בזמנם הפנוי.
זה יכול להתבצע במיידי וזה יכול להתעכב. ועכשיו בחזרה לעולם של קונטיינרים במכונות וירטואליות. אפשר להגיד שה-kernel mode הזה בתוך הקונטיינר הוא לא קיים.
כשהתוכנה שרצה בתוך הקונטיינר רוצה לפנות ל-kernel, היא עושה system call. הקריאה הזאת מועברת ל-kernel במחשב הפיזי. בקונטיינר, שהוא נראה כמו מכונה וירטואלית רגילה לגמרי, אבל מאחורי הקלעים התוכנה לא יודעת שה-system call הזה עובר ל-kernel שלא נמצא בתוך הקונטיינר, אלא במחשב הפיזי.
זאת בניגוד למכונה וירטואלית רגילה, שבמכונה וירטואלית רגילה ה-kernel נמצא בתוך המכונה הווירטואלית. שמה רק החומרה היא וירטואלית. זאת אומרת, במכונה וירטואלית רגילה, כמו