PracticU

בעיית שדרוג ב-ReplicaSet
קוברנטיס

בלי כתוביותעם כתוביות
PracticU › קורס קוברנטיקס - Kubernetes › בעיית שדרוג ב-ReplicaSet קוברנטיס
מילון מושגים:
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
סלקטור - ביטוי, בעיקר ב-CSS, שבוחר אילו רכיבים בדף יושפעו מכלל עיצוב או פעולה.
פריסה - העברת תוכנה מסביבת פיתוח לסביבה שבה היא תרוץ בפועל, כדי להעמידה לשימוש.

בעיית שדרוג ב-ReplicaSet קוברנטיס
ReplicaSet לא יודע לשדרג גרסה של image. ההרצאה מדגימה את הבעיה ומסבירה למה במציאות לא יוצרים ReplicaSet לבד.
מה קורה בשדרוג
1. מצב התחלתי: אחרי kubectl apply יש שלושה פודים. כדי לראות את גרסת ה-image של כל אחד משתמשים בעמודות מותאמות (custom columns) של שם ו-image.
2. שינוי הגרסה: שינוי ב-YAML מ-16 ל-17 ו-apply נותנים הודעת configured, אבל שלושת הפודים נשארים בגרסה 16. ה-ReplicaSet רק סופר פודים עם התווית ולא מתעניין בגרסה.
3. הגדלה: scale לחמש רפליקות יצר שני פודים חדשים בגרסה 17, והישנים נשארו ב-16, כך שנדרשת מחיקה ידנית של הישנים.
4. חזרה לאחור: אין פקודה זריזה לחזור לגרסה קודמת. צריך לשנות שוב ב-YAML ולמחוק ידנית את הפודים בגרסה 17.
למה זה בעיה
ReplicaSet יודע רק לספור רפליקות לפי ה-selector ולהוסיף כשחסר, ולכן ניהול הפודים ברמה הידנית לא מעשי. הפתרון הוא Deployment, שיוצר ReplicaSet בעצמו ומנהל אותו, ובפועל אף אחד לא יוצר ReplicaSet לבד.
אחרי ההרצאה ברור למה מגיעים ל-Deployment, שיוצג בסרטון הבא.
השיעור הבא בקורס: הסבר על Deployment קוברנטיס - Kubernetes

פרקי ההרצאה: בעיית שדרוג ב-ReplicaSet קוברנטיס

  1. 00:00

    בעיית שדרוג גרסה ב-ReplicaSet

  2. 00:57

    השדרוג לא מחליף פודים קיימים

  3. 01:37

    מחיקה ידנית ובעיית rollback

תמלול ההרצאה: בעיית שדרוג ב-ReplicaSet קוברנטיס

הטקסט המלא של הדקות הראשונות בהרצאה «בעיית שדרוג ב-ReplicaSet קוברנטיס» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם. היום בהרצאה נראה את הבעיה שיש לנו ב-replication set, ואני מדבר על בעיית שדרוג גרסה. נניח אני רוצה לשדרג את האימג' שלי מגרסה שש עשרה, נניח, לשבע עשרה, וב-replication set זאת בעיה רצינית.

  2. 00:19

    תכף נדגים אותה ואחרי זה נדבר על deployment שבא לפתור אותה. אני עושה kubectl apply, מקים את ה-replica set שלנו ויש לנו פה שלושה פודים. רק אני לא רואה את הגרסה של כל פוד, אז אני רוצה להוסיף עמודה משלי, custom columns, עמודת name ועמודת image.

  3. 00:41

    הפקודה הזאת מראה לי שיש לי שלושה קונטיינרים, השם שלהם והגרסה של האימג' שלהם. ועכשיו אני משדרג את הגרסה לגרסה, נניח שבע עשרה, משש עשרה לשבע עשרה.

  4. 00:54

    קודם כל, אם אני אעשה apply, הוא מזהה שהיה שינוי, הוא עושה configured, אבל בפועל נשארו לי שלושה פודים עם גרסה שש עשרה. למה? כי מבחינתו הוא מחפש פודים עם התווית הזאת, הוא רואה שיש שלושה פודים עם התווית הזאת ולא מעניין אותו שהגרסה השתנתה.

  5. 01:11

    יותר מזה, אם אני אעשה scale ואני אגיד לו שאני רוצה חמש רפליקות, הוא כותב לי "אין בעיה", ועכשיו שני פודים חדשים הם בגרסה שבע עשרה והישנים נשארו בגרסה שש, ואני נאלץ באופן ידני לעשות kubectl delete pod ולמחוק את הפודים עם הגרסה שש עשרה.

  6. 01:32

    הנה מחקתי אחד ונשארו לי רק שניים עם גרסה שש עשרה. עכשיו, יש לי רק מזל שברפליקה הזאת היו רק שלושה פודים ואני יכול למחוק אותם ידנית. אבל זה לא לעניין לנהל את הקלאסטר ברמת הפודים בצורה ידנית.

  7. 01:47

    יותר מזה, אם משהו משתבש ואני רוצה לחזור חזרה לגרסה שש עשרה, אין לי דרך זריזה לעשות

לקורס המלא: קורס קוברנטיס – Kubernetes

ההרצאה הקודמת: הסבר על ReplicaSet - בקוברנטיס

ההרצאה הבאה: הסבר על Deployment - קוברנטיס - Kubernetes

הרצאות קשורות מקורסים אחרים

  • בעיית Cross Thread
  • בעיית ה-Callback Hell
  • בעיית ספירה לאינסוף
  • שדרוג - FortiGate firmware

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell
  • קורס Git ו-GitHub עם Visual Studio