نسخه جدید کوبرنتیز 1.29 با نام Mandala (اثری هنری که نمادی از تکامل جهان است ) جدیدا منتشر شده و تغییرات و بهروزرسانیهای متنوعی در آن اتفاق افتاده است.
هدف نامگذاری این نسخه نیز جالب است. کوبرنتیز میخواهد خود را بهعنوان یک ستاره یا نور اولیه که پدیدآورنده همه چیز است نشان دهد و آنچه که در اطراف آن حضور دارد نیز افرادی است که در پیشرفت این پروژه مشارکت داشتهاند.
برای آشنایی بیشتر با تغییرات این بهروزرسانی قصد داریم بهصورت کوتاه به اصلیترین تغییرات بپردازیم. همچنین برای آشنایی بیشتر با این موارد میتوانید به مستندات رسمی کوبرنتیز مراجعه کنید.
تغییرات Stable
تغییرات Stable شامل مواردی میشوند که در نسخههای قبلی بهصورت Beta و Alpha منتشر شدند و حالا به نسخه Stable رسیدند. برخی از اصلیترین این تغییرات را در زیر میتوانید مشاهده کنید:
ReadWriteOncePod یا RWOP
این ویژگی ابتدا در نسخه 1.22 بهصورت Alpha منتشر شد و حال در نسخه 1.29 به حالت Stable درآمده است. هدف از ایجاد این ویژگی این است که تنها پادی که به Volume در کلاستر متصل شده است امکان خواندن یا نوشتن روی Persistent Volume و Persistent Volume Claim را داشته باشند. در نتیجه تنها یک پاد قابلیت Mount کردن PV و PVC را دارد.
ویژگیهای Beta
SidecarContainers
ویژگی SidecarContainers در نسخه جدید کوبرنتیز به حالت Beta درآمده و بهصورت پیشفرض فعال است.
Node Lifecycle Taint Management
در نسخه جدید، ویژگی TaintManager از NodeLifecycleController حذف شده و بهجای آن دو کنترلر جداگانه و متمایز از همدیگر اضافه شده است:
- NodeLifecycleController که وظیفه دارد تا Taintهایی را به نودهای ناسالم اضافه کند.
- TaintManager که وظیفه حذف کردن پادها را از نودهای Taint شدهای برعهده دارد که NoExecute هستند.
Legacy Secret-Based SA Tokens Cleanup
در نسخه 1.29 سکرت توکنهایی که بهصورت خودکار ایجاد شدهاند، اگر تا مدت یکسال استفاده نشده باشند، نامعتبر شده و بعد از گذشت یک سال دیگر بهصورت کامل حذف میشود. این فرایند برای بهبود امنیت و مدیریتپذیری ایجاد شده است.
ویژگیهای Alpha
MatchLabelKeys / MismatchLabelKeys
این ویژگیهای برای PodAffinity/AntiAffinity معرفی شدهاند. با استفاده از این ویژگی، کاربران میتوانند بهصورت دقیق، محدودهای که پادها قرار است با همدیگر همزیستی داشته باشند را تعیین کنند.
APIهایی در جهت مدیریت گستره یا Range آدرسهای آیپی برای Service
با استفاده از این ویژگی کاربران میتوانند رنجهای IP که به Serviceها در کوبرنتیز اختصاص داده شده را بدون راهاندازی مجدد kube-apiserver تغییر دهند، یا اضافه و کم کنند. این کار با استفاده از دو آبجکت ServiceCIDR و IPAddress انجام میشود.
In-Place Pod Resources Update
این بهروزرسانی به کاربران اجازه میدهد تا بدون راهاندازی مجدد، منابع را بهروزرسانی کرده و تغییر دهند. این کار باعث میشود تا نرخ انعطافپذیری و بهرهوری بالاتر برود.
nftables
برای پیادهسازی و اجرا kube-proxy در لینوکس پیشتر از iptables استفاده میشد. حال برای بهبود مشکلات پرفورمنس و اجرایی قابلیت استفاده از nftables فراهم شده است.
ویژگیهای منسوخ شده
ایجاد Cronjob با استفاده از متغیرها
فرایند ایجاد Cronjobها با استفاده از متغیرها ( CRON_TZ در .spec.schedule و TZ) دیگر پشتیبانی نمیشود. رویکردی که برای انجام چنین کاری پیشنهاد میشود استفاده از .spec.timeZone است. به کاربران پیشنهاد میشود که براساس این الگو جدید، Cronjobهای فعلیشان را آپدیت کنند.
Networking Object ClusterCIDR
ویژگی ClusterCIDR دیگر پشتیبانی نشده و توسعه نمییابد.
در پایان
کوبرنتیز 1.29 ویژگیها و بهبودهای متنوعی را ارائه کرده تا وضعیت کارایی، بهرهوری و امنیت را بهتر کند. اگر قصد دارید بهصورت کاملتر با جزئیات این بهروزرسانیها آشنا شوید به مستندات رسمی کوبرنتیز مراجعه کنید.