
pod.yaml יש שלושה קונטיינרים לאתחול ראשוני וקונטיינר nginx רגיל של אתר, וכולם מחוברים לאותו volume משותף. קונטיינר צדדי נוסף מוסיף כל עשר שניות שורה לסוף index.html בתיקייה המשותפת, בלי שה-image המקורי של nginx משתנה.kubectl apply -f pod.yaml ה-pod עובר מ-pending ל-init, ואז ל-pod initializing. קונטיינרי האתחול רצים אחד אחד, ורק כשכולם מסיימים בהצלחה עוברים לקונטיינרים הרגילים. עם kubectl get pod -w רואים זאת בשידור חי.127.0.0.1:8080 ולראות מידע משני קונטיינרי האתחול ושורה חדשה כל עשר שניות. גם ההרשאות של index.html שונו על ידי קונטיינר האתחול והפכו ל-RX.111.txt שנוצר מקונטיינר אחד הופיע גם בקונטיינר הצדדי, כי שניהם רואים את אותה תיקייה.kubectl delete -f pod.yaml נשלחת הודעת terminating וניתנת תקופת חסד של שלושים שניות. הקונטיינר רץ בלולאת while true, אז Kubernetes השמיד אותו בכוח והציג הודעות error.kubectl get pod -w לצפייה בשינויי מצב.kubectl exec עם ציון הקונטיינר, כי ב-pod עם כמה קונטיינרים חובה לציין באיזה מהם להריץ (bin/bash, או bin/sh בקונטיינר הקטן).kubectl logs <pod> -c <container> ללוג של קונטיינר מסוים.tail -f על הקובץ לעקוב אחרי עדכוניו.הטקסט המלא של הדקות הראשונות בהרצאה «הרבה קונטיינרים בפוד אחד - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם. היום אנחנו נראה בפעולה כמה קונטיינרים עובדים ביחד בתוך אותו pod, משתפים את אותו הדיסק, משתפים את אותו IP. איך כל זה מתבצע תכלס?
ונדבר על lifecycle, על מחזור חיים של pod. קודם כל אני מריץ פה kubectl get pod -w. מינוס דבליו זה אומר watch. תראה לי את כל המצבים של ה-pod. זה נראה שהוא תקוע, אבל למעשה הוא ממתין לעדכונים והולך להראות לנו אותם.
ויש לי פה קובץ pod.yaml עם שלושה קונטיינרים שנועדו לאתחול ראשוני, ואחרי שהם מסיימים את האתחול של המידע המשותף פה בדיסק המשותף, רק אז יופעל הקונטיינר של nginx של אתר Web, של אתר אינטרנט, שגם הוא מחובר לאותו הדיסק.
ויותר מזה, כל עשר שניות, שימו לב, יש לי פה קונטיינר שהולך לעדכן גם הוא את הדיסק המשותף. זאת ההודעה Echo. את השעה המקורית תוסיף בסוף של הקובץ index.html בתיקייה הזאת, וזאת בדיוק תיקייה שממופל ל-share data וגם nginx מחובר לווליום הזה.
בקיצור, ה-image המקורי אני לא נוגע בו, אבל אני מחליף בפנים את התוכן של האתר על ידי קונטיינר שרץ בצד, בתוך אותו pod, בתוך אותה קפסולה. הוא רץ בשושו בצד בלי שההוא יודע עליו ומחליף לו מידע בתיקייה משותפת.
בואו נריץ פקודת kubectl apply -f לקובץ pod.yaml, שזה הקובץ הזה שלנו, pod.yaml, ונראה איך כל הקונטיינרים נוצרים לפי איזה סדר. כרגע אין לנו אף קונטיינר ב-cluster.
ברגע שאני לוחץ Enter פה הוא נותן לי הודעה שהוא יצר את ה-pod, multi-container pod, אבל בפועל הוא במצב pending. הוא ממתין שאיזשהו שרת ייקח על עצמו הקמה של ה-pod הזה.
ועכשיו הוא מתחיל init. מריץ את הקונטיינר הראשון מתוך השלושה של האתחול הראשוני. הנה אנחנו רואים פה ממש בשידור חי איך הוא