آموزش ساخت و خودکار سازی سرویس ها در کوبرنتیز با Argo-GitOps-CD

توضیحات

آرگو سی دی چیست؟

Argo CD یک ابزار استقرار مداوم (CD) بومی Kubernetes است. بر خلاف ابزارهای CD خارجی که فقط استقرار مبتنی بر push را فعال می کنند، Argo CD می تواند کدهای به روز شده را از مخازن Git دانلود و مستقیماً در منابع Kubernetes مستقر کند. این برنامه توسعه دهندگان را قادر می سازد تا پیکربندی زیرساخت و به روز رسانی برنامه ها را در یک سیستم مدیریت کنند.

Argo CD ویژگی ها و قابلیت های کلیدی زیر را ارائه می دهد:

استقرار دستی یا خودکار برنامه ها در یک کلاستر Kubernetes.

  • همگام سازی خودکار وضعیت برنامه با نسخه فعلی پیکربندی اعلامی.
  • رابط کاربری وب و رابط خط فرمان (CLI).
  • توانایی تجسم مسائل استقرار، شناسایی و اصلاح دریفت پیکربندی.
  • کنترل دسترسی مبتنی بر نقش (RBAC) که امکان مدیریت چند کلاستری را فراهم می کند.
  • Single Sign-on (SSO) با ارائه دهندگانی مانند GitLab، GitHub، Microsoft، OAuth2، OIDC، LinkedIn، LDAP و SAML 2.0
  • پشتیبانی از webhook هایی که اقدامات را در GitLab، GitHub و BitBucket راه اندازی می کنند. 
 

GitOps با Argo CD

GitOps یک روش مهندسی نرم افزار است که از یک مخزن Git به عنوان منبع حقیقت خود استفاده می کند. تیم ها پیکربندی های اعلامی را در Git انجام می دهند و این تنظیمات برای ایجاد محیط های مورد نیاز برای فرآیند تحویل مداوم استفاده می شود. هیچ تنظیم دستی محیط ها و استفاده از اسکریپت های مستقل وجود ندارد – همه چیز از طریق مخزن Git تعریف می شود. بخش اساسی فرآیند GitOps یک pull request است. نسخه‌های جدید یک پیکربندی از طریق pull request  معرفی می‌شوند، با شاخه اصلی در مخزن Git ادغام می‌شوند و سپس نسخه جدید به‌طور خودکار مستقر می‌شود. مخزن Git شامل یک رکورد کامل از تمام تغییرات، از جمله تمام جزئیات محیط در هر مرحله از فرآیند است.

Argo CD مراحل آخر فرآیند GitOps را مدیریت می کند و اطمینان می دهد که پیکربندی های جدید به درستی در یک کلاسار Kubernetes مستقر شده اند.

در سطح بالا، فرآیند Argo CD به این صورت عمل می کند:

 

یک توسعه دهنده تغییراتی را در یک برنامه ایجاد می کند و نسخه جدیدی از تعاریف منابع Kubernetes را به یک مخزن Git منتقل می کند.

ادغام پیوسته فعال می شود و در نتیجه یک تصویر کانتینر جدید در یک رجیستری ذخیره می شود.

یک توسعه دهنده یک درخواست pull request  صادر می کند، مانیفست های Kubernetes را تغییر می دهد، که به صورت دستی یا خودکار ایجاد می شوند.

درخواست pull request بررسی می شود و تغییرات در شاخه اصلی ادغام می شوند.

این یک webhook را راه‌اندازی می‌کند که به Argo CD می‌گوید یک تغییر ایجاد شده است.

Argo CD مخزن را شبیه سازی می کند و وضعیت برنامه را با وضعیت فعلی کلاستر Kubernetes مقایسه می کند.

تغییرات مورد نیاز را در پیکربندی کلاستر اعمال می کند.

Kubernetes از کنترل‌کننده‌های خود برای تطبیق تغییرات مورد نیاز برای کلاستربندی منابع استفاده می‌کند تا زمانی که به پیکربندی مورد نظر دست یابد.

Argo CD پیشرفت را نظارت می کند و وقتی کلاستر Kubernetes آماده شد، گزارش می دهد که برنامه هماهنگ است.

ArgoCD همچنین در جهت دیگری کار می کند، تغییرات در کلاستر Kubernetes را زیر نظر می گیرد و اگر با پیکربندی فعلی در Git مطابقت نداشته باشد، آنها را کنار می گذارد.

