הקדמה
Argo CD הוא מימוש פתוח פופולרי עבור ביצוע של משלוח רציף באמצעות GitOps על בסיס Kubernetes. יישומים, הגדרות, תצורות וסביבות שלך צריכים להיות מצהירים ובאחסון גרסאות. גם פרסום יישום וניהול מחזור החיים של היישום צריכים להיות ממומנים, ברורים לסקירה וקלים להבנה. כל זה ניתן לעשות באמצעות Argo.
Argo CD נאמן לתבניות ולעקרונות ה-GitOps הכל זה תוך שמירה על מצב האשכול שלך באמצעות גישה מצהירה. סנכרון מתרחש דרך תיק גיט, בו מאוחסן מנפצי ה-Kubernetes שלך. ניתן לציין מנפצי Kubernetes בכמה דרכים:
- יישומי Kustomize.
- תרשימי Helm.
- יישומי Ksonnet.
- קבצי Jsonnet.
- ספרייה פשוטה של מנפצי YAML/json.
- כל כלי ניהול תצורה מותאם אישית מוגדר כתוספת של כלי ניהול תצורה.
כמו כל אפליקציה שרצה באשכול Kubernetes, Argo CD מוגדרת דרך הגדרות משאבים מותאמות אישית (CRDs) המאוחסנות בתוך רפרסנטציות YAML. הכי חשובה מביניהן היא ה-CRD Application. באפליקציה של Argo CD, אתה מגדיר איזה גיט ריפוזיטורי יש להשתמש לסנכרון עם איזה אשכול Kubernetes. זה יכול להיות אותו אשכול Kubernetes בו הותקן Argo CD, או אחד חיצוני.
Argo CD מיושם כקונטרולר של Kubernetes המעקב באופן רציף אחר אפליקציות רצות ומשווה את המצב הנוכחי (או החי) לעתיד הרצוי (כפי שצויין בגיט ריפוזיטורי). אפליקציה שהוצבה שמצבה החי סותר את המצב הרצוי נחשבת OutOfSync
. Argo CD מדווחת ומתמצאת את ההבדלים, תוך הספקת אפשרויות לסנכרן את המצב החי באופן אוטומטי או ידני למצב הרצוי.
Argo CD מציעה מספר יכולות, המשמעותיות ביותר מהן הן:
- תמיכה בכלים לניהול הגדרות/ערכים מרובים, כגון:
Kustomize
,Helm
,Ksonnet
,Jsonnet
,plain-YAML
. - יכולת לנהל ולפרסם לאשכולים מרובים.
- אינטגרציית SSO (
OIDC
,OAuth2
,LDAP
,SAML 2.0
,GitHub
,GitLab
,Microsoft
,LinkedIn
). - רב-שכבתיות ומדיניות RBAC לאוטוריזציה.
- ניתוח סטטוס בריאות של משאבי האפליקציה.
- עתור/עתירו אל כל הגדרת אפליקציה שנרשמה במאגר Git.
- איתור תגובת הגדרה אוטומטית ותצוגה גרפית.
- ממשק משתמש באינטרנט שמספק תצוגה בזמן אמת של פעילות האפליקציה.
- סי.אל.איי עבור אוטומציה ואינטגרציה של סי.איי.
- אינטגרציה של וובהוק (גיטהאב, ביטבאקט, גיטלאב).
- תגיות פריסה מראש, פריסה, פוסט-פריסה לתמוך בפרסומיות מורכבות של הפרקות האפליקציה (לדוגמה, שדרוגי כחול/ירוק וקנרי).
- מדדי Prometheus.
במדריך הזה, תלמד/י:
- להשתמש ב־Helm לספק את Argo CD לערכת ה-DOKS שלך.
- לשמור על סנכרון מצב אפליקציות ערכת Kubernetes שלך עם מאגר Git (להשתמש בעקרונות GitOps).
- להפעיל ולנהל אפליקציות באמצעות Argo CD.
לאחר שתסיים/י את כל השלבים במדריך הזה, תהיה/י עם ערכת DOKS שלך, עם Argo CD מפורסם, שיעשה/תפעיל:
- טיפול בסינכרון עם ערכות CRD של האפליקציה. טיפול בשחרורי Helm, באמצעות מקורות Helm שמוגדרים בתוך CRD של האפליקציה.
סקירה של DOKS ו-Argo CD עבור שחרורי Helm
התרשים למטה מציג איך Argo CD ניהלת אפליקציות Helm שמתחסנות באמצעות מאגר Git:
תוכן עניינים
- מבוא
- דרישות קדם
- הבנת מושגי Argo CD לפיתוח אפליקציות
- התקנת Argo CD
- גישה וחקירה בממשק האינטרנט של Argo CD
- היכרות עם ממשק ה-CLI של Argo CD
- הפעלת אפליקציות Argo CD
- שימוש בסטים של אפליקציות של Argo CD
- הסרת אפליקציות של Argo CD
- מסקנה
דרישות מוקדמות
כדי להשלים את המדריך הזה, תצטרך:
- A working
DOKS
cluster that you have access to. Please follow the Starter Kit DOKS Setup Guide to find out more.to find out more. - A GitHub repository and branch, to store Argo CD and your applications manifests. Must be created beforehand.
- A Git client, for cloning the
Starter Kit
repository. - Kubectl CLI, לאינטראקציה עם
Kubernetes
. עקוב אחרי ההוראות האלה כדי להתחבר לאשכול שלך עםkubectl
ו-doctl
. - Argo CLI, לאינטראקציה עם
Argo CD
באמצעות ממשק שורת פקודה. - Kubeseal, להצפנת סודות ולאינטראקציה עם Sealed Secrets Controller.
- Helm, לניהול שחרורים ושדרוגים של
Argo CD
(אופציונלי, אך מומלץ בדרך כלל למערכות הפקודה).
הבנת עקרונות Argo CD עבור התקנת אפליקציות
Argo CD משתמש בעקרון היסוד של יישום כדי לנהל את הפיתוח ומחזור החיים של יישומים. בתוך רישום יישום של Argo CD, אתה מגדיר את מאגר ה-Git שבו מאוחסנות הגדרות היישום שלך, כמו גם את האשכול התואם של Kubernetes לפרסום היישומים. במילים אחרות, יישום של Argo CD מגדיר את הקשר בין מאגר מקור (Git) לבין אשכול Kubernetes. זו תכנות מאוד קצרה ונפתחת, שבה תוכל לקשור מקורות מרובים (מאגרי Git) ואשכולות Kubernetes תואמים.
A major benefit of using applications is that you don’t need to deploy Argo to each cluster individually. You can use a dedicated cluster for Argo, and deploy applications to all clusters at once from a single place. This way, you avoid Argo CD downtime or loss, in case other environments have issues or get decommissioned.
מעבר לכך, ניתן לקבץ יישומים דומים לתוך פרויקט. פרויקטים מאפשרים קיבוץ לוגי של יישומים ותפקידים/הרשאות משויכים כאשר עובדים עם מספר קבוצות. כאשר לא מצויין, כל יישום חדש משוייך לפרויקט default
. פרויקט ה-default
נוצר באופן אוטומטי ואין לו מגבלות. ניתן לשנות את פרויקט הברירת מחדל, אך לא למחוקו.
ערכת ההתחלה
משתמשת בפרויקט default
לקפיצת התחלה מהירה באמצעות Argo CD. לאחר מכן, תלמד כיצד ליצור יישום
עבור כל רכיב של ערכת ההתחלה
, ולהשתמש ב־גרפים Helm
כמקור היישום. Argo CD אינו מוגבל למקורות Helm בלבד, ותוכל גם לנצל את הכוח של Kustomize, Ksonnet, Jsonnet, וכו'. אנא ראה את דף מקורות היישום לפרטים נוספים.
אף על פי שתוכל להשתמש בממשק משתמש גרפי (ממשק אינטרנטי) של Argo CD כדי ליצור יישומים, ערכת ההתחלה מתבססת על דרך ההגדרה הדקלרטיבית של GitOps, באמצעות קבצי YAML. כל הגדרת YAML פועלת כמתכון לכל יישום, ולכן ניתן לאחסן אותו במאגר Git. זה אומר שתוכל ליצור מחדש תמיד את ההגדרה שלך ב־Argo CD אם תיצור מחדש את הסביבה שלך, או תעבור לקבוצה אחרת. יותר חשוב, תוכל לבצע בדיקות ולעקוב אחר כל שינוי דרך היסטוריית ה־Git. זו הפרקטיקה הטובה ביותר גם להפעיל את קבצי ההגדרה של Argo CD במאגר Git נפרד, מאשר באחד המשמש לפיתוח היישום שלך. תוכל לקרוא את דף הפרקטיקות הטובות מאתר תיעוד הרשמי של Argo CD למידע נוסף על הנושא.
הערה חשובה:
נקודה חשובה לשים לב אליה היא שברירת מחדל Argo CD לא מסנכרנת אוטומטית את היישומים החדשים שלך. כאשר יישום של ArgoCD נוצר לראשונה, המצב שלו הוא OutOfSync
. זה אומר שהמצב של מאגר ה-Git שמצביע עליו היישום של ArgoCD אינו תואם למצב האשכול של Kubernetes. יצירת יישום חדש של ArgoCD לא מפעילה הרצה אוטומטית על האשכול היעד.
כדי לאפשר סנכרון אוטומטי ומחיקת משאבים נטושים (צמיחה), עליך ליצור syncPolicy
. ניתן גם להגדיר את Argo CD כך שיבטל אוטומטית שינויים ידניים שנעשו באמצעות kubectl
. ניתן לקרוא עוד על מדיניות הסנכרון האוטומטית באתר התיעוד הרשמי.
תצורת Application CRD
רגילה באמצעות מקור מאגר Git נראית כמו בהמשך:
הסברים להגדרה לעיל:
spec.project
: מספר ל- Argo CD איזה פרויקט להשתמש בו עבור היישום (default
בדוגמה זו).spec.source.repoURL
: כתובת URL של מאגר ה-Git המשמש לסנכרון מצב האשכול.spec.source.targetRevision
: גרסת מאגר ה-Git שמשמשת לסנכרון (יכולה להיות שם של ענף או תג כמו כן).spec.source.path
: נתיב במאגר ה-Git בו מאוחסנים קבצי המקור (מניפסטים YAML).spec.destination.server
: כתובת אשכול Kubernetes יעד. כמעט תמיד מצביעה עלhttps://kubernetes.default.svc
, אם Argo CD משתמשת באותו אשכול שבו הוא מותקן.spec.destination.namespace
: רווח שמות של Kubernetes לשימוש ביישום שלך.spec.syncPolicy.automated
: מאפשר סנכרון אוטומטי של יישומים באשכול שלך עם מאגר Git.spec.syncPolicy.automated.prune
: פורום מציין האם למחוק משאבים מהאשכול שאינם נמצאים עוד במקורות כחלק מהסנכרון האוטומטי.spec.syncPolicy.automated.selfHeal
: מציין האם להחזיר משאבים למצבם הרצוי לאחר שינוי ידני באשכול (לדוגמה באמצעותkubectl
).
ניתן גם להשתמש במאגרי Helm כמקור להתקנת יישומים באשכול שלך. דוגמת Application CRD
סטנדרטית המשתמשת במאגר מרכזי של Helm נראית כמו מטה (דומה לדוגמה של מאגר Git, רק שמשתמשים במאגר מסוג Helm):
הסברים להגדרות מעלה:
spec.source.chart
: תרשים של Helm לשימוש כמקור ליישום.spec.source.repoURL
: כתובת URL של מאגר תרשים של Helm.spec.source.targetRevision
: גרסת תרשים של Helm לשימוש ביישום.spec.source.helm.releaseName
: שם של השחרור של Helm ליצירה באשכול Kubernetes שלך.spec.source.helm.values
: מציין ערכי Helm להעברה לתבנית של helm, מוגדרת כלפי רוב כבלוק.spec.destination.server
: כתובת של שרת האשכול היעד. נקודת יעד נמצאת בדרך כלל ב-https://kubernetes.default.svc
, אם Argo CD משתמשת באשכול זהה שבו הוא מותקן.spec.destination.namespace
: מרחב השמות Kubernetes שיש להשתמש בו עבור היישום שלך.
נא להמשיך ולקרוא עוד על מושגים המרכזיים של Argo CD באתר התיעוד הרשמי. לאחר מכן, תגלה את האפשרויות להתקנה הזמינות כדי להעלות את Argo CD בקשר Kubernetes שלך.
התקנת Argo CD
ניתן להתקין את Argo CD באמצעות kubectl
, או באמצעות Helm
:
- שימוש ב־
kubectl
וקובץ תצורה להתקנה. שיטה זו אינה מציעה שליטה ישירה על פרמטרי ההתקנה השונים. אם אינך מכיר יישום ההתקנה של Helm, זו האפשרות הכי ישירה להתחיל איתה. - התקנה באמצעות Helm. מציע יותר שליטה נגד התקנת היישום Argo CD ובמחזור חיי הקיום שלו. מומלץ עבור הגדרות
HA
(גישה גבוהה) ואם נעשה שימוש ב־Argo CD בסביבהproduction
.
לאחר מכן, תלוי בתכונות שברצונך שיהיו זמינות, יש לך שני אפשרויות:
- מצב
Multi-Tenant
. סוג התקנה זה נהוג לשירות צוותי מפתחי יישומים מרובים בארגון ונחזק על ידי צוות פלטפורמה. המשתמשים הסופיים יכולים לגשת אל Argo CD דרך שרת ה־API
באמצעות ממשק ה־Web UI
או את הפקודהargocd
. ציד הליבה
בלבד. זהו מותקן מצומצם, ללא ממשק משתמש גרפי, שרת API, SSO וכו', ומתקין את גרסת המשקול הקלה (לא-HA) של כל רכיב.
מערכת ההתחלה משתמשת במצבי רבי דיירים
ו־גבוה זמינות
להתקנת Argo CD בקשת DOKS שלך. בכך, תהיה לך הגדרה אמינה ותוכל לחקור את כל התכונות הזמינות, כולל הממשק המשתמש. אנא בקר בדף התיעוד על שיטות ההתקנה לקבלת מידע נוסף על הנושא.
התקנת על ידי Kubectl
שיטה זו דורשת את kubectl
, והיא תהליך משני שלבים:
- צור
מרחב שמות
, כדי להתקין את Argo CD עצמו. - הפעל את קובץ ההתקנה של HA, דרך
kubectl
.
אנא הריץ את הפקודות הבאות בסדר:
כעת, אנא המשך ובדוק אם ההתקנה הצליחה. תחילה, בדוק אם כל ההתקנות של Argo CD הן בריאותיות:
הפלט דומה למסך הבא (בדוק את העמודה READY
– כל Pods
חייבים להיות רצים):
השרת של Argo CD חייב לקבל את הערך המינימלי של replicaset
בגודל של 2
עבור מצב HA
. אם מסיבה כלשהי ישנן התקנות שאינן בריאותיות, אנא בדוק אירועי Kubernetes ויומני רישום עבור פודים המושפעים.
התקנת Helm-Based
שיטה זו מחייבת את התקנת Helm על המחשב המקומי שלך. הערכת ההתחלה מספקת קובץ ערכות של Helm מוכן לשימוש כדי להתחיל, ומתקין את Argo CD במצב HA (ללא התנגדות אוטומטית).
אנא עקוב אחר השלבים הבאים כדי להשלים את ההתקנה המבוססת על Helm:
- ראשית, שכפול את ספריית ערכת ההתחלה (אם עדיין לא), ושנה את התיקייה להעתקתך המקומית:
- לאחר מכן, הוסף את ספריית Helm של Argo CD:
- עכשיו, חפש במאגר ה-Helm של
argo
תרשים זמין להתקנה:
הפלט דומה לכך:
- אז, פתח ובדוק את קובץ ערכות ה-Helm של Argo CD המסופק במאגר ערכת ההתחלה בעזרת עורך לבחירתך (מומלץ תומך ב־YAML lint). לדוגמה, תוכל להשתמש ב־VS Code:
- לבסוף, הפעל את Argo CD בקבוצת ה-DOKS שלך:
–create-namespace \
הערה:השתמשנו ב-גרסה ספציפית
של תרשים ה-Helm. במקרה זה, בחרנו ב-4.9.4
, המתאימה לגרסת היישום 2.4.0
. זהו נוהג נכון בכלל, לנעול על גרסה ספציפית. זה מסייע לקבל תוצאות צפויות, ומאפשר בקרה על גרסאות דרך Git
.
כעת, בדוק האם השחרור של Helm הצליח:
הפלט דומה ל-(ערך העמודה STATUS
צריך להיות מוגדר ל-deployed
):
לבסוף, ודא סטטוס פרישת האפליקציה של Argo CD:
הפלט דומה ל-(בדוק את העמודה READY
– כל Pods
חייבים להיות פועלים):
השרת של Argo CD חייב להיות עם ערך מינימלי של replicaset
של 2
עבור מצב HA
. אם, מסיבה מסוימת, יישומים כלשהם אינם בריאים, יש לבדוק את אירועי Kubernetes ולוגים עבור קופוננטות ה- Pods המושפעות.
ניתן גם למצוא מידע נוסף על תרשים ה- Helm של Argo CD על ידי גישה ל-מאגר התומך בקהילה.
הבא, תלמד כיצד לגשת ולחקור את התכונות העיקריות של ממשק המשתמש הגרפי שסופק על ידי Argo CD.
גישה וחקירה של ממשק האינטרנט של Argo CD
אחת התכונות המעניינות שיש ל- Argo CD להציע היא הממשק האינטרנטי, המשמש לביצוע מגוון משימות מנהליות שונות ולצפייה במצב ההתקנה של האפליקציה. ניתן ליצור אפליקציות באמצעות ממשק המשתמש הגרפי ולפעול עם Argo CD בדרכים שונות. תכונה חשובה נוספת היא היכולת לבדוק את מצב היישום כל אחד ולגשת לאירועי Kubernetes, כמו גם ליישומים שלך. מעל כך, Argo CD מספק מיוצג ויזואלי של כל אובייקטי Kubernetes (replicasets, pods, וכו ') שיש בכל התקנה של אפליקציה.
ניתן לגשת לממשק האינטרנטי על ידי פתיחת צינור התקשורת לשירות Kubernetes של argocd-server
. יש להריץ את הפקודה הבאה בטרמינל:
עכשיו, פתחו דפדפן אינטרנט ונווטו אל localhost:8080 (אנא התעלמו מתעודות TLS לא חוקיות לעכשיו). תתקבלו בדף התחברות של Argo CD. שם משתמש ברירת המחדל למנהל הוא admin
, והסיסמה נוצרת אקראית בזמן ההתקנה. ניתן לקבל אותה על ידי הרצת הפקודה הבאה:
לאחר מכן, תועברו לדף לוח המחוונים של האפליקציות. מכאן, ניתן להציג, ליצור או לנהל אפליקציות דרך ה-UI (עורך YAML זמין גם), כמו גם לבצע פעולות סנכרון או רענון:
אם תלחצו על כל אריח אפליקציה, תוצג גם מיוצג ויזואלי של כל האובייקטים המעורבים:
בסעיף הבא, ניתן לנהל את פרויקטי האפליקציות שלך, מאגרי הקוד והאשכולות:
לבסוף, סעיף מידע המשתמש מציג את המשתמשים הזמינים ומאפשר עדכון של סיסמת המנהל:
ניתן לשחק סביב ולחקור כל קטע ותת-קטע בפרט כדי לראות את כל התכונות הזמינות. למעבר לשימוש ב-CLI המתאים, הנקרא argocd
.
Argo CD מאפשר את אותם סט תכונות להשתמש בהם באמצעות ממשק האינטרנט או דרך CLI. כדי להשתמש ב-CLI של argocd
, עליך לפתוח חלון של סל שונה ופשוט להקליד argocd
בלי שום ארגומנטים. באופן ברירת מחדל, הוא יציג את הפקודות והאפשרויות הזמינות:
לכל פקודה או תת-פקודה, ניתן לקרוא את דף העזרה המתאים באמצעות התבנית הבאה: argocd <פקודה/תת-פקודה> --help
. לדוגמה, אם ברצונך לבדוק אילו אפשרויות זמינות עבור הפקודה app
:
# לקבל את הפרטים של אפליקציה
אנא המשך ובחן פקודות/תת-פקודות אחרות כדי לראות את כל האפשרויות הזמינות. למעבר לכך, תלמד כיצד לספק יישום ראשון של Argo CD, אשר יפעיל באופן אוטומטי את כל רכיבי ערכת ההתחלה.
הפעלת יישומים של Argo CD באמצעות Bootstrapping
בהתקנה חדשה, Argo CD לא מכיר את מקום הסנכרון של היישומים שלך או אילו מאגרי Git זמינים למקור המניינים של היישומים. לכן, השלב הראשון הוא לבצע פעולה חד פעמית הנקראת Bootstrapping. באפשרותך לבצע את כל הפעולות שמוצגות בסעיף זה באמצעות כלי ה-CLI של argocd או ממשק המשתמש הגרפי.
ישנם מספר דרכים שונות לבצע את Bootstrapping של האשכול שלך (לדוגמה, באמצעות סקריפטים), אך בדרך כלל, משתמשי Argo CD משתמשים בתבנית יישום של יישומים
. זו אומרת שתתחיל ביצירת יישום הורה באמצעות CLI של argocd
(או ממשק האינטרנט), שיפנה ויפעיל את שאר היישומים באשכול הקוברנטיס שלך.
יש תחילה להכין את מבנה התיקייה שלך במאגר Git כך שיהיה בו מבנה עקבי. בדוגמה הבאה, תיצור מבנה של מאגר Git הדומה למטה:
- אנא פתח טרמינל ועקוב אחר השלבים הבאים כדי ליצור את המבנה של מאגר Git שלך:
- ראשית, שכפל את מאגר ה-Git שלך שמשמש לבדיקת Argo CD (ודא כי תחליף את המציינים
<>
בהתאם):
- לאחר מכן, שנה את התיקייה לעותק המקומי שלך וצור את מבנה התיקיות (ודא כי תחליף את המציינים
<>
בהתאם):
- העתק את מנגנוני היישום המסופקים לכל רכיב במאגר ה-Starter Kit (תוכל גם להסתכל ולראות איך כל מנגנון מאוגד):
לבסוף, הגש את השינויים ודחוף אל המקור.
לאחר מכן, תיצור את התפריט העליון של היישום ההורה ותאפשר ל- Argo CD לסנכרן את כל יישומי ה-Starter Kit באופן אוטומטי לאשכול DOKS שלך.
שימוש בתבנית היישום של היישום דרך ה-CLI של Argo CD
בסעיף זה, תלמד כיצד להשתמש ב-CLI של argocd
כדי ליצור ולהשתמש בתבנית app of apps
כדי להפעיל את כל רכיבי ה-Starter Kit באשכול DOKS שלך. התמונה למטה ממחישה את המושג העיקרי:
ראשית, עליך להעביר פנים את שרת הראשי של Argo CD על מחשב המקומי שלך בחלון טרמינל נפרד:
השלב הבא הוא לגשת לשרת API של Argo CD כדי לאפשר ל-CLI של argocd
לעבוד. באמצעות חלון טרמינל נוסף, עליך לאמת את הלקוח של argocd
עם מופע השרת שלך של Argo CD:
הפלט נראה דומה ל:
לאחר מכן, אנא הריץ את הפקודה הבאה כדי ליצור את אפליקציית ההורה starter-kit-apps
(ודא שאתה מחליף את המילים המצוינות בתפקידן):
- –dest-namespace argocd \
- –dest-server https://kubernetes.default.svc \
- הפקודה לעיל תיצור אפליקציה חדשה של Argo CD בשם
starter-kit-apps
בשטח השמורargocd
, מוגדרת ל:
לגעת באותו אשכול Kubernetes שבו נתקבל Argo CD, מכיוון שה---dest-server
מוגדר כ-https://kubernetes.default.svc
.
להשתמש במאגר GitHub שמוגדר על ידי הארגומנט --repo
כדי לסנכרן את האשכול שלך.
לסרוק ולהחיל את כל מאפייני האפליקציה שנמצאים בתיקיית clusters/dev/helm
(--path
ארגומנט).
לאחר מכן, עליך לסנכרן את האפליקציה starter-kit-apps
(שים לב ש-Argo CD לא מסנכרן דברים באופן ברירת מחדל אלא אם כן נצוין):
הפלט נראה דומה ל:
לאחר שהפקודה הנ"ל מסתיימת, תראו אפליקציה חדשה בלוח המחוונים הראשי של שרת ה-Argo CD שלכם. אנא פתחו דפדפן אינטרנט ונווטו אל http://localhost:8080. לאחר מכן בחרו בלשונית Applications
, ולחצו על פסיפס ה-starter-kit-apps
(שימו לב לתבנית ה-app of apps
על ידי הצגת גרף ההרכב):
תוכלו גם לבדוק את האפליקציות החדשות דרך CLI:
הפלט דומה למה שבתמונה:
האפליקציה האב starter-kit-apps
תופיע כתואמת אך האפליקציות הבנות יהיו לא תואמות. לאחר מכן, תוכלו לסנכרן הכל באמצעות ממשק האינטרנט או דרך CLI:
פעולת הסנכרון עשויה לקחת זמן להשלמה (אפילו עד 5-10 דקות), תלוי במורכבות ובמספר העצמים של כל האפליקציות המוצגות.
לאחר זמן מה, אנא רשמו שוב את כל האפליקציות:
- הפלט דומה למה שנמצא בתמונה (שימו לב שכל האפליקציות תואמות כעת):
התקנת אפליקציית Velero תיכשל ותישאר במצב SyncError
מכוון שכישלון זה מתוכנן כחלק מתרגול של הקורא להכיר וללמוד כיצד לאבחן בעיות באפליקציות ב-Argo CD. אנא עיין בחלק הנקודות מידה (Hints) למטה כדי לראות כיצד לאבחן בעיות של אפליקציות ב-Argo CD.
הקמת האפליקציה האב נעשית פעם אחת בלבד. בשינויים ב-Git לאחר מכן עבור כל אפליקציה, Argo CD יזהה את השינויים ויחיל את השינויים הנדרשים. Argo CD משתמש במנגנון polling mechanism
כברירת מחדל כדי לזהות שינויים במאגר Git שלך. המרווח הרענון המוגדר כברירת מחדל הוא 3 דקות
. במקום לסמוך על מנגנון זימון, תוכל גם להשתמש ביתרונותו של פקודות האפשרויות של Git. אנא בקר באתר התיעוד הרשמי כדי ללמוד כיצד ליצור ולהגדיר את Argo CD לשימוש ב-webhooks.
Hints: אם מתכוונים, ניתן להגדיר את האפליקציה האב לסנכרן באופן אוטומטי (וגם לאפשר ריפוי עצמי והסרה אוטומטית), אפשר להשתמש בפקודה הבאה (אל תשכח להחליף את המילות מפתח <>
לפי הצורך):
–dest-namespace argocd \
–dest-server https://kubernetes.default.svc \
–sync-policy automated \
–auto-prune \
במקרה של כישלון בסנכרון כלשהו, תוכל תמיד לבדוק את אירועי ה-Kubernetes עבור היישום הרלוונטי (באמצעות argocd app get <application_name>
):
הפלט דומה למשל:
- בשלב הבא, תלמד כיצד להשתמש בתבנית ה-
app of apps
ולבצע את אותם צעדים דרך ממשק משתמש גרפי של Argo CD. - שימוש בתבנית ה-App of Apps דרך ממשק האינטרנט של Argo CD
- במקטע זה, תלמד כיצד להשתמש בממשק האינטרנט של Argo CD כדי ליצור ולהשתמש בתבנית ה-
app of apps
כדי להפעיל את כל רכיבי קיט ההתחלה בקלאסטר DOKS שלך. התמונה למטה ממחישה את הרעיון העיקרי: - כפי שמראה התרשים לעיל, הקמת יישום חדש דרך ממשק האינטרנט דומה מאוד לגרסת ה-CLI. ההבדל היחיד הוא שתעבור בין חלונות/לוחות שונים ותשתמש בפעולות נקודה-לחיצה. מאחורי הקלעים, Argo CD ייצור את ה-CRDs שנדרשים ליישום ויחיל את השינויים לקלאסטר Kubernetes שלך.
- תחילה, אנא פתח דפדפן אינטרנט והתחבר לממשק האינטרנט של קונסולת Argo CD. שם המשתמש המוגדר כברירת מחדל הוא
admin
, והסיסמה המוגדרת כברירת מחדל ניתנת דרך: - ברגע שתתחבר, תופנה לעמוד הלוח של היישומים (בהתקנה חדשה, הלוח ריק). לאחר מכן, לחץ על לחצן
צור יישום
. חלון חדש יופיע שבו יידרשו פרטי היישום: - אנא מלא את כל השדות באופן הולם:
שם היישום
: שם היישום החדש (לדוגמה, starter-kit-apps
).
פרוייקט
: שם הפרויקט שבו היישום משתייך (כאשר משתמשים ב-Argo CD לראשונה, ניתן להשתמש ב-default
).
מדיניות סנכרון
ו־אפשרויות סנכרון
: מגדיר את מדיניות ואפשרויות הסנכרון (לדוגמה, ידני
, אוטומטי
, מספר ניסיונות חוזרים, מרווח בין ניסיונות חוזרים, וכו').
כתובת ה־מאגר מקור
: כתובת URL של מאגר ה-GitHub שלך – לדוגמה, https://github.com/<YOUR_GITHUB_USERNAME>/<YOUR_ARGOCD_GITHUB_REPO_NAME>.git
.
נתיב המקור Path
: נתיב התיקייה במאגר ה-GitHub שבו מאוחסנים רפרזנטציות היישום (לדוגמה, clusters/dev/helm
).
כתובת URL של ה־קלסטר היעד
: קלסטר Kubernetes יעד לסנכרון עם מאגר ה-GitHub שלך (לדוגמה, https://kubernetes.default.svc
עבור הקלסטר המקומי שבו הותקן Argo CD).
ה־מרחב השמות
היעד: מרחב השמות בקלסטר Kubernetes המטרה לשימוש ביישומי Argo CD (argocd
, בדרך כלל).
לאחר מילוי כל פרטי היישום, לחץ על הלחצן צור בחלק העליון. פריט יישום חדש מופיע על עמוד הלוח:
אם תלחץ על כפתור היישום, תוכל לראות את התבנית השל יישומים
, על ידי הסתכלות על גרף ההרכבה:
אם תסתכל על התמונה למעלה, תבחין כי כל היישומים מסומנים כ החוץ_מסנכרן
. השלב הבא הוא להפעיל פעולת סנכרון על היישום האב. לאחר מכן, כל היישומים המשניים ייסנכרנו גם הם. נא ללחוץ על כפתור ה-סנכרן
באריח היישום האב. חלון חדש יופיע בצד הימני (שימו לב שכל היישומים המשניים נבחרים למטה):
השאירו את הערכים ברירת המחדל, ולאחר מכן לחצו על הכפתור לסנכרן
בחלק העליון וצפו כיצד Argo CD משדרג את פעולת הסנכרון לכל היישומים:
אירוע הפירוק של היישום Velero יכשל וישות כתקלה מכוונת במצב שגיאת_סנכרון
כתרגול לקורא להתנסות וללמוד איך לאבחן בעיות ביישומים ב-Argo CD. נא לעיין במקטע רמזים למטה כדי לראות איך לאבחן בעיות ביישומים של Argo CD.
אם הכל מתנהל כראוי, כל היישומים צריכים להציג מסגרת ירוקה והסטטוס צריך להיות בריא
ו- מסונכרן
. תהליך ההפעלה הראשוני הוא פעולה חד פעמית. בשינויים ב-Git לאחר מכן עבור כל יישום, Argo CD יזהה את השינויים ויחדש את השינויים הנדרשים. Argo CD משתמש במנגנון איתור ידני
כברירת מחדל כדי לזהות שינויים במאגר ה-Git שלך. מרווח הרענון ברירת המחדל מוגדר ל־3 דקות
. במקום לסמוך על מנגנון איתור ידני, תוכל גם להשתמש ביכולת של וובהוקים של Git. אנא בקר באתר התיעוד הרשמי כדי ללמוד כיצד ליצור ולהגדיר את Argo CD כך שישתמש ב־וובהוקים.
רמזים:
אם מתכוונים, ניתן להגדיר את היישום האב להיות מסונכרן אוטומטית על ידי הגדרת ערך של שדה
מדיניות סנכרון
ל־אוטומטי
. כדי להפעיל תיקון עצמי וניתור אוטומטי, סמנו את תיבת הסימון משאבי ניתור
ואת תיבת הסימון תיקון עצמי
:
במקרה של כישלון בסנכרון, תמיד ניתן לבדוק את אירועי Kubernetes עבור היישום הרלוונטי. באמצעות ממשק האינטרנט, ניתן לנווט לאריח היישום המושפע:
אז, לחץ על הקישור של ההודעה Sync failed
שסומן בצבע אדום, מתוך המקטע LAST SYNC RESULT
בכותרת עמוד האפליקציה. לחיצה זו תפתח חלון חדש שיציג מידע שימושי אודות למה נכשלה פעולת הסנכרון:
- בקטע הבא, תלמד כיצד לנהל מספר יישויות בבת אחת באמצעות CRD יחיד – ה
ApplicationSet
. - שימוש בסטים של אפליקציות ב-Arco CD
סטים של אפליקציות הוא תכונה נוספת ועוצמתית שמציעה ארקו-סי-די. ה-ApplicationSet Controller הוא פרויקט משנה של ארקו-סי-די, המוסיף אוטומציה של אפליקציות דרך תבניות מוגדרות מראש. תכונה זו עוזרת לך למנוע חזרות במפות היישום שלך (תוך שימוש בעקרון DRY).
ה-ApplicationSet Controller מותקן יחד עם ארקו-סי-די (באותה מרחב שמורות), והוא מייצר באופן אוטומטי אפליקציות ארקו-סי-די בהתבסס על תוכן של משאב מותאם אישית (CR) חדש של ApplicationSet.
הערה:החל מגרסה 2.3.x
של ארקו-סי-די, אין צורך להתקין בנפרד את הApplicationSet Controller
משום שהוא חלק מההתקנה הראשית של ארקו-סי-די. Starter Kit משתמש ב-גרסה >= 2.3.1
, לכן אין צורך לשנות כלום.
הרעיון העיקרי של ApplicationSet
מבוסס על רשימת ערכים הפועלת כמחולל (generator
), ועל תבנית (template
) שמתמלאת על ידי ערכי רשימת הקלט. עבור כל פריט מהרשימה, תבנית אפליקציה חדשה נוצרת בסדר. בגדול, אתה מגדיר CRD של ApplicationSet
ואז מאפשר לו לייצר עבורך כמה CRDs של אפליקציות ArgoCD שתרצה, בהתבסס על ערכי הקלט. כך, במקום ליצור ולהתמודד עם מספר רב של מנפקי אפליקציה
, אתה ניהל את הכל דרך מנפק יחיד
– הApplicationSet
.
הרעיון הזה גם מפשט את ניהול ההגדרות של רב-קלאסטרים
ורב-סביבות
על ידי שימוש בתבניות אפליקציה פרמטריזציה. סטים של אפליקציות כוללים גם מנפקים אחרים, מלבד מנפקי רשימה:
מנפק קלאסטר: משתמש בקלאסטרים המוגדרים על ידי Argo CD כדי ליצור תבניות אפליקציות.
מנפק Git: משתמש בקבצים/תיקיות של גיט ליצירת תבניות אפליקציות.
CRD טיפוסי של ApplicationSet
בשימוש במנפק רשימה
, נראה כמו בדוגמה הבאה:
החלקה של הApplicationSet
לקלאסטר שלך ב־Kubernetes תחשוף שלוש אפליקציות של Argo CD. לדוגמה, אפליקציית הסביבה dev
מוצגת באופן הבא:
המנועים של תבניות הוא כח עוצמתי מאוד בטבעם ומציעים המון אפשרויות. אנא בקר באתר התיעוד הראשי של ApplicationSet כדי ללמוד עוד על התכונה הזו.
הסרת (או מחיקת) התקנים שניהלו על ידי Argo CD מתבצעת על ידי מחיקת המנף התואם ממקור המאגר Git. במקרה של יישום שנוצר באמצעות התבנית של יישום של יישומים
, עליך למחוק את היישום האב רק (באמצעות CLI או ממשק האינטרנט). אז, כל היישומים הילד יימחקו גם כן כחלק מהתהליך.
- כיצד למחוק את היישום האב
starter-kit-apps
(כולל יישומים ילד) באמצעות CLI שלargocd
: - אם ברצונך לוודא שיישומים הילד וכל המשאבים שלהם יימחקו כאשר היישום האב יימחק, אנא וודא שתוסיף את ה-
finalizer
המתאים להגדרת היישום שלך:
Source:
https://www.digitalocean.com/community/developer-center/implementing-gitops-using-argo-cd