نگاهی به Kubernetes v1.37: حذف پشتیبانی IPVS در kube-proxy و تغییرات مهم امنیتی

تیم انتشار Kubernetes پیش‌نمایشی از تغییرات برنامه‌ریزی‌شده در نسخه v1.37 منتشر کرده است. این تغییرات که شامل منسوخ‌سازی‌ها و حذفیات مهمی است، برای حفظ سلامت کلی پروژه و به‌روزرسانی محیط‌های کوبرنیتیز ضروری می‌باشند. البته این اطلاعات مربوط به وضعیت فعلی انتشار است و ممکن است تا تاریخ انتشار نهایی تغییر کند.

حقایق کلیدی

  • kubectl: فلگ --filename (یا -f) برای دستور kubectl run در حال منسوخ شدن است، زیرا پاد تولیدشده همیشه صرفاً از آرگومان‌های خط فرمان مانند NAME و --image ساخته می‌شود.
  • Kubelet: Static Pods دیگر نمی‌توانند به Secrets یا ConfigMaps ارجاع دهند. این پادها از طریق API server ایجاد نمی‌شوند، اما یک باگ اجازه می‌داد از طریق فیلدهایی مانند configMapRef یا secretRef به این منابع دسترسی داشته باشند. این باگ در v1.37 کاملاً رفع شده و دربازه PreventStaticPodAPIReferences که قبلاً امکان دور زدن این محدودیت را می‌داد، حذف شده است.
  • kube-proxy: پشتیبانی از حالت ipvs در kube-proxy در حال منسوخ شدن است. این حالت در نسخه v1.8 برای حل گلوگاه‌های عملکرد iptables معرفی شد، اما از آنجا که API هسته ipvs به تنهایی نمی‌تواند سرویس‌های Kubernetes را به طور کامل پیاده‌سازی کند، همچنان به iptables وابسته است. خروجی لاگ در زمان استارتاپ هشدار منسوخ شدن را نشان خواهد داد. بر اساس زمان‌بندی اعلام‌شده، در نسخه v1.40 این حالت به‌طور پیش‌فرض غیرفعال خواهد شد و در v1.43 به‌طور کامل حذف می‌گردد.
  • cgroup v1: روند حذف پشتیبانی از cgroup v1 ادامه دارد. از نسخه v1.35 تنظیم failCgroupV1 به‌طور پیش‌فرض true بوده و kubelet روی نودهای متکی به cgroup v1 راه‌اندازی نمی‌شود مگر با تنظیم دستی failCgroupV1: false. این راه‌حض موقت در v1.37 همچنان موجود است، اما کاربران باید به cgroup v2 مهاجرت کنند، زیرا قابلیت‌هایی مانند In-Place Pod Resizing به cgroup v2 وابسته‌اند.
  • SELinuxMount: این ویژگی در v1.37 به GA (پایداری عمومی) می‌رسد و به‌طور پیش‌فرض فعال خواهد شد. حجم‌ها (Volumes) با گزینه -o context=<label> سوار (mount) می‌شوند. این تغییر ممکن است باعث شود پادهایی با برچسب‌های متفاوت SELinux که یک حجم را روی یک نود به اشتراک می‌گذارند، دیگر قادر به راه‌اندازی نباشند.

پیامدها برای مخاطبان حرفه‌ای

برای مهندسان DevOps و مدیران زیرساخت‌های مبتنی بر Kubernetes، نسخه v1.37 نیازمند ممیزی دقیق پیکربندی‌های فعلی است. به‌ویژه تیم‌هایی که برای مدیریت ترافیک شبکه به حالت ipvs متکی هستند، باید برنامه مهاجرت به حالت‌های دیگر را پیش از نسخه v1.43 تدوین کنند. همچنین، رفع باگ مربوط به Static Pods و ارتقای SELinuxMount مستلزم بررسی مجدد سیاست‌های امنیتی و نحوه اشتراک‌گذاری حجم‌ها در نودهای دارای SELinux است تا از قطعی غیرمنتظره سرویس‌ها جلوگیری شود.