آرگو سی دی چگونه آن را ایجاد می کند؟

GitOps agent  :  آرگو سی دی مسئول pull کد به روز شده از مخازن Git و استقرار مستقیم آن در منابع Kubernetes است. هم پیکربندی زیرساخت و هم به روز رسانی برنامه ها را در یک سیستم مدیریت می کند.

Custom Resource Definitions (CRD) :

Argo CD در فضای نام خود در یک کلاستر Kubernetes عمل می کند. CRD های خود را فراهم می کند که API Kubernetes را گسترش می دهد و امکان تعریف حالت برنامه مورد نظر را به روشی اعلامی می دهد. بر اساس دستورالعمل های موجود در یک مخزن Git یا یک مخزن Helm، Argo CD از CRD های خود برای پیاده سازی تغییرات در فضای نام اختصاصی خود استفاده می کند.

CLI :

Argo CD یک CLI قدرتمند ارائه می دهد که به شما امکان می دهد تعاریف منابع YAML را با چند دستور ساده ایجاد کنید. به عنوان مثال، دستور ایجاد برنامه Argo CD به شما امکان می دهد چند falg را مشخص کنید و یک شی Application معتبر ایجاد کنید که برنامه شما را توصیف کند، بدون نیاز به نوشتن YAML به صورت دستی.

User Interface :

Argo CD از این جهت منحصر به فرد است که یک رابط کاربری مبتنی بر وب را ارائه می دهد که به شما امکان می دهد همان کار را انجام دهید، یک برنامه کاربردی تعریف کنید و از Argo CD بخواهید که تنظیمات YAML مربوطه را ایجاد کند. همچنین به شما امکان می دهد

Multi-tenancy:

Argo CD دارای پشتیبانی قوی برای تیم های متعددی است که روی پروژه های مختلف در یک محیط Kubernetes کار می کنند. Argo CD CRD را می توان فقط به مخازن منبع خواندنی که به یک پروژه خاص تعلق دارند محدود کرد و می توان آن را برای استقرار برنامه ها در یک خوشه و فضای نام خاص تنظیم کرد. هر نمونه CRD همچنین می تواند تنظیمات کنترل دسترسی مبتنی بر نقش (RBAC) خود را داشته باشد.

Leveraging existing tools :

بسیاری از سازمان‌ها قبلاً روی پیکربندی‌های اعلامی مبتنی بر YAML، Helm charts، Kustomize یا سیستم‌های دیگر سرمایه‌گذاری کرده‌اند. آرگو سی دی قصد دارد به جای جایگزین کردن آنها، از این سرمایه گذاری های موجود استفاده کند. می تواند از هر یک از این فرمت ها برای ایجاد خودکار تعاریف CRD مربوطه استفاده کند.

عنوان فصل نمونه

زیرعنوان نمونه برای این فصل

معرفی دوره ویدئو

02:37

آرگو سی دی چیست؟ ویدئو

05:07

نصب کوبرنتیز با kubespray ویدئو

14:27

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

اضافه کردن نود جدید با kubespray ویدئو

02:25

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

حذف کردن نود با kubespray ویدئو

00:58

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

آبدیت کردن کلاستر-کنترل پلن با kubespray ویدئو

02:51

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

آبدیت کردن کلاستر-ورکر با kubespray ویدئو

02:05

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

نصب ArgoCD با استفاده از Helm Chart ویدئو

09:22

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

ایجاد اولین برنامه تستی در ArgoCD ویدئو

12:04

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

اضافه کردن یک پروژه واقعی به ArgoCD ویدئو

23:04

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

تنظیمات Ci/Cd پروژه در github ویدئو

27:30

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

اضاقه کردن action-runner های github به صورت selfhost ویدئو

14:18

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

فعال کردن sync خودکار ویدئو

08:58

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

نکات پایانی ویدئو

05:38

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.

فایل های دوره فایل های ضمیمه

توضیح کوتاه برای درس

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.
پرسش و پاسخ

زیرعنوان نمونه برای این فصل

گروه پشتیبانی تلگرام

توضیح کوتاه برای درس

خصوصی
این درس خصوصی است. برای مشاهده باید دوره را خریداری کنید.
نظرات (0)

نقد و بررسی‌ها

هنوز بررسی‌ای ثبت نشده است.

.فقط مشتریانی که این محصول را خریداری کرده اند و وارد سیستم شده اند میتوانند برای این محصول دیدگاه(نظر) ارسال کنند.