מהו Helm ואיך משתמשים בו לניהול חבילות ב-Kubernetes

מהו Helm ואיך משתמשים בו לניהול חבילות ב-Kubernetes

Helm

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

מהו Helm?

Helm הוא מנהל חבילות (Package Manager) המאפשר לכם להגדיר, להתקין ולנהל יישומים מורכבים על פני אשכולות Kubernetes. בעזרת Helm, תוכלו לארוז יישומים בצורה הנקראת 'Chart', שהיא למעשה חבילת קבצים המגדירה את כל המשאבים הדרושים ליישום שלכם. כמו כן, Helm מספק שיטות מתקדמות לניהול גרסאות, שדרוג יישומים, וניהול תצורות, מה שהופך אותו לכלי חיוני במיוחד עבור DevOps ומפתחים בסביבת Kubernetes.

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

התקנת Helm

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

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

לאחר התקנה מוצלחת, תוכלו לוודא שהכלי הותקן כראוי על ידי הרצת הפקודה הבאה:

helm version

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

מבנה Chart ב-Helm

כדי להבין איך להשתמש ב-Helm, חשוב להכיר את המבנה של Chart. Chart הוא התבנית הבסיסית של יישום ב-Helm, והוא מכיל את כל מה שנדרש כדי להגדיר ולהתקין יישום על גבי Kubernetes. כדי ליצור Chart חדש, השתמשו בפקודה הבאה:

helm create mychart

הפקודה הזו תיצור תבנית בסיסית של Chart בתיקייה בשם mychart. בואו נסקור את הקבצים והתיקיות המרכיבים את ה-Chart:

Chart.yaml: קובץ זה מכיל מידע מטא על ה-Chart, כולל שם היישום, תיאורו, גרסה, ומידע נוסף על היישום.

values.yaml: קובץ זה מכיל את ערכי ברירת המחדל של ה-Chart. תוכלו להגדיר בו את כל הפרמטרים הנדרשים ליישום שלכם, כגון גודל משאבים, סביבות, פרמטרים שונים ועוד.

templates/: תיקייה זו מכילה את כל קבצי ה-Template שמשמשים ליצירת המשאבים השונים ב-Kubernetes. כאן תוכלו להגדיר את ה-Deployments, Services, ConfigMaps, ועוד. קבצי התבניות הללו מוגדרים בשפת YAML ומשמשים ליצירת המשאבים השונים באשכול ה-Kubernetes שלכם.

בנוסף, ה-Chart יכול לכלול קבצים נוספים כמו README.md לתיעוד, charts/ שמכילה Charts נוספים (לשימוש במודולים חיצוניים), ו-.helmignore שמאפשר להגדיר אילו קבצים לא ייכללו בחבילה בעת בניית ה-Chart.

התקנת יישום באמצעות Helm

לאחר שיצרתם Chart או הורדתם Chart קיים ממאגר חבילות (Repository), תוכלו להתקין יישום על גבי אשכול Kubernetes באמצעות הפקודה הבאה:

helm install myapp mychart/

הפקודה הזו תתקין את היישום myapp על בסיס ה-Chart שנמצא בתיקיית mychart. אם תרצו להתאים אישית את ההתקנה, תוכלו להעביר ערכים מותאמים אישית כארגומנטים לקובץ values.yaml או להשתמש בקובץ values נפרד.

לדוגמה, אם תרצו להגדיר את היישום כך שישתמש ביותר זיכרון מאשר הערך הדיפולטי, תוכלו ליצור קובץ בשם custom-values.yaml עם הערכים הרצויים, ולהתקין את היישום כך:

helm install myapp mychart/ -f custom-values.yaml

התקנה זו תבצע אוברייד על הערכים הדיפולטיים שבקובץ values.yaml ותשתמש בערכים שהגדרתם בקובץ custom-values.yaml.

ניהול גרסאות ושדרוג יישומים

Helm מאפשר לכם לנהל גרסאות יישומים בצורה פשוטה ויעילה. אחד מהיתרונות הגדולים של Helm הוא היכולת לשדרג יישומים בצורה אוטומטית ועם פחות סיכון לשגיאות. לדוגמה, אם ביצעתם שינויים ב-Chart, תוכלו לשדרג את היישום כך:

helm upgrade myapp mychart/

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

helm rollback myapp 1

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

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

helm history myapp

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

ניהול Chart Repositories

Helm תומך בניהול מאגרי חבילות (Repositories) המאפשרים לכם לאחסן, לשתף ולהתקין Charts בצורה קלה. תוכלו להוסיף מאגר חבילות חדש באמצעות הפקודה הבאה:

helm repo add myrepo https://example.com/charts

כעת תוכלו לחפש ולהתקין Charts מהמאגר שהוספתם:

helm search repo myrepo

הפקודה הזו תחפש ותציג את כל ה-Charts הזמינים במאגר myrepo. תוכלו להתקין אותם בקלות באמצעות פקודת helm install כפי שהוסבר קודם לכן.

בדיקת Chart ו-Testing

Helm מספק גם אפשרויות לבדיקת Charts לפני התקנה. בדיקה זו מאפשרת לכם לוודא שה-Chart עובד כראוי ושאין בעיות בתבנית הקוד או במבנה הקבצים. כדי לבצע בדיקה, השתמשו בפקודה:

helm lint mychart/

הפקודה הזו תבדוק את ה-Chart בתיקיית mychart ותחפש שגיאות או אזהרות. זהו שלב חשוב במיוחד כאשר אתם מפתחים Chart חדש או מבצעים שינויים משמעותיים בקיים.

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

אם תרצו להסיר יישום ולהסיר את כל המשאבים שיצר, תוכלו לעשות זאת באמצעות הפקודה הבאה:

helm uninstall myapp

הפקודה הזו תסיר את היישום myapp ותמחק את כל המשאבים ש-Helm יצר עבור היישום באשכול Kubernetes. זהו תהליך פשוט ומהיר, המבטיח שלא יישארו משאבים מיותרים לאחר הסרת היישום.

שימוש ב-Helm עם CI/CD

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

לדוגמה, ניתן להגדיר פריסה אוטומטית של גרסאות חדשות של יישומים באמצעות Jenkins, GitHub Actions, או כל כלי CI/CD אחר, כך שכל שדרוג יבוצע בצורה אוטומטית לאחר מעבר הבדיקות.

סיכום

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

אם אתם מעוניינים ללמוד בצורה מעמיקה יותר על השימוש ב-Helm ובכלים נוספים בניהול תהליכי DevOps, אתם מוזמנים להתייעץ איתנו על קורס DevOps.
צריכים ייעוץ להטמעת Helm בארגון? דברו איתנו!

שתפו את הפוסט

דילוג לתוכן