PracticU

התקנה ושדרוג
עם Helm

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

התקנה ושדרוג עם Helm
פורסים את ה-chart של Helm ב-cluster, ואז משדרגים, מגלגלים אחורה ומוחקים אותו בפקודות בודדות.
השלבים העיקריים
1. התקנה: אחרי התחברות לענן, helm list מראה שאין חבילות. מתיקיית Chart.yaml מריצים helm install עם שם האפליקציה (pu-frontend) ונקודה לתיקייה הנוכחית. נוצר revision 1.
2. מצב: helm status מציג שלושה פודים ב-Running, service מסוג load balancer עם IP חיצוני ו-deployment. בגלישה אליו מתקבל "Welcome to nginx" קצר.
3. kubectl ממשיך לעבוד: ה-cluster לא יודע על Helm, ולכן kubectl get pods ו-get service עובדים כרגיל.
4. שדרוג: שינוי ב-YAML לשתי רפליקות, העלאת version ל-2 ו-appVersion ל-latest, ואז helm upgrade מהתיקייה הנוכחית. helm history מראה revision 2 במצב deployed ואת הראשון כ-superseded. נשארו שני פודים, ואחרי רענון ההודעה בדפדפן נהייתה ארוכה יותר, כלומר ה-image התעדכן.
5. Rollback: חזרה ל-revision 1 מחזירה את כל ה-YAML, כולל secrets, services ו-deployments. נוצר revision 3 שהוא העתק של הראשון, עם הערה Rollback. שוב שלושה פודים.
6. איפה זה נשמר: Helm שומר כל גרסה כ-Secret בתוך ה-cluster, ולכן לא תלוי בתחנת העבודה.
7. Uninstall: helm uninstall מוחק את כל האפליקציה, פודים ו-service כאחד. הוא גם מוחק את ה-Secrets של הגרסאות, ולכן ה-History לא זמין אחריו.
פקודות
helm list, helm install, helm status, helm history, helm upgrade, helm rollback, helm uninstall.
אחרי ההרצאה אפשר לנהל אפליקציה שלמה בפקודה אחת לכל פעולה, גם כשיש עשרות קבצי YAML.
השיעור הבא בקורס: הסבר על values.yaml Helm

פרקי ההרצאה: התקנה ושדרוג עם Helm

  1. 00:00

    אימות והרצת helm list

  2. 00:41

    התקנת אפליקציה עם helm install

  3. 01:17

    בדיקת סטטוס האפליקציה

  4. 01:53

    חיבור לשירות ובדיקה

  5. 02:28

    היסטוריה ושדרוג האפליקציה

תמלול ההרצאה: התקנה ושדרוג עם Helm

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

  1. 00:02

    שלום לכולם. היום אנחנו נפרוס את אפליקציית Helm שלנו בתוך הקלסטר של קוברנטיס. כרגע אני אעבור אימות מול G Cloud Authentication Login מול הענן שלי, ועכשיו אפשר לעשות helm list, לראות חבילות תוכנה שמותקנות בתוך הקוברנטיס שלי, והפלא ופלא, אין לי אף אפליקציה מוכנה, אין לי אף חבילה מוכנה.

  2. 00:25

    אני נמצא כרגע בתוך התיקייה עם Chart YAML, הקובץ שמתאר את האפליקציה, ואפשר להריץ פקודת helm install. Helm תתקין לי אפליקציה בשם pu-frontend. אני יכול לתת לה כל שם שאני רוצה.

  3. 00:41

    נקודה זה אומר תיקייה נוכחית. זה איפה נמצא קובץ Chart.YAML. תוך כמה רגעים Helm התקין לי את האפליקציה שלי. שימו לב Revision אחד, גרסה מספר אחת, כי עוד לא עשינו שדרוגים, ואם אני עושה helm list אני רואה את השם של האפליקציה, גרסה מספר אחד ואת השם שלה מתוך קובץ Chart.YAML.

  4. 01:04

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

  5. 01:17

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

  6. 01:38

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

  7. 01:53

    ואת כל המידע הזה אני מקבל בעזרת helm status. ממש, ממש נוח. בואו נתחבר ל-service, נבדוק שאכן הכול עובד ואני מקבל Welcome to nginx.

  8. 02:04

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

  9. 02:16

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

  10. 02:28

    אז kubectl get pods עובד, kubectl get service עובד. כל הפקודות הרגילות של kubectl עובדות. Helm זה הנשק הסודי שלי שבא לעזור לי אצלי במחשב.

  11. 02:41

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

  12. 02:58

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

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

ההרצאה הקודמת: הסבר על - Chart Helm

ההרצאה הבאה: הסבר על values.yaml - Helm

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

  • עדכון ושדרוג גרסה של ubuntu
  • התקנת תוכנות ושדרוג וונדוס 7 ל-10
  • התקנה
  • התקנה של DC

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

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