Helm Chart چیست؟ (برای تازه واردان به دنیای کوبرنتیز)

helm
Devops

کوبرنتیز بهترین ابزار برای توسعه دهندگان ابری هست اما مکبرنتیز ی

به تنهای قادر به هندل کردن همه چیز نیست

یک دلیل مهم برای اینکه چرا نرم افزارهای متن باز عالی هستند این هست که هر گروه و تیم یا سازمان بزرگ میتونه توسعه اوک محثول کمک کنه 🙂

یکی از اون ابزارها helm chart نام دارد

 

Helm Chart چیست؟

Helm را به عنوان پکیج منیجر برای کوبرنتیز شناخته میشود

Helm یک نرم افزا  متن باز میباشد که توسط DeisLabs منتشر شده است هلم ساخته شده تا شما راحت تر فایل های yaml کوبرنتیزتون رو مدیریت و مستند بکنید

در Helm chart هر چارت میتونه یک یا چند منیفست کوبرنتیز رو مدیریت کرد یا حتی هر چارو توان این رو دارد که چند بچه/child داشته باشه همچنین هر چارتی میتواند وابستگی به یک چارت دیگر داشته باشد

این بدان معنی است که Helm کل درخت وابستگی یک پروژه را نصب می کند اگر دستور install را برای نمودار سطح بالا اجرا کنید. شما فقط یک فرمان برای نصب کل برنامه خود دارید، به جای لیست کردن فایل هایی که باید از طریق kubectl نصب شوند

چارت به شما این قابلیت رو میده که هر فایل منیفستی رو ورژن بندی کنید و هر زمانی که اراده کردید برپردید به ورژن قبلی خودتون همچنین شما دیگر لازم نیست به صورت سنتی همه فایل هارو با kubectl اجرا کنید در هلم چارت هنه این اتفاق ها یا یک خط انجام میشود

همچنین helm chart از روی release های شما نسخه هایی نپه داری میکند در صورتی که بعدن دچار مشکل شدید راحت بتونید کل مسیر و بروزرسانی ها را برگردانید

چرا باید از Helm استفاده کرد

Helm ابزاری است که بسته‌بندی، پیکربندی و استقرار برنامه‌های Kubernetes را با ترکیب فایل‌های پیکربندی شما در یک بسته قابل استفاده مجدد و خودکار می‌کند.

در معماری میکروسرویس، با رشد برنامه، میکروسرویس های بیشتری ایجاد می کنید و مدیریت آن را به طور فزاینده ای دشوار می کند. Kubernetes، یک فناوری ارکستراسیون کانتینر منبع باز، فرآیند را با گروه بندی چندین میکروسرویس در یک استقرار ساده می کند. مدیریت برنامه‌های Kubernetes در طول چرخه عمر توسعه، مجموعه‌ای از چالش‌ها و طاقت فرسا از جمله مدیریت نسخه، تخصیص منابع، به‌روزرسانی، و عقب‌نشینی(رول بک: برگشتن به نسخه قدیمی) را به همراه دارد.

 

Helm یکی از ابزار هایی است که راه‌حل‌های را برای این مشکل ارائه می‌کند و استقرارها را سازگارتر، تکرارپذیرتر و قابل اعتمادتر می‌کند. در این مقاله، در مورد Helm و موارد استفاده آن و همچنین نحوه تصمیم گیری در مورد استفاده از آن برای پروژه های Kubernetes خود خواهید آموخت.

 

تنظیمات(Configs)

این پیکربندی شامل تنظیمات برنامه\کانتینر است که معمولاً در یک فایل YAML ذخیره می‌کنید. منابع در کلاستر Kubernetes بر اساس این مقادیر مستقر می شوند.

ورژن بندی(Release)

