مقدمه ای بر Helm چارت و مدیریت مانیفست های کوبرنیتز - بخش سوم

مقدمه ای بر Helm چارت و مدیریت مانیفست های کوبرنیتز - بخش سوم

حالا که چارت رو ساختیم و روی کلاستر دیپلوی کردیم شروع کنیم به شخصی سازی این چارت و تغییر بعضی متغیر ها مثل تگ ایمیج

برای دیپلوی ما از دستور install استفاده کردیم

helm install --dry-run --set image.tag=1.24.0 -n dev app ./app

با فلگ dry-run بدون دیپلوی روی کلاستر میتونید شبیه سازی دیپلوی رو نگاه کنید که چه اتفاقی قرار هست بیوفته

و فلگ set هم برای تغییر متغیر های داخل فایل Values استفاده میشه که اینجا اومدیم تگ ایمیج رو تغییر دادیم به 1.24.0 که در زمان نوشتن این مطلب نسخه استیبل nginx هست

اما ما قبلا این چارت رو دیپلوی کردیم و نمیخوایم دیپلوی جدیدی داشته باشیم

helm upgrade --set image.tag=1.24.0 -n dev app ./app
helm upgrade --set image.tag=1.24.0 --timeout=1m --atomic --cleanup-on-fail -n dev app ./app

دستور upgrade برای چارت هایی استفاده میشه که install شدن و چارت قبلی رو برای ما آپدیت میکنن

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

# -timeout=1m time to wait for any individual Kubernetes operation
# --atomic if set, upgrade process rolls back changes made in case of failed upgrade.
# --cleanup-on-fail allow deletion of new resources created in this upgrade when upgrade fails

فلگ atomic باعث میشه همه workload ها و resource ها باهم اجرا بشن و اگر یکی از اونها به اختلال خورد به ورژن قبلی برمیگرده

و فلگ cleanup-on-fail باعث میشه اگر به خطا خوردیم تمام دیپلوی های خطا خورده حذف بشن و اثری ازشون نمونه

حالا فرض کنیم که دیپلوی آپگرید ورژن جدید با موفقیت  اتفاق افتاده و باز هم به هر دلیلی میخواید به ورژن های قدیمی برگردین و تاریخچه های قبلی خودتون رو ببینین

# Fetch release history
helm history -n dev app

# Roll back a release to a previous revision
helm rollback -n dev app 0

# uninstall a release
helm uninstall -n dev app

با دستور history میتونین ورژن های قبلی رو ببینین و با rollback کردن به اونها دیپلوی جدید رو از کلاستر حذف کنید برای مثال در دستور بالا به ورژن ۰ برگشتیم

دستور uninstall هم کل چارت رو از کلاستر حذف میکنه و کل اپلیکیشن از مدار خارج میشه

پیشنهاد میدم بعد از اجرای هر دستور داخل کلاستر رو نگاه کنید تا شاهد نحوه اتفاق افتادن حذف و دیپلوی مانیفست ها باشین و تگ ایمیج هارو چک کنید

kubectl get pods -n dev -o wide
kubectl describe pods -n dev POD_NAME | grep -i image

حالا زمان اینه که  داخل فایل های دایرکتوری templates تغییرات ایجاد کنید

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

فراموش نکنید به ریپازیتوری گیتهاب این مطلب هم سر بزنید و اگه خوشتون اومد ستاره بدین

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