مدیریت پک‌ها

مقدمه

چارت چیست؟

مفهوم چارت در سامانه‌ی کوبیت همان چارت هلم (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 فیلدها تغییر کرده است.

نصب پک

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

ویرایش پک

ویرایش پک در UI کوبیت به دو طریق امکان‌پذیر است. از طریق پیکربندی فرم و همچنین از طریق ویرایش YAML پک می‌توان تغییرات موردنظر را در پک ایجاد کرد. برای ویرایش پک به تب «پیکربندی» آن پک بروید. بعد از کلیک کردن روی تب پیکربندی، سایر تب‌های مربوط به پیکربندی پک نیز نمایان می‌شوند.

ویرایش YAML

در این نوع از ویرایش پک، شما همه‌ی پارامترهای پک را می‌توانید تغییر دهید و تغییرات پیشرفته‌تر و پیچیده‌تری را می‌توان انجام داد. ضمناً تعریف متغیر (vars) هم از این طریق امکان‌پذیر است.

ویرایش فرم

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

  • به گزینه‌ی پیکربندی در تب ویرایش پک موردنظر بروید.
  • مقادیر موردنظر خود را تغییر دهید.
  • دکمه به‌روزرسانی پک را بزنید.

در صورت موفقیت‌آمیز بودن تغییرات شما در پک ثبت شده و البته برای تغییر واقعی در کلاستر مدتی زمان لازم است.

مشاهده هلم تمپلیت و هلم دیف

پیش از اعمال تغییرات و نصب یا به‌روزرسانی پک، بهتر است از تغییراتی که در تمپلیت هلم ایجاد می‌شود مطلع شوید تا تغییر ناخواسته‌ای که تاثیرات زیادی دارد ایجاد نکرده باشید. بدین منظور می‌توانید از تب ویرایش گزینه «قالب هلم» را انتخاب کنید تا چیزی را که در حال اعمال آن هستید، ببینید. همچنین برای مشاهده تغییراتی که نسبت به نسخه جاری پک دارید نیز می‌توانید از گزینه‌ی «تغییرات هلم» استفاده کنید.

مشاهده تغییرات پک نسبت به Gitops

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

کامیت تغییرات پک در Gitops

در هنگام به‌روزرسانی پک، اگر تنظیمات CICD پک را انجام داده باشید (مستندات تنظیم Gitops و CICD)، دیالوگی می‌آید تا تغییراتی که در پک انجام می‌دهید در مخزن گیت تنظیم‌شده‌ی آن پک کامیت شود.

شما می‌توانید متن پیام کامیت را هم در همان دیالوگ تعیین کنید.

اگر تمایل دارید که تغییرات کامیت نشود کافی است که تیک «کامیت تغییرات در مخزن گیت» را بردارید. در این صورت پس از این تغییرات گیت نیز در این پک اعمال نمی‌شود.

اگر پک در حالتی باشد که تغییرات کامیت نشده داشته باشد شما می‌توانید بافشردن دکمه «کامیت تغییرات در گیت»، وضعیت جاری پک را در گیت کامیت کنید. در این صورت دوباره تغییرات گیت در این پک اعمال می‌شود.

صفحه‌ی پک در کوبیت

با انتخاب هر پک در لیست پک‌های یک پروژه به صفحه‌ی خاص آن پک وارد می‌شویم. این صفحه دارای اطلاعات مختلفی در مورد پک‌هاست که به‌صورت تب‌هایی در آن تعبیه شده است.

اطلاعات کلی

در تب اول این صفحه اطلاعات کلی شامل نام و فضای‌ نام و چارت آن پک آمده است. در ادامه لیست ورک‌لودها و پادهای آن پک و اطلاعات خلاصه‌ای از هر کدام مشاهده می‌شود.

عملیات مهم روی پک

  • راه‌اندازی دوباره پک

    با فشردن دکمه‌ی «راه‌اندازی دوباره پک»، همه‌ی ورک‌لودهای پک دوباره راه انداخته می‌شوند و نسخه‌ی موجود آن‌ها در کلاستر از بین می‌رود.

  • نصب دوباره‌ی پک

    انتخاب «نصب دوباره پک» باعث ایجاد دوباره‌ی پک و به‌روزرسانی مشخصات پک از روی چارت هلم می‌شود. با این کار تغییرات چارت و ویژگی‌های تنظیمی در کوبیت در کلاستر اعمال می‌شود.

  • تازه‌سازی اطلاعات پک

    با فشردن دکمه‌ی «همگام‌سازی پک» اطلاعات پک را بر اساس داده‌ها و وضعیت پک در کلاستر به‌روز می‌کند

  • تازه‌سازی اطلاعات ورک‌لودها

    با فشردن دکمه‌ی «تازه‌سازی» در بالای لیست ورک‌لودها اطلاعات نمایش‌ داده‌شده در جدول ورک‌لودها به‌روزرسانی می‌شود.

  • راه‌اندازی مجدد یک ورک‌لود

    با انتخاب عملیات راه‌اندازی در هر سطر از جدول ورک‌لودها،‌آن ورک‌لود با مدیریت کوبرنتیز دوباره راه‌اندازی می‌شود. و نمونه‌های جدید جای نسخه‌ی موجود آن را می‌گیرد.

مشاهده‌ی لاگ کانتینرها

در تب دیگر صفحه پک، لاگ همه‌ی کانتینرهای این پک به‌صورت یک‌جا نمایش داده ‌می‌شود. همچنین لیست کانتینرها به‌تفکیک ورک‌لود نمایش داده می‌شود که به‌ازای هر کانتینر می‌توانید لاگ آن را به‌صورت مجزا مشاهده کنید.

گزارش‌های مانیتورینگ

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

هشدارها

بر اساس تنظیمات در سامانه هشدارها، لیستی از هشدارها در هر لحظه وجود دارد که در تب هشدارها می توانید هشدارهای مربوط به این پک یا پروژه را مشاهده کنید.