کوبرنتیز چیست ؟
کوبرنتیز چیست ؟
كوبرنتيز kubernetes بهطور مؤثر توزیع بار کاری، شبکه کانتینر، تخصیص فضای ذخیرهسازی و مقیاس بندی خودکار را کنترل میکند و این در حالی است که از حفظ وضعیت مطلوب برنامهها برای افزایش انعطافپذیری اطمینان حاصل خواهد کرد. چه در فضای محلی و چه در پلتفرمهای ابری عمومی، Kubernetes استقرار و مدیریت برنامهها را ساده کرده و ابزاری قدرتمند برای توسعه و عملیات برنامههای مبتنی بر کانتینر ارائه میکند.
نام Kubernetes ریشه یونانی دارد و بهمعنی «سکاندار» یا «خلبان» است. حرفهایها این ابزار را K8S هم مینامند که به حروف ابتدایی و انتهایی کوبرنتیس و فاصله هشتحرفی بین آنها اشاره میکند. کوبرنتیس در بخش زیرساخت ابری گوگل توسعه یافته و در سال ۲۰۱۴ بهصورت متنباز ارائه شده است. این ابزار نتیجه تجربه ۱۵ساله گوگل در مدیریت اپهای کانتینری است و جامعه متنباز هم در توسعه آن مشارکت کردهاند.
ویژگی های کوبرنتیز
- خودکار سازی فرآیندهای دستی مثل انتخاب سرور برای میزبانی کانتینر
- امکان مدیریت و تعامل با چند کلاستر
- هماهنگ کردن کانتینترها در چند میزبان
- به حداکثر رساندن میزان استفاده از منابع به خاطر استفاده بهتر از زیرساخت
- امکان بازگشت به نسخه های قبلی برنامه
- ارائه خدمات اضافی مثل خدمات امنیتی، شبکه و ذخیره سازی
- بررسی خودکار کارکرد درست گره ها و کانتینرها
- امکان مقیاس بندی منابع به صورت عمودی و افقی
- هماهنگ سازی فضای ذخیره سازی
- قابلیت نصب و اضافه کردن فضای ذخیره سازی به صورت پویا
- پشتیبانی از قابلیت متعادل سازی بار داخلی و خارجی برای رفع نیازهای مختلف
- امکان بازگردانی مجدد در صورت اشکال در برنامه
- امکان انتقال بارهای کاری به هر نوع زیرساخت
- انتخاب بهترین مکان برای کانتینرها
کوبرنتیز چگونه کار میکند؟
برای درک بهتر مزایای کوبرنتیز، باید نگاهی به تاریخچه استقرار نرمافزارها بیندازیم:
- عصر استقرار سنتی: در این دوران، نرمافزار روی سرورهای فیزیکی اجرا میشد و چون راهی برای تعیین محدودیتهای سختافزاری وجود نداشت، مشکل اختصاص منابع پیش میآمد. برای مثال، حین اجرای همزمان چند اپ روی سرور، یکی از برنامهها تمام منابع را ازآنِ خود میکرد و اجرای دیگر اپها به مشکل میخورد. یکی از راههای حل این مشکل استفاده از چند سرور است؛ اما هزینه زیادی را به شرکتها تحمیل میکند.
- عصر استقرار مجازی: در این دوران، با اجرای ماشینهای مجازی روی یک سرور منابع مشخصی به هر نرمافزار تعلق میگرفت. این روش نهتنها امنیت را افزایش داد؛ بلکه امکان اضافهکردن و آپدیت آسان اپها مقیاسپذیری را نیز بهبود بخشید. هر ماشین مجازی اجزا و سیستمعامل و منابع خاص خودش را دارد.
- عصر استقرار کانتینر: کانتینرها شبیه ماشین مجازی هستند؛ اما سیستمعامل بین آنها مشترک است؛ بههمیندلیل، بار کمتری برای سختافزار دارند. کانتینر نیز همچون ماشین مجازی فایلهای سیستم خودش را دارد و بخشی از پردازنده و حافظه و فضای ذخیرهسازی را دراختیار میگیرد.
کاربردهای کوبرنتیز
کاربردهای کوبرنتیز عبارتاند از:
- هماهنگسازی کانتینرها در چندین سیستم میزبان
- کنترل و خودکارسازی روند استقرار و بهروزرسانی اپلیکیشنها
- ارتقای حافظه برای اجرای اپهای حالتمند (Stateful)
- افزایش آنی مقیاس اپهای کانتینری و منابع آنها
- اطمینان از اجرای صحیح و دقیق اپهای مستقر
- بررسی و اصلاح خودکار اپها با قابلیتهای ارتقا و مقیاسپذیری خودکار
کوبرنتیس برای ارائه کامل این خدمات به پروژههای متنباز دیگر اتکا دارد. تعدادی از این اپها بدینشرحاند:
- رجیستری ازطریق پروژههایی مثل Docker Registry
- شبکهسازی ازطریق پروژههای OpenvSwitch و مسیریابی لبه هوشمند
- تلهمتری ازطریق Kibana و Hawkular و Elastic
- امنیت ازطریق پروژههایی مثل LDAP ،SELinux ،RBAC و OAUTH با لایههای چندمستأجری (Multitenancy)
- خودکارسازی با افزودن پلیبوکهای Ansible برای نصب و مدیریت چرخه عمر کلاست
جمعبندی
Kubernetes پلتفرمی متنباز و توسعهپذیر و پرتابل برای پیادهسازی و مدیریت برنامههای کانتینری است. این پلتفرم در سال ۲۰۱۴ منتشر شده و حاصل تجربه ۱۵ساله متخصصان گوگل درزمینه پردازش و اجرای اپ و سرویس در مقیاس بسیار بزرگ است.
کانتینر بهعنوان مؤلفه اصلی کوبرنتیس پکیجی است که فایلهای سیستمی و کتابخانه و کدهای یک پروژه را در خود دارد و به اعضای تیم اجازه میدهد پروژه را در محیطهای مختلف سرور مجازی لینوکس و سرور فیزیکی یا ابری و حتی هیبرید اجرا و تست کنند.
در این مقاله از نوژن پردازش سعی کردیم شما را به زبان ساده با کوبرنتیز آشنا کنیم. اگر درباره این موضوع سوال یا نظری دارید، میتوانید با تیم پشتیبانی نوژن در ارتباط باشید.