دکمهٔ Undo برای ارتقای نسخهٔ Kubernetes روی Amazon EKS
خلاصهٔ کاملتر
به گفتهٔ AWS، ارتقای control plane در Kubernetes مدتها یه «در یکطرفه» بوده؛ Kubernetes متنباز از رولبک control plane پشتیبانی نمیکنه، پس بعد از ارتقا راه برگشتی نیست. همین باعث شده سازمانها مکانیزمهای جبرانیِ پیچیده مثل دورههای آزمایش و چرخههای ارتقای چندماهه بسازن، و تیمهایی که صدها کلاستر رو مدیریت میکنن اغلب ارتقا رو کلاً عقب بندازن؛ نتیجهاش کلاسترهایی که رو نسخههای قدیمی گیر کردن و وصلههای امنیتی رو از دست میدن.
حالا AWS قابلیت version rollback رو برای Amazon EKS اعلام کرده که هنگام ارتقای کلاستر یه تور نجات به مدیرها میده. به گفتهٔ AWS، اگه بعد از ارتقا به مشکل بخوری، میتونی ظرف هفت روز ارتقای نسخه رو برگردونی و کلاستر رو به وضعیت کاریِ قبلیش برسونی. مثلاً اگه از Kubernetes 1.34 به 1.35 ارتقا دادی و یه ناسازگاری پیدا کردی، ظرف هفت روز میتونی به 1.34 برگردی، بدون اینکه لازم باشه کلاستر رو از نو بسازی.
تفاوت مهمش با رویکردهایی مثل «نسخههای شبیهسازیشده» اینه که رولبک EKS کلاستر رو به یه نسخهٔ قبلیِ کاملاً معتبر که واقعاً تو تولید اجرا شده برمیگردونه، نه یه شبیهسازی ازش. این قابلیت رولبک رو هر بار یه نسخهٔ minor پشتیبانی میکنه، همون رویکرد گامبهگامی که EKS برای ارتقا داره. برای رولبک امن هم، EKS بهصورت خودکار آمادگی کلاستر رو از طریق cluster insights ارزیابی میکنه و مواردی مثل سازگاری نسخهٔ نود یا وابستگی افزونهها رو قبل از ادامه علامت میزنه؛ اگه از قبل بررسی کردی و میخوای سریع پیش بری، میتونی با فلگ --force این بررسیها رو رد کنی.
برای مشتریهای EKS Auto Mode رولبک یه قدم جلوتر میره: چون هم control plane و هم نودهای مدیریتشده باید با هم برگردن. از اونجا که رولبک نودها به pod disruption budgetهای تو احترام میذاره، بسته به پیکربندی ممکنه زمانبر باشه. برای کنترل این فرایند، AWS یه cancel API آورده که اجازه میده رولبک نود رو هر لحظه متوقف کنی؛ اگه دیدی داره طول میکشه، میتونی کنسل کنی و disruption budget رو تنظیم کنی تا سریعتر بشه. بهصورت پیشفرض EKS هیچوقت این budgetها رو دور نمیزنه چون پایداری بار کاری اولویت داره.
به گفتهٔ AWS، تو یه آزمایش، رولبک control plane حدود ۲۰ دقیقه طول کشیده، شبیه یه ارتقای استاندارد، و کلاستر تو کل فرایند کار میکرده. این قابلیت از همین حالا و بدون هزینهٔ اضافه تو همهٔ ریجنهای تجاری AWS که EKS داره در دسترسه؛ رولبک control plane برای همهٔ کلاسترها و رولبک نود برای کلاسترهای EKS Auto Mode کار میکنه.
نکات کلیدی:
- Amazon EKS حالا رولبک نسخهٔ Kubernetes رو تا هفت روز بعد از ارتقا پشتیبانی میکنه
- کلاستر به یه نسخهٔ قبلیِ کاملاً معتبر برمیگرده، نه یه شبیهسازی؛ هر بار یه نسخهٔ minor
- EKS با cluster insights آمادگی رولبک رو بررسی میکنه (با --force میشه ردش کرد)
- تو EKS Auto Mode نودها هم همراه control plane برمیگردن، با احترام به pod disruption budget
- رایگانه و رولبک control plane حدود ۲۰ دقیقه طول میکشه




