
localhost, כמו תוכנות במחשב אחד. זה נוח, אבל יוצר התנגשות פורטים: אם Nginx תפס את פורט 80 בפוד, קונטיינר עזר שרוצה פורט 80 צריך לחשוף פורט אחר. בפוד עם קונטיינר אחד אין בעיה כזו.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Pod Kubernetes» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם. בסרטון זה אנחנו נדבר על פודים ב-Kubernetes ומה ההבדל בין פוד לקונטיינר. פוד זאת מעטפת סביב קונטיינר. בשביל מה עשו את המעטפת הזאת?
כדי להוסיף יכולות נוספות שלא היו בתוך הקונטיינר, שהקלסטר צריך אותן. לדוגמה, הקלסטר צריך לדעת מה לעשות כשהקונטיינר הזה מת. האם לעשות לו restart או לא.
יש גם תוויות שאנחנו רוצים לשים על הקונטיינר כדי לזהות אותו בין אלפי הקונטיינרים שיש לנו בקלסטר. בקיצור, יש לנו פה מידע נוסף שהקלסטר צריך, שהוא לא קיים בתוך הקונטיינר.
אז לקחו והמציאו את המושג הזה, פוד, שעוטף את הקונטיינר שלנו. ויותר מזה, אני יכול לשים בתוך הפוד שני קונטיינרים. זה למקרה ששתי התוכנות חייבות לחיות ביחד.
תחשבו שהייתה לנו איזושהי תוכנה או אתר אינטרנט, ויום אחד ההנהלה מחליטה לרכוש מערכת ניטור, מערכת monitoring, והיא צריכה מידע מתוך הקונטיינר הזה, אבל אנחנו לא יכולים לגעת בו, כי הקונטיינר הזה בא מוכן מחברה חיצונית.
או שאנחנו מפחדים לגעת בו, כי הוא עובד כבר שנים ולא רוצים לשנות שם כלום. אז אנחנו שמים קונטיינר נוסף שיטפל רק בלוגים החדשים. אנחנו לא משנים ולא נוגעים בקונטיינר קיים, רק מכניסים לפוד שלו קונטיינר עזר שכל התפקיד שלו זה להתחבר ללוגים המקוריים של הקונטיינר הראשון ולשלוח אותם למערכת ניטור החדשה.
זאת דוגמה אחת לקונטיינר עזר. יכול להיות מצב אחר, שהקונטיינר המקורי לא יודע לעבוד עם איזשהו פרוקסי חדש, לא יודע לקבל נתונים בפורמט חדש. קונטיינר עזר יטפל במשימות האלו.
בקיצור, כל המטרה זה לא לגעת בקונטיינר המקורי, ושני הקונטיינרים האלו שנמצאים באותו פוד הם תמיד הולכים ביחד, כי פוד נוצר בשלמותו, כי Kubernetes עובד ברמת הפוד. או שהוא הורג את כל הפוד או שהוא מקים את כל הפוד, ושני הקונטיינרים האלו דבוקים אחד לשני, כי הם נמצאים באותו פוד.
ועכשיו נדבר על נקודה מאוד מאוד מעניינת, שכל קונטיינר הוא כמו מכונה וירטואלית, רק בלי הקרנל, אבל זה לא מעניין בכלל. מבחינתי זה מתפקד כמו מכונה וירטואלית נפרדת שבפנים חיה איזושהי תוכנה.
אז מבחינתי קונטיינר זה כמו מכונה וירטואלית רגילה בלי הקרנל, אבל זה לא משנה כרגע. מה שחשוב שזאת סביבה מבודדת. והחבר'ה שיצרו את הפודס, זה החבר'ה של גוגל, הם עשו בידוד בתוך הקונטיינר לכל הקבצים.
זאת אומרת, הקונטיינר לא רואה את הקבצים שיש בחוץ. הוא רואה רק את הקבצים שלו, של Image שלו. הוא רואה רק את הפרוצסים שלו. הוא לא רואה את הפרוצסים של המחשב הראשי.
הוא כאילו מבודד. הדבר היחיד שהם לא בידדו פה בפנים, בתוך הקונטיינר, זה Network. הם לקחו את הבידוד של Network, שנקרא Network Namespace.
ה-Namespace פה זה אזור מבודד. במקום לשים אותו בתוך הקונטיינר, הם שמו אותו ברמת הפוד כולו. עכשיו, אם יש לי קונטיינר אחד בתוך הפוד, אז זה לא משנה, אבל אם יש לי שני קונטיינרים בתוך הפוד, יש להם את אותו ה-Network, את אותו TCP IP stack.
זה אומר שיש להם אותה כתובת IP. שימו לב, כתובת IP היא ברמת הפוד, היא לא ברמת קונטיינר ספציפי. זאת אומרת, כתובת 10.0.0.2 היא שייכת לפוד, שבתוך הפוד רצות שתי תוכנות, שכל תוכנה כזאת, כל קונטיינר כזה, מבודד מבחינת פרוצסים שהוא רואה.
הוא מבודד מבחינת דיסק שהוא רואה. הוא רואה רק את הדיסק שלו, רק את הפרוצס שלו, אבל מבחינת רשת הוא לא מבודד. זה כמו תוכנה רגילה במחשב שלכם בווינדוס.