צינורות CI/CD עבור Kubernetes באמצעות GitLab CI

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

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

דרישות מוקדמות

לפני שתתחיל להגדיר את צינור ה-CI/CD שלך, ודא שהדרישות הבאות מתקיימות:

  • חשבון GitLab: גישה למאגר GitLab שבו יוגדר צינור ה-CI/CD.
  • קלאסטר קוברנטיס: קלאסטר קוברנטיס קיים כמו מיניקיוב (לבדיקות מקומיות) או קלאסטרים מנוהלים כמו מנוע קוברנטיס של גוגל (GKE), אמזון EKS או אזור AKS.
  • kubectl: כלי השורת פקודה של קוברנטיס חייב להיות מותקן ומוגדר כדי לאינטראקציה עם הקלאסטר.
  • Helm (אופציונלי): מנהל החבילות של קוברנטיס לפריסה וניהול אפליקציות.
  • GitLab Runner: ודא ש-GitLab Runner מותקן ורשום בפרויקט שלך לצורך ביצוע עבודות CI/CD.
  • דוקר: נדרש לבניית ודחיפת תמונות מיכלים לרשת מיכלים.

הגדרת אינטגרציה של קוברנטיס עם GitLab

חיבור קלאסטר קוברנטיס

שילוב Kubernetes עם GitLab מאפשר הפצה חלקה וניהול משאבים ישירות מהצינור. עקוב אחר השלבים הבאים:

  1. עבור ללוח המחוונים של פרויקט GitLab שלך.
  2. נווט ל תשתיות > אשכולות Kubernetes.
  3. לחץ על הוסף אשכול Kubernetes והתחבר לאשכול קיים או צור אחד חדש באמצעות ספקי שירות בענן.
  4. הקצה הרשאות מתאימות ל-GitLab באמצעות בקרת גישה בהתבסס על תפקידים (RBAC).

מkonfigurasi RBAC

RBAC מגדיר הרשאות גישה עבור משאבי Kubernetes. להלן דוגמה של קובץ YAML להגדרת RBAC:

YAML

 

החל את ההגדרה

החל את קובץ ה-YAML באמצעות kubectl:

YAML

 

צור Token לאימות

חלץ את טוקן חשבון השירות הנדרש עבור GitLab:

YAML

 

הדבק את הטוקן הזה בהגדרות התצורה של Kubernetes של GitLab.

מkonfigurasi צינור CI/CD של GitLab

הגדר .gitlab-ci.yml

קובץ ההגדרה של GitLab CI מגדיר שלבי צינור, משתנים, ופקודות. להלן דוגמה להגדרה:

YAML

 

הסבר על ההגדרה 

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

ניהול סודות

GitLab CI תומך בניהול סודות מאובטח באמצעות משתנים:

  1. נווט אל הגדרות > CI/CD > משתנים.
  2. הוסף משתנים נדרשים כמו KUBE_CONFIG, CI_REGISTRY_USER, ו־CI_REGISTRY_PASSWORD.

קידוד של kubeconfig לפני הוספתו כמשתנה:

YAML

 

הוסף את התוצאה כ־KUBE_CONFIG ב-GitLab.

איחסון Helm

Helm מפשט את האיחסון של Kubernetes עם תרשימים שניתנים לשימוש מחדש. דוגמה לתצורת Helm:

YAML

 

הוסף פקודות Helm לצינור:

YAML

 

כלי ניטור ואיתור באגים

ניטור מעמד הצינור ב-GitLab תחת CI/CD > צינורות. השתמש בכלים כגון:

  • Prometheus ו-Grafana: למדידת וויזואליזציה.
  • לוח בקרת Kubernetes: ניהול אשכול.
  • kubectl logs: קבלת יומני התקן.
YAML

 

מסקנה

מאמר זה מתאר תצורת צינורות CI/CD עבור Kubernetes עם GitLab CI. זה כולל דרישות מוקדמות, הגדרות YAML, ניהול סודות, התקנות של Helm, וכלים לניטור. עם תצורה זו, מפתחים יכולים לבנות, לבדוק, ולהפיץ אפליקציות מבודדות ביעילות ובאמינות.

Source:
https://dzone.com/articles/cicd-pipelines-for-kubernetes-using-gitlab-ci