یک نمونه در حال اجرا از نمودار به عنوان Release شناخته می شود. هنگامی که فرمان ““Helm install“` را اجرا می کنید، فایل های پیکربندی و چارت را می کشد و در کلاستر Kubernetes آن را مستقر می کند.

 

معماری(Architecture)

اکنون که این مفاهیم Helm را درک کردید، در اینجا نگاهی به معماری Helm داریم. معماری Helm دو جزء اصلی دارد: مشتری(Client) و کتابخانه(Library).

کلاینت Helm یک ابزار خط فرمان برای کاربران نهایی یا همان کسی که هلم را اجرا میکند است و این قابلیت ها مانند کنترل توسعه نمودار محلی و مدیریت مخازن و انتشارات است. درست مانند استفاده از mysqld پایگاه داده MySQL برای اجرای دستورات MySQL، شما از کلاینت Helm برای اجرای دستورات Helm استفاده می کنید.

 

کتابخانه هلم تمام کارهای سنگین را انجام می دهد. این شامل کد واقعی برای انجام عملیات مشخص شده در فرمان Helm است. ترکیبی از فایل های پیکربندی و نمودار برای ایجاد هر نسخه ای توسط کتابخانه Helm مدیریت می شود.

 

معماری Helm بین نسخه های 2 و 3 به طور قابل توجهی بهبود یافته است. نسخه 2 از یک سرور Tiller برای میانجیگری بین کلاینت Helm و سرور API Kubernetes استفاده می کند. تمام منابع ایجاد شده با استفاده از Helm را پیگیری می کرد. به نفع معماری فقط مشتری، نسخه 3 سرور Tiller را حذف کرد، در عوض از اتصال مستقیم API برای تعامل با سرور Kubernetes API استفاده کرد.

 

هلم چگونه کار می کند

کتابخانه برنامه Helm از نمودارها برای تعریف، ایجاد، نصب و ارتقای برنامه های Kubernetes استفاده می کند. نمودارهای هلم به شما امکان می دهد مانیفست های Kubernetes را بدون استفاده از رابط خط فرمان Kubernetes (CLI) یا به خاطر سپردن دستورات پیچیده Kubernetes برای کنترل خوشه مدیریت کنید.

یک سناریوی عملی را در نظر بگیرید که در آن هلم مفید است. فرض کنید می خواهید برنامه خود را در یک محیط تولیدی با ده کپی مستقر کنید. شما این را در فایل YAML استقرار برای برنامه مشخص کرده و با استفاده از دستور kubectl، استقرار را اجرا کنید.

اکنون همان برنامه را در یک محیط استیجینگ اجرا کنید. فرض کنید که در مرحله بندی به سه نسخه تکراری نیاز دارید و یک بیلد برنامه داخلی را در محیط استیجینگ اجرا خواهید کرد. برای انجام این کار، تعداد کپی ها و تگ تصویر داکر را در فایل YAML استقرار به روز کنید و سپس از آن در خوشه مرحله بندی Kubernetes استفاده کنید.

همانطور که برنامه شما پیچیده تر می شود، تعداد فایل های YAML افزایش می یابد. در نهایت، فیلدهای قابل تنظیم در فایل YAML نیز افزایش می یابد. به زودی، به‌روزرسانی بسیاری از فایل‌های YAML برای استقرار یک برنامه در محیط‌های مختلف دشوار می‌شود.

با استفاده از Helm می توانید فیلدها را بسته به محیط پارامتری کنید. در مثال قبلی، به جای استفاده از مقدار ثابت برای کپی ها و تصاویر داکر، می توانید مقدار این فیلدها را از فایل دیگری بگیرید. این فایل values.yaml نام دارد.

فایل Values.yaml

اکنون می توانید یک فایل مقادیر برای هر محیط با مقادیر مناسب برای هر محیط نگهداری کنید. Helm به شما کمک می کند مقادیر فیلد قابل تنظیم را از پیکربندی واقعی YAML جدا کنید.

 

 

استفاده از Helm برای استقرار و بازگشت

هنگامی که نمودار Helm ایجاد شد، استقرار یک برنامه آسان است. برای استقرار تمام منابع Kubernetes، فقط باید چند دستور Helm را اجرا کنید.

یک مثال عملی را در نظر بگیرید. شما برنامه خود را در یک خوشه Kubernetes اجرا می کنید که با استفاده از نمودار Helm مستقر شده است. اکنون می خواهید یک راه حل نظارتی مانند Prometheus را برای برنامه خود پیکربندی کنید. شما دو گزینه دارید:

همه استقرارها و خدمات را برای برنامه Prometheus از ابتدا ایجاد کنید. این یک کار وقت گیر است.
نمودار Prometheus را در Artifact Hub جستجو کنید، پیکربندی را با توجه به نیاز خود به روز کنید و آن را نصب کنید. این فرآیند مانند استفاده از تصاویر داکر موجود از داکر هاب در دستور FROM یک Dockerfile است.

شما می توانید هر نمودار Helm را با استفاده از این مراحل نصب کنید:

مخزن Helm را به صورت محلی ثبت کنید تا به کتابخانه Helm کمک کنید مکان را برای بیرون کشیدن نمودار Helm شناسایی کند.
تمام نمودارهای Helm موجود در مخزن پیکربندی شده را واکشی کنید.
فایل values.yaml را (در صورت نیاز) به روز کنید و با استفاده از فرمان نصب Helm نمودار خاصی را نصب کنید.

یکی دیگر از مزایای استفاده از Helm این است که فرآیند برگشت را آسان می کند.

Helm در سطح برنامه کار می کند، به این معنی که وضعیتی را برای یک برنامه در حال اجرا حفظ می کند که به عنوان انتشار نیز شناخته می شود. فرض کنید نسخه جدیدی از برنامه خود را اجرا کرده اید که مطابق انتظار کار نمی کند. با استفاده از فرمان بازگشت به عقب، می توانید به نسخه پایدار قبلی برگردید. این دستور همه استقرارها، خدمات و منابع Kubernetes را به عقب برمی گرداند.

بدون هلم، عقب نشینی دشوار خواهد بود. شما باید برای هر منبع Kubernetes یک بازگشت انجام دهید، که می تواند مدیریت برنامه های پیچیده را دشوار کند.

 

هلم و CI/CD

Helm نقش حیاتی در ساخت و آزمایش برنامه های Kubernetes در خط لوله یکپارچه سازی و تحویل پیوسته (CI/CD) آسان تر می کند. می تواند به طور خودکار یک برنامه را در هر محیطی مستقر کند و زمان ساخت را کاهش دهد. برای اینکه در محیط های ساخت و آزمایش خود انعطاف بیشتری داشته باشید، می توانید از یک رانر خود میزبان برای خطوط لوله خود استفاده کنید.

دونده های خود میزبان CircleCI به شما امکان می دهند کارهای CI/CD را در محیطی که مدیریت می کنید اجرا کنید. این محیط می تواند یک ماشین مجازی مستقل یا یک خوشه کامل مانند Kubernetes باشد. با Container Runer، می‌توانید از نمودارهای Helm برای استقرار بارهای کاری کانتینری در یک خوشه خصوصی Kubernetes استفاده کنید و محیط خود را برای پاسخگویی به هر سطحی از تقاضا مقیاس‌بندی کنید.

 

مزایا و معایب استفاده از Helm

 

سناریوهایی وجود دارد که استفاده از Helm مفید است – و سناریوهایی وجود دارد که Helm مناسب مورد استفاده شما نیست. این بخش موارد استفاده را بررسی می کند که در آن Helm مفید است و مفید نیست و چند نشانه را برجسته می کند که نشان می دهد سازمان شما از استفاده از Helm سود می برد.

 

 

  • نیاز به یک منبع فارسی زبان، زیر ساخت های فضای ابری برای اموزش و یادگیری تبدیل به یک ارزوی محال شده بود
    ابرفانت از دل این نیاز به روزگار نو سلام کرد
    یادگیری و اموزش شالوده ابرفانت هست
    ابرفانت فقط ،یک پلتفرم سایت ساز یا زیرساخت رایگانی برای دیگران نیست
    پایگاه دانش جامع ابرفانت ماشین تازه نفس رویای های من بوده
  • دسته‌بندی: Devops, kubernetes, آموزش
بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Data Storafe solutions image
Devops
مقایسه نرم افزارهای ذخیره‌سازی EBS, Swift, Longhorn, Rook Ceph

  مقایسه نرم افزارهای ذخیره‌سازی Swift ,RookCeph, Longhorn، و OpenEBS همگی راه‌حل‌های orchestration ذخیره‌سازی کانتینری محبوب برای Kubernetes هستند. همه آنها آسان برای استفاده، قابل مقیاس‌پذیری و قابل اعتماد هستند. با این حال، برخی از تفاوت‌های کلیدی بین آنها وجود دارد.که در این مقاله سعی میکنیم به مهم‌ترین ویژگی‌های آن‌‌ها …

بیمه تامین اجتماعی
آموزش
آموزش رد کردن بیمه و مالیات برای استارت اپ ها

بیمه استارتاپ نداشتن بیمه تکمیلی یکی از مشکلات مهمی است که استارتاپ‌‌ها و فریلنسرها با آن مواجه میشوند.‌ بیمه در استارت اپ برای کارکنان بسیار حائز اهمیت است. فرقی نمیکند که شما کارمند باشید یا کارفرما، بالاخره روزی به بیمه تکمیلی نیاز پیدا خواهید کرد.‌ بیمه تکمیلی جزء بهترین گزینه‌‌‌ها …

What Is Load Balancing? - Blog - GB Cloud
Devops
توزیع کننده ‌بار (Load Balancer) چیست و چه کاریردهایی دارد؟

توزیع کننده ‌بار (Load Balancer) به عنوان پروکسی ترافیک نت کار می­کند. به طوری­که ترافیک شبکه یا برنامه را روی نقاط انتهایی (endpoints) تعدادی از سرورها، توزیع می­نماید. پروکسی متعادل کننده بار برای توزیع ظرفیت در زمان اوج ترافیک و بالا بردن قابلیت اطمینان برنامه ها (reliability) به کار می­رود. …