
frontend-rs), מספר רפליקות (שלוש) ו-pod template. הפוד בדוגמה כולל קונטיינר nginx בגרסה 1.16 ותוויות.frontend nginx ומקבל תקשורת מהאינטרנט בפורט 80, כדי לבדוק את ה-cluster מבחוץ.kubectl apply -f . יצר שלושה פודים. שמותיהם הם שם ה-ReplicaSet ואחריו חמישה תווים אקראיים. ב-describe של פוד רואים שהוא נשלט על ידי frontend-rs.-w) ירדו לשני IP ומיד חזרו לשלושה, עם כתובת חדשה. ב-events של ה-ReplicaSet רואים את יצירת הפוד החדש.kubectl proxy אפשר לשלוח בקשת HTTP delete ישירות לשרת ה-API. גם אז הפוד השלישי קם מחדש, כי ה-ReplicaSet עוקב אחרי המצב. הדגמה זו מראה מה kubectl עושה מאחורי הקלעים, אך לא נוח לעבוד כך.kubectl scale הגדיל לחמישה פודים ובהמשך הקטין לשניים, למשל כדי לא לשלם על משאבים בענן בלילה.kubectl get pods -l <label>=<value>, עם פסיק לסינון בשתי תוויות.kubectl get endpoints <service> -w לצפייה בפודים שקמים ונופלים.kubectl get replicaset מראה desired מול ready.kubectl delete replicaset <name> מוחק גם את הפודים שלו, ו-kubectl delete -f . מוחק הכול.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על ReplicaSet בקוברנטיס» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם. היום אנחנו נלמד על replication set ב-Kubernetes, שתפקידו לוודא שיש בדיוק שלושה פודים מסוג מסוים, ואם משהו חסר אז הוא מקים אחד חדש לפי הטמפלייט הזה.
אני נותן לו שבלונה, טמפלייט, של איזה פוד אני צריך והוא דואג שתהיה הכמות הרצויה, במקרה הזה שלוש. עד עכשיו היינו יוצרים לבד שני פודים, שלושה פודים, הכול ידנית, ואם אחד נפל היינו צריכים ידנית להקים פוד חדש.
אני אישית בלילה אוהב לישון ולא לשבת להסתכל על הפודים בקלסטר, ובשביל זה המציאו את האובייקט הזה שנקרא replication set. אנחנו נותנים לו איזשהו שם frontend-replication-set, RS בקצרה.
אומרים לו בספציפיקציה של האובייקט, של ה-replication set, שאנחנו רוצים שלוש רפליקות והוא בונה לנו את הכמות הרצויה של הפודים לפי הטמפלייט, לפי השבלונה שאנחנו מביאים לו.
במקרה הזה אמרתי לו שכל פוד יכיל שלושה לייבלים, וכמובן שבתוך הפוד יש ספציפיקציה איזה קונטיינר יהיה. במקרה הזה קונטיינר אחד בשם nginx ובפנים יהיה nginx בגרסה אחת שש עשרה.
מה שהכי מעניין פה זאת התווית הזאת, כי היא משמשת את הסלקטור של ה-replication set לעקוב אחרי מספר הפודים שיש כרגע באוויר. שימו לב, בתוך ה-replication set, בתוך הספציפיקציה שלו, יש סלקטור שאומר: "תבחר פודים מכל המאות והאלפים שיש לי, רק את הפודים עם תווית הזאת", וככה אתה יודע כמה כרגע פודים יש באוויר.
כמובן שהתווית הזאת חייבת גם להופיע בתוך הטמפלייט, בתוך השבלונה של הפודים שהוא יוצר. אז עוד הפעם, זאת השבלונה, זה הטמפלייט של הפודים, של הקפסולות, שבתוכם רצים הקונטיינרים.
על כל פוד אנחנו שמים תווית, והתווית הזאת אחרי זה משמשת אותנו לבדוק כמה רפליקות, כמה מופעים של הפוד הזה קיימים. ואנחנו עכשיו ניצור איתכם את ה-replication set הזה.נהרוג לו איזשהו פוד, כאילו קרה איזשהו אסון.
תראו שהוא יוצר אחד חדש אוטומט במיידי. בואו נראה את הכול בפעולה. קודם כל אני נכנס לתיקייה עם הדוגמה שלי ועושה dir. נבדוק שיש לי פה שני קבצים: הקובץ הזה שראינו כרגע ו-service שנוכל לבדוק הכול מבחוץ.
זה הקובץ שיוצר לי replication set, ובפנים הפודים ו-service YAML, שזה למעשה ה-load balancer שלי. גם הוא מחפש את התווית הזאת frontend nginx. שימו לב, זאת התווית הזאת frontend nginx.
ככה הוא יודע למי לשלוח את התקשורת מבחוץ. מבחוץ זה מגיע בפורט שמונים, מהאינטרנט. אז ה-service הזה זה כמה שורות קוד שיאפשרו לי לבדוק את הקלסטר שלי מהבית. אוקיי, אז בואו נריץ את כל זה ונראה את הכול בפעולה.
אז אנחנו בתיקייה הנכונה. כרגע אין לי אף פוד ואני מריץ kubectl apply -f, ובמקום שם של קובץ אני נותן לו את התיקייה הנוכחית. הוא עושה לי את ה-apply, מיישם את קבצי ה-YAML, כותב לי פה replication set בשם frontend-rs created וגם service בשם frontend-service created.
שני אובייקטים נוצרו. בואו נריץ kubectl get pods. שימו לב שנוצרו לי שלושה פודים ואני לא יכול לקבוע את השם שלהם. השם שלהם זה שם של replication set, מקף