
bin/sh -c, גולש ל-localhost בפורט 80 ומעביר את התוצאה ל-grep שמחפש את הטקסט "welcome to Practicu". אם הטקסט נמצא, grep מסיים בקוד אפס והכול תקין, ואם לא, בקוד אחד.if שמדפיס health check ומחזיר אפס או אחד, אבל זה מיותר כי grep כבר מחזיר את הקוד.command של הקונטיינר nginx הוחלף ההפעלה המקורי בפקודה שמדפיסה את הטקסט לתוך index.html. כך מקנפגים image קיים בלי קונטיינר עזר.docker pull של ה-image ב-Docker Desktop, וב-layers בשורה האחרונה ראו את ה-CMD. היא נוספה בסוף הסקריפט.apply נכנסים לפוד וכותבים AAA לתוך index.html. ב-describe רואים שהקונטיינר unhealthy פעמיים, ואז pulling, creating ו-started. ב-get pods מופיע restart אחד, אבל הפוד עצמו נשאר.הטקסט המלא של הדקות הראשונות בהרצאה «בדיקת אתר אינטרנט בתוך הקונטיינר» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם. היום אנחנו נדבר על איך קובירנטיס יודע האם הקונטיינר בפנים מתפקד כמו שצריך, האם הוא חי או מת, ואם קונטיינר מת או לא עובר את הבדיקה שלנו, אנחנו מעיפים אותו, הורגים אותו ומקימים קונטיינר חדש בתוך אותה קפסולה, בתוך אותו pod.
ובשביל זה בתוך ה-pod יש לנו livness probe, בדיקת חיות. האם הוא חי או מת. ואנחנו אומרים לו להריץ פקודה bin sh מינוס C.
זאת אומרת, לפתוח CMD חדש, shell חדש ובפנים להריץ command, לגלוש לפורט שמונים ב-local host ומתוך התוצאה לעשות grep, לחפש welcome to Practicu. אם הכל טוב, הגרפ מסתיים עם קוד אפס, שזה הכל תקין.
אם הוא לא ימצא את המילים welcome to Practicu, אז הגרפ יחזיר קוד אחד שזה אומר טעות, לא מצאתי. ככה אנחנו עושים בדיקה. גולשים, לוקחים את התוצאה ומעבירים אותה לגרפ שמחפש בתוך הטקסט של התוצאה את המילים המסוימות האלו.
דרך אגב, הסימן הזה אומר לקובץ YAML שהסקריפט יכול להיות מורכב מכמה שורות. האמת שאני יכול לעשות סקריפט מפורש יותר, לכתוב if, התוצאה של הפקודה הקודמת equal אפס, שווה לאפס.
זה אומר שהגרפ מצא את הטקסט, then תדפיס health check אוקיי ותצא עם קוד אפס. אם לא, אם גרפ לא מצא, תדפיס health check not אוקיי ותצא עם קוד אחד. אבל כל זה מיותר לכתוב, כי גם ככה הגרפ מסתיים או עם אפס או עם אחד, וכאן אני בצורה מפורשת אומר לו אפס או אחד.
הכי חשוב זה עם איזה תוצאה נסיים את הסקריפט. אם אנחנו מסיימים עם אפס, הכל ממשיך רגיל. אם מסיימים עם אחד או יותר נכון לא עם אפס, אז הוא ממתין עשר שניות ומנסה עוד הפעם.
אמרתי לו כל עשר שניות לעשות את הבדיקה הזאת, ואם הבדיקה הזאת מופלית, מעיפים את הקונטיינר ויוצרים אחד חדש מתוך ה-image. דרך אגב, ה-image שלנו של הקונטיינר זה Nginx, גרסה אחרונה, נקודה טיים latest.
אז עד שתי נפילות אני מרשה. ברירת מחדל, דרך אגב, זה שלוש נפילות. כל עשר שניות בודקים והבדיקה הראשונה עושים רק אחרי חמש עשרה שניות אחרי ההפעלה הראשונה, אחרי ההקמה.
דרך אגב, עשיתי פה עוד משהו מעניין. בתוך ה-image של Nginx הרצתי פקודה command שמשנה את ההתנהגות הדיפולטית של Nginx. זאת אומרת שברגע שה-image הזה מופעל, מתבצעת הפקודה שלי.
עוד פעם אני מריץ shell עם command משלי, שזה למעשה כמו לפתוח CMD ולהגיד לו ישר להריץ בתוך CMD איזושהי פקודה. הפקודה שלי זה Echo, תדפיס welcome to Practicu website לתוך קובץ.
שימו לב, זה redirect, מפנה את ה-output הסטנדרטי במקום למסך, לקובץ הזה של index HTML. למעשה אני מחליף לו את הדף הדיפולטי של index HTML.
אבל שימו לב מה עשיתי. אני החלפתי את ה-command המקורי, את הפקודת הפעלה המקורית שהייתה בתוך Nginx, והוא מתחיל להשתגע כי חסר לו משהו. איך אפשר לגלות מה חסר?
אני אקפוץ לכם לסוף.