PracticU

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

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

הסבר על Deployment קוברנטיס - Kubernetes
Deployment הוא האובייקט שפותר את בעיית השדרוג של ReplicaSet: הוא מנהל ReplicaSets ומחליף גרסת image בהדרגה. ההרצאה מראה שדרוג, חזרה לאחור והיסטוריית גרסאות.
איך Deployment עובד
1. הגדרה: לוקחים את ה-YAML של ה-ReplicaSet ומחליפים רק את סוג האובייקט ל-Deployment. נשארים שלושה פודים, nginx גרסה 1.16 ותווית שחייבת להתאים ל-selector.
2. שלוש שכבות: אחרי kubectl apply ו-kubectl get all רואים Deployment שיצר ReplicaSet (שמו כולל את שם ה-Deployment ותוספת אקראית), וה-ReplicaSet יצר שלושה פודים.
3. שדרוג: שינוי ה-image לגרסה 17 יוצר ReplicaSet חדש. הוא עולה מפוד אחד לשניים ולשלושה, ובמקביל הישן יורד משלוש לשתיים לאחד ולאפס. אותו דבר קרה בשדרוג לגרסה 18.
4. חזרה לאחור: פקודת undo החזירה את ה-cluster לגרסה 17 בלי עבודה ידנית. אפשר גם לכתוב latest ב-YAML, ו-apply יעדכן הכול.
5. ReplicaSet ישן נשאר: ה-Deployment לא מוחק אותו בסיום, כדי שאפשר יהיה לחזור לכל גרסה קודמת.
6. היסטוריה: rollout history מציג את הגרסאות לפי מספר revision, ו-rollout undo למספר מסוים (בדוגמה 1) החזיר ל-image 1.16.
פקודות
- kubectl get all לראות את כל האובייקטים ב-cluster.
- kubectl apply ליצירה ועדכון.
- rollout history ו-rollout undo לניהול גרסאות.
ה-Deployment מנהל את ה-ReplicaSets, והם מנהלים את הפודים. כך אפשר לשדרג ולחזור לאחור בפעולה אחת.
השיעור הבא בקורס: בדיקת אתר אינטרנט בתוך הקונטיינר

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

  1. 00:00

    deployment כשדרוג של ReplicaSet

  2. 00:54

    המרת ReplicaSet ל-deployment

  3. 01:51

    הרצת apply ובדיקת האובייקטים

  4. 02:44

    deployment יוצר ReplicaSet ופודים

  5. 03:23

    שדרוג גרסה הדרגתי של הפודים

  6. 04:02

    מעבר עדין בין גרסאות

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

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

  1. 00:02

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

  2. 00:14

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

  3. 00:28

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

  4. 00:41

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

  5. 00:56

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

  6. 01:25

    הוא צריך שיהיו שלושה עם התווית הזאת. אם חסר, הוא מייצר פודים לפי השבלונה הזאת וחשוב שעל כל פוד תהיה התווית שהוא מחפש. ותכף נראה את הכל בפעולה. קודם כל נעשה kubectl get all.

  7. 01:38

    נראה כל מה שיש לנו ב-cluster שלנו והאמת אין לנו כלום חוץ מסרוויס אחד של קובירנטיס, שזה שרת API המובנה בתוך המאסטר. אז בואו נעשה kubectl apply. הוא יוצר לי פה את ה-deployment ואת הסרוויס.

  8. 01:54

    בואו נעשה kubectl get all. נראה שהוא יצר לנו שלושה פודים. הוא יצר לנו את הסרוויס, את ה-load balancer שלנו, שנוכל מבחוץ, מהאינטרנט להיכנס פנימה. אני רואה שהוא עדיין לא קיבל כתובת IP חיצונית.

  9. 02:09

    תכף הוא יקבל אותה. אנחנו רואים פה deployment חדש, שזה השם שלו. זה ה-deployment שלנו, שהוא נוצר לפני עשרים ושלוש שניות.

  10. 02:19

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

  11. 02:36

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

  12. 02:50

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

  13. 03:06

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

  14. 03:18

    הוא ב-get all יוצר לנו רפליקיישן סט חדש עם image חדש בפנים. זאת אומרת deployment יוצר עוד רפליקיישן סט עם אותו שם, מקף, מספרים אקראיים ואומר אני רוצה רק פוד אחד מהסוג החדש.

  15. 03:34

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

  16. 03:51

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

  17. 04:15

    בואו נעשה עוד שדרוג לגרסה שמונה עשרה. נריץ get all פעם ראשונה. אתם רואים? אחד 三 . get all פעם שנייה, שתיים 二 .

  18. 04:25

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

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

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

ההרצאה הבאה: בדיקת אתר אינטרנט - בתוך הקונטיינר

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

  • הסבר על Kubernetes

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

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