Kubernetes یکی از پروژههای موفق گوگل است که فرایندهای خودکارسازی و پیکربندی اپلیکیشنها را ساده میکند و زمان و منابع لازم برای اجرای عملیاتها را کاهش میدهد. پشتیبانی مناسب، ابزارهای کاربردی و گستردگی خدمات باعث محبوبیت این سرویس بین توسعه دهندگان شده است.
هدف از طراحی و عرضه کوبرنتس این بوده که پیادهسازی و مدیریت سیستمهای توزیعشده پیچیده برای توسعهدهندگانی که به کانتینرهای لینوکس علاقهمند هستند، سادهتر شود. در این مقاله هرآنچه باید در مورد کوبرنتیس بدانید را با شما به اشتراک میگذاریم.
تاریخچه Kubernetes
جالب است بدانید که پروژه Borg گوگل به نوعی پدر کوبرنتس به حساب میآید. بگذارید این داستان خانوادگی را برای شما تعریف کنیم!
با تولد رایانش ابری، تحولی بنیادین در دنیای سخت افزار و نرم افزار ایجاد کرد و پس از آن نسل جدیدی از فناوریهایی به وجود آمدند که کار با رایانش ابری را سادهتر میکردند. در این بین اپلیکیشنهای بزرگ نیز به سمت ماژولار شدن پیش رفتند تا مدیریت و تعامل با آنها از جانب توسعهدهندگان و کاربران سادهتر شود.
گوگل هم از غافله عقب نماند و پروژهای بزرگ به صورت متن باز به نام Borg منتشر کرد و این سرویس پس از آن نقش اساسی در اجرای سرویسهای مهم گوگل مانند جیمیل و موتور جستجوی این برند داشت. به این ترتیب با متنباز شدن این پروژه سایر شرکتها نیز قادر بودند پروژههای خود را همانند گوگل در ابعاد بزرگ پیش بگیرند.
پیشتر اشاره کردیم که عملکرد کوبرنیتزس مشابه این سرویس است، بنابراین کوبرنتس را میتوان وارث و جانشین Borg دانست. با توجه به این که این نرم افزار متن باز است به سرعت توانست توسعه پیدا کند و به همین دلیل رقیب بزرگی برای ساز و کارهای دیگر کنترل کانتینرها مانند Apache Mesos و Docker Swarm تبدیل شد.
بیشتر بخوانید:
حالا که با تاریخچه شکل گیری این سرویس آشنا شدید، بهتر است در مورد عملکردش بیشتر توضیح دهیم. با ما همراه باشید.
Kubernetes چیست؟
اگر بخواهیم این سرویس را به سادهترین شکل ممکن توضیح دهیم، باید بگوییم که کوبرنتیز اجرا و مدیریت کانتینرهای مختلف را در سرورهای متفاوت که در یک پایگاه داده یا چندین پایگاه قرار گرفتهاند را بر عهده میگیرد.
برای مدیریت و شناسایی بهتر کانتینرها، آنهایی که مشترکاً برنامه کاربردی خاصی را شامل میشوند در حالت جداگانه و مستقل تحت عنوان پاد (Pod) دستهبندی میشوند. به تصویر زیر دقت کنید:
به زبان ساده میتوان گفت کوبرنتس نقش سیستمعاملی را ایفا میکند که بر روی چندین سرور مجازی در حالت یکپارچه اجرا میشود.
پس واضح است که شرکتهایی که سرویسهای مختلف نرمافزاری را اجرا میکنند اول از همه به کانتینرها و در نهایت به ابزارهایی مانند کوبرنتیز نیاز دارند تا با کمک گرفتن از کانتینرها، برنامهها را در بهترین حالت از یکدیگر جداسازی کنند.
نحوه عملکرد Kubernetes
این سرویس برای اجرای کارها از کلاستر استفاده میکند. کلاستر Kubernetes دو بخش دارد:
- سطح کنترل
- ماشینهای محاسباتی یا گرهها
در تصویر بالا مشاهده کردید که گره پادهایی را اجرا میکند که از کانتینرها تشکیل شده است. سطح کنترل نیز مسئولیت نگهداری حالت دلخواه کلاستر را برعهده دارد؛ مثلاً اینکه کدام اپلیکیشنها اجرا شوند و این اپها از چه ایمیج کانتینری استفاده کنند. Kubernetes مثل هر اپ دیگری در سیستمعامل اجرا میشود و با پادهای کانتینر اجراشده در گرهها تعامل دارد.
Pod ها از 1 یا چند Container تشکیل شدهاند و Container ها میتوانند منابع را به اشتراک بگذارند. Kubernetes دستگاهی را پیدا میکند که دارای ظرفیت پردازش کافی برای یک Pod معین است و Container مربوطه را راهاندازی میکند. برای جلوگیری از اختلال، به هر Pod یک آدرس IP منحصر به فرد اختصاص داده شده است.
مزایای استفاده از Kubernetes
یکی از مزایای استفاده از کوبرنیتس این است که شرکتها را قادر میسازد تا برنامههای خود را در فضای ابری پیاده سازی کنند همچنین این سرویس بستر مناسبی برای راهاندازی و اجرای اپلیکیشنها را فراهم میکند توسعهدهندگان به سادگی میتوانند اپلیکیشن خود را طراحی نموده و در پلتفرمهای مختلف منتشر کنند.
اگر بخواهیم تمام مزایای این سرویس را به صورت خلاصه کنیم باید به موارد زیر اشاره کنیم:
- هماهنگسازی کانتینرها در چندین سیستم میزبان
- کنترل و خودکارسازی روند استقرار و بهروزرسانی اپلیکیشنها
- ارتقای حافظه برای اجرای اپهای Stateful
- افزایش آنی مقیاس اپهای کانتینری و منابع آنها
- اطمینان از اجرای صحیح و دقیق اپهای مستقر
- بررسی و اصلاح خودکار اپها با قابلیتهای ارتقا و مقیاسپذیری خودکار
پلتفرم کوبرنتس
بهعنوان یک پلتفرم، کوبرنتس میتواند با سایر فناوریها ترکیب شود برای دستیابی به کارکردهای بیشتر. ضمن اینکه تعداد برنامههای مورد پشتیبانی نیز محدود نیست.
برخی سیستمهای پلتفرم بهعنوان سرویس (PaaS) روی کوبرنتس اجرا میشوند. تفاوت کوبرنتس بهعنوان یک پلتفرم با سیستمهای PaaS این است که میانافزار ارائه نمیکند، سورسکد پیاده نمیکند و برنامه نیز اجرا نمیکند.
بیشتر بخوانید:
سخن پایانی…
کوبرنتیز (Kubernetes) درواقع ساز و کار مدیریت کانتینرها است که شرکت گوگل در سال 2015 آن را عرضه کرده. علاقمندان فناوری و توسعهدهندگان، علاقه زیادی به استفاده از کوبرنتیز دارند.
این سرویس توانسته است به یکی از موفقترین نمونهها در دنیا متنباز تبدیل شود و انتظار میرود در آینده نیز شاهد افزایش و پیشرفت این ساز و کار کارآمد باشیم.
حال نوبت به نظرات شما میرسد. آیا تجربهٔ کار با Kubernetes را داشتهاید؟ نظرات، دیدگاهها و تجربیات خود را با سایر کاربران هاستیدا به اشتراک بگذارید.