Argo Rollouts 1.10 رسید: پایدارتر و سبکتر
خلاصهٔ کاملتر
تو بلاگ رسمی پروژهٔ Argo اومده که نسخهٔ کاندید Argo Rollouts 1.10 آمادهست؛ حاصل ۹۸ کامیت از ۴۶ مشارکتکننده. Argo Rollouts همون کنترلریه که تو کوبرنتیز استقرارهای canary و blue-green رو مدیریت میکنه و ترافیک رو کمکم به نسخهٔ جدید میسپره. تمرکز این نسخه روی پایداریه: هماهنگی مطمئنتر rollout، تحلیل امنتر با Job، رفع خطاهای زمانبندی Istio و مصرف کمتر منابع کنترلر.
به نوشتهٔ نویسنده، دستهای از باگها درست شده که باعث میشد کنترلر لحظهای با اطلاعات قدیمیِ یه Rollout کار کنه و کاری که کاربر همون لحظه انجام داده بود — مثل unpause یا abort یا promote — نادیده گرفته یا بازنویسی بشه. جدا از این، اگه از Job کوبرنتیز برای analysis استفاده میکنی، جابی که اصلاً استارت نمیخورد (مثلاً ایمیجش پیدا نمیشد) قبلاً اشتباهی Successful گزارش میشد و میذاشت یه rollout خراب ادامه پیدا کنه؛ حالا درست بهعنوان Inconclusive ثبت میشه.
برای کسایی که با Istio ترافیک رو بین canary و stable تقسیم میکنن، چند مشکل زمانبندی رفع شده که میتونست وسط انتشار یا rollback خطای لحظهای روی ترافیک واقعی بسازه؛ یکیشون یه rollback سریع بود که ناگهان خیلی بیشتر از ظرفیت، ترافیک به canary میفرستاد. ضمناً دو قابلیت ping-pong (انتشار بدون قطعی برای اتصالهای طولانی مثل gRPC) و traffic mirroring حالا برای پلاگینهای مسیریابی ترافیک هم باز شده — البته هر پلاگین باید خودش پیادهسازیش کنه.
مهمترین نکتهٔ ارتقا یه تغییر شکنندهست: از این به بعد پیشفرض روی Traefik v3 ـه. اگه هنوز Traefik v2 داری، قبل از ارتقا باید با فلگهای --traefik-api-group=traefik.containo.us و --traefik-api-version=traefik.containo.us/v1alpha1 به کنترلر بگی از نسخهٔ قدیمی API استفاده کنه، وگرنه دیگه نمیتونه با منابع Traefik حرف بزنه. کانالهای اعلان Microsoft Teams و Nats.io هم اضافه شدن و تایماوت کوئری Datadog دیگه ثابتِ ۱۰ ثانیه نیست و برای هر متریک تنظیم میشه:
provider:
datadog:
requestTimeout: 30s # default is 10sکنترلر هم حافظه و CPU کمتری میخوره، چون دیگه آبجکتهایی رو که لازم نداره دنبال نمیکنه و کش داخلیش رو بهینهتر میخونه؛ روی کلاسترهای بزرگ یا وقتی Prometheus مرتب ازش scrape میگیره این کاهش محسوسه.
نکات کلیدی:
- ۹۸ کامیت از ۴۶ مشارکتکننده، با تمرکز روی پایداری rollout و کاهش مصرف منابع
- کنترلر دیگه با دادهٔ قدیمی روی rollout عمل نمیکنه، پس unpause و abort و promote قابلاعتمادترن
- جابی که استارت نخورده حالا Inconclusive حساب میشه، نه Successful
- تغییر شکننده: پیشفرض Traefik v3 ـه و کاربرهای v2 باید فلگهای API قدیمی رو ست کنن
- اعلان به Microsoft Teams و Nats.io، تایماوت قابل تنظیم Datadog و پشتیبانی ping-pong و mirroring برای پلاگینها




