GitOps היא שיטת פיתוח ותיקון תוכנה המשתמשת ב-Git כמקור האמת להתקנה של הפרוצים. היא כרוכה בשמירת המצב הרצוי של יישום או תשתית במאגר Git ובשימוש בנהגים עבודה מבוססי Git לניהול ולהפעלת שינויים. שתי כלים פתוחי המקור הפופולריים העוזרים לארגונים ליישם GitOps לניהול היישומים שלהם ב-Kubernetes הם Flux ו-Argo CD. במאמר זה נבחן את הכלים הללו ביתר דיוק, היתרונות והחסרונות שלהם וכיצד להגדיר אותם. קרא את הדג'זון הקשור של DZone על איך ל-בודד צינורות CI / CD עם Jenkins ו-Kubernetes.
שימושים נפוצים ל-Flux ו-Argo CD
Flux
- משובץ משובץ: Flux יכול לשמש לאוטומציה של צינור ההפעלה ולהבטיח ששינויים יופעלו אוטומטית ברגע שהם דוחפים למאגר Git.
- ניהול תצורה: Flux מאפשר לך לאחסן ולנהל את התצורה של היישום שלך כקוד, מה שהופך את זה לקל יותר לשליטה בגרסאות ולעקוב אחר שינויים.
- אינפראסטורקטור בלתי ניתן לשינוי: Flux עוזר לאכסן גישת אינפראסטורקטור בלתי ניתן לשינוי – שם שינויים מבוצעים רק דרך מאגר ה-Git ולא דרך התערבות ידנית בקלסטר.
- פריסות כחול-ירוק: Flux תומך בפריסות כחול-ירוק שם גרסה חדשה של יישום מופקת במקביל לגרסה הקיימת, והתנודה מועברת בהדרגה לגרסה החדשה.
Argo CD
- פריסת מתמיד: Argo CD יכול לשמש לאוטומציה של תהליך הפריסה, מבטיח שהיישומים תמיד מעודכנים עם השינויים העדכניים ממאגר ה-Git.
- קידום יישום: Argo CD תומך בקידום יישום – שם יישומים יכולים להתקדם מסביבה אחת לשנייה. לדוגמה, מפיתוח לייצור.
- ניהול רב-קלסטרי: Argo CD יכול לשמש לניהול יישומים על פני מספר קלסטרים, מבטיח שהמצב הרצוי של היישומים הוא קביל בכל הקלסטרים.
- ניהול החזרות: Argo CD מספק יכולות החזרה, מקל על החזרת שינויים במקרה של כשלונות.
הבחירה בין שני הכלים תלויה בדרישות הספציפיות של הארגון והיישום, אך שני הכלים מספקים גישת GitOps לפישוט תהליך הפצה ולהפחתת הסיכון של שגיאות ידניות. לשניהם יש יתרונות וחסרונות משלהם, ובמאמר זה נבחן מהם הם ואיך להגדיר אותם.
מהו Flux?
Flux הוא כלי GitOps המאונך לפריסת יישומים ב-Kubernetes. הוא פועל על ידי ניטור רציף של מדינת רשומות Git ויישום שינויים כלשהם למוקדם. Flux משתף פעולה עם מספר ספקי Git כגון GitHub, GitLab, ו-Bitbucket. כשמשתנים במאגר, Flux מזהה אותם אוטומטית ומעדכן את המוקדם בהתאם. מדריך קשור: איך לפרוס יישומי ספרינג בוט באמצעות GitLab CI/CD.
יתרונות של Flux
- פריסות אוטומטית: Flux מאונך את תהליך הפריסה, מפחית שגיאות ידניות ומשחרר מפתחים להתמקד במשימות אחרות.
- נהג בזיכרון מבוסס Git: Flux משתמש ב-Git כבסיס אמיתי, מה שהופך את זה לקל יותר לעקוב ולהחזיר שינויים.
- התקנה דינמית: Flux משתמש בקונפיגורציות Kubernetes כדי להגדיר את המדינה הרצויה של מוקדם, מה שהופך את זה לקל יותר לנהל ולעקוב אחר שינויים.
קונס של פלוקס
- מגבלת שיתוף פעולה: פלוקס תומך רק במערך מוגבל של התאמות אישיות, שעשויים להיות לא מתאימים לכל מקרה שימוש.
- עמידה בהישג יד קשה: לפלוקס עמידה בהישג יד קשה עבור משתמשים חדשים ודורש הבנה עמוקה של קבצ'טנס וגיט.
איך להגדיר את פלוקס
דרישות קדימונים
- A running Kubernetes cluster.
- הילם מותקן על המכשיר המקומי שלך.
- A Git repository for your application's source code and Kubernetes manifests.
- כתובת המדיניות ומפתח SSH למדיניות הגיט.
שלב 1: הוספת מדיניות ההלם של פלוקס
השלב הראשון הוא להוסיף את מדיניות ההלם של פלוקס למכשיר המקומי שלך. הפעל את הפקודה הבאה כדי להוסיף את המדיניות:
helm repo add fluxcd https://charts.fluxcd.io
שלב 2: התקנת פלוקס
עכשיו כשמדיניות ההלם של פלוקס מותקנת, אפשר להתקין את פלוקס בשרת. הפעל את הפקודה הבאה כדי להתקין את פלוקס:
helm upgrade -i flux fluxcd/flux \
--set [email protected]:/.git \
--set git.path= \
--set git.pollInterval=1m \
--set git.ssh.secretName=flux-git-ssh
בפקודה לעיל, החלף את ערכי המיקום הריקים במידע המדיניות שלך. המשתנה git.url
הוא כתובת המדיניות של הגיט, המשתנה git.path
הוא הנתיב לספרייה המכילה את הצופן הקבצ'טנית, והמשתנה git.ssh.secretName
הוא שם הצופן הסודי המכיל את מפתח SSH למדיניות.
שלב 3: אימות ההתקנה
לאחר הפעלת הפקודה לעיל, אפשר לאמת את ההתקנה על ידי בדיקת מצב ה-pods של Flux. הפעל את הפקודה הבאה כדי להציג את ה-pods:
kubectl get pods -n <flux-namespace>
אם ה-pods פועלים, התקנת Flux הייתה מוצלחת.
שלב 4: חיבור Flux למאגר ה-Git שלך
השלב האחרון הוא לחבר את Flux למאגר ה-Git שלך. הפעל את הפקודה הבאה כדי לייצר מפתח SSH וליצור סוד:
ssh-keygen -t rsa -b 4096 -f id_rsa
kubectl create secret generic flux-git-ssh \
--from-file=id_rsa=./id_rsa --namespace=
בפקודה לעיל, החלף את מיקום ה-<flux-namespace>
בספייס בשם המרחב התחום שבו התקנת Flux.
עכשיו, הוסף את המפתח הציבורי הנוצר כמפתח פליטה במאגר ה-Git שלך.
הצלחת להגדיר את Flux באמצעות Helm. בכל פעם שמשנים נעשים במאגר ה-Git, Flux יגיע להם ויעדכן את המוקד בהתאם.
במסקנה, הגדרת Flux באמצעות Helm היא תהליך די פשוט. על ידי שימוש ב-Git כמקור אמיתיות ובקרת רציפות במצב המוקד, Flux עוזר לפשט את תהליך הפריסה ולהפחית את הסיכון של שגיאות ידניות.
מהו Argo CD?
Argo CD היא כלי פתוח המקור GitOps המאופשר את פריסת היישומים על Kubernetes. היא מאפשרת למפתחים לנהל יישומים באופן דקלרטיבי ומשאירה את המצב הרצוי של היישומים מסודר עם המצב החי. Argo CD משתלב עם מאגרי Git ומנטרים אותם באופן רציף לשינויים. כשמגיעים שינויים, Argo CD מחוללים אותם למוקדם, מה שמבטיח שהיישום תמיד יהיה עדכני. עם Argo CD, ארגונים יכולים לאופשר את תהליך הפריסה, להפחית את הסיכון לטעויות ידניות וליהנות מיכולות של Git של שליטה בגרסאות. Argo CD מספקת ממשק משתמש גרפי וממשק שורת הפקודה, מה שהופך את השימוש והניהול קלים יותר עבור היישומים בקנה מידה.
יתרונות של Argo CD
- תכונות פריסה מתקדמות: Argo CD מספקת תכונות פריסה מתקדמות, כמו עדכון גלגולי ופריסות קנרי, מה שהופך את הניהול של פריסות מורכבות לקל יותר.
- ממשק ידידותי למשתמש: Argo CD מספקת ממשק ידידותי למשתמש שהופך את הניהול של הפריסות לקל יותר, במיוחד עבור משתמשים לא טכניים.
- מיושמים באופן מUSTOMIZABLE: Argo CD מאפשרת שינויים רבים יותר, מה שהופך את הכלי לקל יותר להתאמה למקרים של שימוש.
חסרונות של Argo CD
- מעבר לימוד קשה: Argo CD קשה ללמידה עבור משתמשים חדשים ודורש הבנה עמוקה של Kubernetes ו-Git.
- מורכבות: ל-Argo CD יש מבנה מורכב יותר מאשר Flux, מה שיכול להקשות על ניהול ופתרון בעיות.
איך להגדיר את Argo CD
אפשר להתקין את Argo CD בטווח Kubernetes באמצעות Helm, מנהל תיבות ל-Kubernetes. בסעיף זה נעבור על השלבים להגדרת Argo CD באמצעות Helm.
דרישות קדומות
- A running Kubernetes cluster.
- Helm מותקן על המכשיר המקומי שלך.
- A Git repository for your application’s source code and Kubernetes manifests.
שלב 1: הוספת מאגר Helm של Argo CD
השלב הראשון הוא להוסיף את מאגר Helm של Argo CD למכשיר המקומי שלך. הפעל את הפקודה הבאה להוספת המאגר:
helm repo add argo https://argoproj.github.io/argo-cd
שלב 2: התקנת Argo CD
עכשיו כשמאגר Helm של Argo CD מוסף, אפשר להתקין את Argo CD בטווח. הפעל את הפקודה הבאה להתקנת Argo CD:
helm upgrade -i argocd argo/argo-cd --set server.route.enabled=true
שלב 3: אימות ההתקנה
לאחר הפעלת הפקודה לעיל, אפשר לאמת את ההתקנה על ידי בדיקת מצב ה-pods של Argo CD. הפעל את הפקודה הבאה להצגת ה-pods:
kubectl get pods -n argocd
אם ה-pods פועלים, התקנת Argo CD הושלמה.
שלב 4: חיבור Argo CD למאגר ה-Git שלך
השלב האחרון הוא לחבר את Argo CD למאגר ה-Git שלך. Argo CD מספק ממשק משתמש גרפי שאפשר להשתמש בו ליצירת יישומים וחיבור למאגר ה-Git שלך.
לצורך גישה לממשק של Argo CD, הפעל את הפקודה הבאה לקבלת הכתובת:
kubectl get routes -n argocd
השתמש בכתובת בדפדפן אינטרנט לצורך גישה לממשק של Argo CD.
ברגע שאתה בממשק, אתה יכול ליצור יישום חדש על ידי ספקת כתובת רשימת הגיט למאגר והנתיב לקובצי קוד קודמטוס קופי. ארגו CD יבדוק באופן רציף את המאגר עבור שינויים ויחדוג אותם למארג.
כעת הצלחת להגדיר את ארגו CD באמצעות הלמ.
סיכום
קיוברנטוס ו-DevOps הם חלק מרכזי ממעגל החיים של פיתוח התוכנה, ו-GitOps היא גישה חשובה לאוטומציה של פרויקטים הפצה וניהול של יישומים בקיוברנטוס. פלוקס וארגו CD הם שתי כלים פופולריים של GitOps המספקים דרך פשוטה ויעילה לאוטומציה של תהליך הפצה, לאכיפת תשתית בלתי ניתנת לשינוי ולניהול יישומים בצורה עקבית וצפויה.
פלוקס מתמקד באוטומציה של תעלת הפצה ומספק ניהול תצורה כקוד, בעוד ארגו CD מספק פתרון GitOps מלא יותר, כולל תכונות כמו ניהול מסדרות מרובות, קידום יישומים וניהול גישת חזרה. לשתי הכלים יש חוזקות וחולשות משלהם, והבחירה ביניהם תלויה בדרישות הספציפיות של הארגון והיישום.
ללא קשר לכלי שנבחר, GitOps מספק גישה חשובה לפישוט תהליך ההפעלה והפחתת הסיכון לטעויות ידניות. על ידי שמירה על המצב הרצוי של היישומים במסד הנתונים של Git, GitOps מבטיח שהשינויים יעשו בצורה עקבית וצפויה, מה שמוביל לתהליך הפעלה יותר אמין ויעיל.