مدیریت پکها
مقدمه
چارت چیست؟
مفهوم چارت در سامانهی کوبیت همان چارت هلم (Helm Chart) است و بهصورت خاص نسخههای ویرایششده و مناسبسازیشده از هلم چارت را که در UI کوبیت استفاده میشود چارت میگوییم.
هلم چارت
مجموعهای از فایلهای templateها (manifestهای کوبرنتیز) است که برای راهاندازی خودکار یک سامانه در کوبرنتیز آماده شدهاند. و شامل فایلهای موردنیاز کوبرنتیز بههمراه فایلهایی است که در نصب، پیکربندی و استفاده آن اپلیکیشن به کار میروند.
نسخهی نصبشدهی چارت در کوبرنتیز را «release» آن چارت مینامند.
پک چیست؟
شما در هنگام نصب پک در اصل نسخههای نصبشده (release) از چارتها را ایجاد میکنید. سامانهی کوبیت تنظیمات این نسخههای نصبشده را به شکل یک Pack (یک Custom Resource در کوبرنتیز) نگهداری کرده و و مدیریت آنها را در کوبرنتیز به عهده میگیرد.
وضعیت پک
هر پک بر اساس شرایط خود میتواند یکی از حالتهای زیر را داشته باشد:
-
مشکل در ایجاد (Apply Failed): اعمال (apply) این پک در kubernetes با خطا مواجه شده است. در این حالت بهصورت خودکار برای اعمال مجدد تلاش میشود.
-
ایجاد شده (Applied): این پک در k8s اعمال شده است، (اعمال شدن پک لزوماً بهمعنای اجرای صحیح آن نیست)
-
در حال حذف (Removing): پک در حال حذف از k8s میباشد. معمولاً این وضعیت تا stop شدن کامل workloadها طول میکشد ولی طولانی نخواهد بود.
-
مشکل در حذف (Remove Failed): حذف این pack از k8s با خطا مواجه شده است. در این حالت بهصورت خودکار برای حذف تلاش میشود.
-
حذف شده (Removed): این pack خارج از کوبیت از k8s حذف شده است و عملاً وجود ندارد. تنها عملیاتی که روی چنین packی میتوان انجام داد حذف آن است.
-
نامعتبر (Invalid): نسخهی موجود از pack معتبر نیست (مثلاً مقادیر required در آن وجود ندارند). این حالت معمولاً وقتی رخ میدهد که خود pack یا (چارت موجود) تغییر کرده است و validation فیلدها تغییر کرده است.
نصب پک
نصب پک در کوبیت به سه روش قابل انجام است.
- نصب مستقیم از طریق ویراشگر
- نصب از طریق انتخاب چارت آماده که به دو صورت زیر میتواند باشد:
- اعمال تنظیمات از طریق فرم طراحی شده
- کانفیگ کردن از طریق ویرایشگر YAML :::
نصب از طریق انتخاب چارت های آماده
ایجاد یک پک جدید در سازمان، از طریق فرمها و ویرایشگر YAML انجام میشود که توسط تیم کوبیت آماده شده و دارای مراحل زیر است:
- از منوی کوبچی، وارد پروژهی مدنظر شوید و بر روی دکمهی «نصب پک» کلیک کنید.
- چارت مورد نظر را از لیست چارتها انتخاب کنید.
- بعد از انتخاب چارت به صفحهی تنظیمات اولیه پک میروید که شامل تب های زیر است:
- تب فرم: در این تب شما میتوانید نام پک، فضای نام، نسخه و سایر تنظیمات اولیه را از طریق فرم وارد کنید.
- تب ویرایشگر YAML: در این تب میتوانید تنظیمات اولیه را از طریق ویرایشگر YAML وارد کنید.
- تب فرم و YAML به طور کامل با هم همگام (Sync) هستند و میتوان به صورت ترکیبی از آنها استفاده کرد.
- اگر قصد استفاده از فضای نام جدید را دارید، از دکمهی «ایجاد فضای نام جدید» استفاده کنید.
- بعد از پر کردن فرم (یا کامل کردن فایل YAML) بر روی دکمه «نصب پک» کلیک کنید.
اگر نصب پک با موفقیت انجام شود، پک ایجادشده به لیست پکهای پروژه اضافه میشود.
نصب با YAML
با توجه به اینکه همهی چارتها دارای فرم نیستند،امکان نصب هر چارتی با استفاده از نوشتن YAML مربوطه در کوبیت وجود دارد. بدین منظور فایل YAML پک را طبق الگوی زیر میتوانید ایجاد کنید. برای نصب با YAML باید
- از منوی کوبچی، وارد پروژهی مدنظر شوید و بر روی دکمهی «نصب پک» کلیک کنید.
- گزینهی «نصب پک با ویرایشگر» را انتخاب کنید.
- اگر فضای نام جدیدی میخواهید، در این قسمت میتوانید فضای نام (Namespace) مدنظرتان را ایجاد کنید.
- در ویرایشگر نمایش داده شده YAML پک خود را وارد کنید.
- برای راحتتر شدن کار ساختار کلی پک بهصورت آماده در آن قسمت به شما نمایش داده میشود.
- در مقابل namespace باید نام فضای نام خود را وارد کنید، امکان تکمیل خودکار هم به شما داده میشود.
با استفاده از تب «قالب هلم» میتوانید فایلهای نهایی ایجاد شده توسط تنظیماتی که اعمال کردید را مشاهده کنید.
ویرایش پک
ویرایش پک در UI کوبیت به دو طریق امکانپذیر است. از طریق پیکربندی فرم و همچنین از طریق ویرایش YAML پک میتوان تغییرات موردنظر را در پک ایجاد کرد. برای ویرایش پک به تب «پیکربندی» آن پک بروید. بعد از کلیک کردن روی تب پیکربندی، سایر تبهای مربوط به پیکربندی پک نیز نمایان میشوند.
ویرایش YAML
در این نوع از ویرایش پک، شما همهی پارامترهای پک را میتوانید تغییر دهید و تغییرات پیشرفتهتر و پیچیدهتری را میتوان انجام داد. ضمناً تعریف متغیر (vars) هم از این طریق امکانپذیر است.
ویرایش فرم
این نوع ویرایش برای تغییرات پرکاربرد و معمول استفاده میشود و تنها برخی از پارامترهای پک را میتوان تغییر داد. بدین منظور
- به گزینهی پیکربندی در تب ویرایش پک موردنظر بروید.
- مقادیر موردنظر خود را تغییر دهید.
- دکمه بهروزرسانی پک را بزنید.
در صورت موفقیتآمیز بودن تغییرات شما در پک ثبت شده و البته برای تغییر واقعی در کلاستر مدتی زمان لازم است.
مشاهده هلم تمپلیت و هلم دیف
پیش از اعمال تغییرات و نصب یا بهروزرسانی پک، بهتر است از تغییراتی که در تمپلیت هلم ایجاد میشود مطلع شوید تا تغییر ناخواستهای که تاثیرات زیادی دارد ایجاد نکرده باشید. بدین منظور میتوانید از تب ویرایش گزینه «قالب هلم» را انتخاب کنید تا چیزی را که در حال اعمال آن هستید، ببینید. همچنین برای مشاهده تغییراتی که نسبت به نسخه جاری پک دارید نیز میتوانید از گزینهی «تغییرات هلم» استفاده کنید.
مشاهده تغییرات پک نسبت به Gitops
برای مشاهده تفاوت فایل YAML جاری و فایلی که در gitops متناظر با آن پک وجود دارد، کافی است گزینه اختلاف با گیت را در تب ویرایش انتخاب کنید. در این صفحه می توانید به صورت پشت سر هم تغییرات را ببینید. همچنین همه تغییرات گیت را در نسخه جاری اعمال کنید.
کامیت تغییرات پک در Gitops
در هنگام بهروزرسانی پک، اگر تنظیمات CICD پک را انجام داده باشید (مستندات تنظیم Gitops و CICD)، دیالوگی میآید تا تغییراتی که در پک انجام میدهید در مخزن گیت تنظیمشدهی آن پک کامیت شود.
شما میتوانید متن پیام کامیت را هم در همان دیالوگ تعیین کنید.
اگر تمایل دارید که تغییرات کامیت نشود کافی است که تیک «کامیت تغییرات در مخزن گیت» را بردارید. در این صورت پس از این تغییرات گیت نیز در این پک اعمال نمیشود.
اگر پک در حالتی باشد که تغییرات کامیت نشده داشته باشد شما میتوانید بافشردن دکمه «کامیت تغییرات در گیت»، وضعیت جاری پک را در گیت کامیت کنید. در این صورت دوباره تغییرات گیت در این پک اعمال میشود.
برای رفع این هشدار ۳ راه وجود دارد:
- یا آنچه در گیت است را در کوبیت باید اعمال کرد.
- یا آنچه در کوبیت است را باید در گیت اعمال کرد.
- یا ترکیبی از این دو را ایجاد کرد و در هر دو اعمال کرد.
صفحهی پک در کوبیت
با انتخاب هر پک در لیست پکهای یک پروژه به صفحهی خاص آن پک وارد میشویم. این صفحه دارای اطلاعات مختلفی در مورد پکهاست که بهصورت تبهایی در آن تعبیه شده است.
اطلاعات کلی
در تب اول این صفحه اطلاعات کلی شامل نام و فضای نام و چارت آن پک آمده است. در ادامه لیست ورکلودها و پادهای آن پک و اطلاعات خلاصهای از هر کدام مشاهده میشود.
عملیات مهم روی پک
-
راهاندازی دوباره پک
با فشردن دکمهی «راهاندازی دوباره پک»، همهی ورکلودهای پک دوباره راه انداخته میشوند و نسخهی موجود آنها در کلاستر از بین میرود.
-
نصب دوبارهی پک
انتخاب «نصب دوباره پک» باعث ایجاد دوبارهی پک و بهروزرسانی مشخصات پک از روی چارت هلم میشود. با این کار تغییرات چارت و ویژگیهای تنظیمی در کوبیت در کلاستر اعمال میشود.
-
تازهسازی اطلاعات پک
با فشردن دکمهی «همگامسازی پک» اطلاعات پک را بر اساس دادهها و وضعیت پک در کلاستر بهروز میکند
-
تازهسازی اطلاعات ورکلودها
با فشردن دکمهی «تازهسازی» در بالای لیست ورکلودها اطلاعات نمایش دادهشده در جدول ورکلودها بهروزرسانی میشود.
-
راهاندازی مجدد یک ورکلود
با انتخاب عملیات راهاندازی در هر سطر از جدول ورکلودها،آن ورکلود با مدیریت کوبرنتیز دوباره راهاندازی میشود. و نمونههای جدید جای نسخهی موجود آن را میگیرد.
مشاهدهی لاگ کانتینرها
در تب دیگر صفحه پک، لاگ همهی کانتینرهای این پک بهصورت یکجا نمایش داده میشود. همچنین لیست کانتینرها بهتفکیک ورکلود نمایش داده میشود که بهازای هر کانتینر میتوانید لاگ آن را بهصورت مجزا مشاهده کنید.
گزارشهای مانیتورینگ
در تب مانیتورینگ در صفحهی پک و پروژه میزان مصرف جاری منابع بهصورت درصد نمایش داده میشود. همچنین نمودار در طی زمان این منابع نیز در دسترس است. لینکهای دیگری در این صفحه تعبیه شده که بهراحتی به گزارشهای مفصلتر مانیتورینگ خاص این پک دسترسی داشته باشید.
هشدارها
بر اساس تنظیمات در سامانه هشدارها، لیستی از هشدارها در هر لحظه وجود دارد که در تب هشدارها می توانید هشدارهای مربوط به این پک یا پروژه را مشاهده کنید.