هنگام استقرار نمودار فرمان، درمانهای موقتی را انجام دهید
هنگام استقرار نمودار فرمان، ممکن است بخواهید بتوانید چند درمان را قبل و/یا بعد از آن انجام دهید. سپس به استفاده از آن فکر می کنیم Job
، اما اینها لزوما از نظر پیکربندی زمان اجرای آنها بهترین نیستند و حذف خودکار آنها بهینه نیست. (مراجعه کنید به https://dev.to/mxglt/supprimer-automatiquement-une-job-dans-kubernetes-3d5g).
بنابراین، اگر استفاده می کنید هلم، امروز چیزی را خواهیم دید که همه این نگرانی ها را حل می کند: قلاب.
قلاب چیست؟
THE قلاب مکانیزمی هستند که به شما امکان می دهند فرآیندهای خاصی را در زمان های خاصی در چرخه عمر نمودار اجرا کنید.
برای تعریف این درمان ها، حاشیه هایی را به a اضافه می کنیم Job
Kubernetes که تعریف 3 چیز را ممکن می کند:
- زمانی که کار باید اجرا شود
- اولویت اوست (اگر چندین کار توسط یک قلاب ایجاد شود)
- چگونه آن را حذف کنیم
زمانی که کار باید اجرا شود
این حاشیه نویسی است helm.sh/hook
که به ما امکان می دهد تا لحظه(های) راه اندازی کار را تعریف کنیم. در حال حاضر، این قلاب های موجود است:
pre-install
: پس از رندر کردن قالب ها، اما قبل از ایجاد منابع نمودار در خوشه Kubernetes اجرا شود (در حین به روز رسانی اجرا نمی شود)post-install
: پس از ایجاد تمام منابع در Kubernetes اجرا کنید (در حین به روز رسانی اجرا نمی شود)pre-delete
: قبل از حذف نمودار اجرا شودpost-delete
: پس از حذف نمودار اجرا می شودpre-upgrade
: بعد از رندر کردن قالب ها، اما قبل از به روز رسانی منابع اجرا شود (در حین نصب اجرا نمی شود)post-upgrade
: پس از به روز رسانی منابع در Kubernetes اجرا شود (در حین نصب اجرا نمی شود)pre-rollback
: قبل از بازگشت به نسخه قبلی اجرا می شودpost-rollback
: پس از بازگشت به نسخه قبلی اجرا شودtest
: با دستور اجرا می شود تست سکان
با پانل امکاناتی مانند این، آسان می شود:
- قبل از نصب اپراتور CRD ها را نصب کنید
- پس از حذف یک اسکریپت پاکسازی را اجرا کنید
- برای تغییر از نسخه A به B و بالعکس، تمام دستورات به صورت خودکار اجرا شوند.
مثال
annotations:
"helm.sh/hook": post-install,post-upgrade
اولویت
برای تعریف اولویت یک کار در تمام کارهایی که از طریق یک هوک راه اندازی شده اند، باید از حاشیه نویسی استفاده کنید. helm.sh/hook-weight
. به عنوان مقدار، دادن یک عدد مثبت یا منفی کافی است، اما باید به عنوان یک رشته اعلام شود.
مثال
annotations:
"helm.sh/hook-weight": "-5"
روش حذف
پس از اتمام کار، میخواهیم بتوانیم آن را حذف کنیم. Helm به ما اجازه می دهد آن را با حاشیه نویسی تعریف کنیم helm.sh/hook-ddelete-policy
.
3 مقدار ممکن است:
before-hook-creation
: که نمونه قدیمی کار را قبل از شروع یک هوک جدید حذف می کند (به صورت پیش فرض)hook-succeeded
: اگر در حین اجرای هوک همه چیز به خوبی پیش رفت، کار را حذف می کندhook-failed
: در صورت بروز مشکل در حین اجرای هوک، چه کسی کار را حذف می کند.
مثال
annotations:
"helm.sh/hook-delete-policy": hook-succeeded
در نتیجه، می توانید ببینید که Helm از طریق این قلاب ها اجازه می دهد تا لایه ای از پویایی را اضافه کند که می تواند در فرآیند خودکارسازی یک راه حل بسیار مفید باشد.
حق حبس
امیدوارم این بتواند به تو کمکی کند! 🍺