کوبرنتس چیست و با آن چه کاری می توان انجام داد؟
کوبرنتس (Kubernetes)یک پلتفرم متنباز مدیریت کانتِینِر (Container) است که توسط کمپانی گوگل توسعهیافته و در ژوئن 2014 در دسترس عموم قرارگرفته است. هدف از طراحی و عرضه کوبرنتس این بوده که پیادهسازی و مدیریت سیستمهای توزیعشده پیچیده برای توسعهدهندگانی که به کانتینرهای لینوکس علاقهمند هستند، سادهتر شود.
کانتینر، یک رویکرد نوین در مجازیسازی
ماشینهای مجازی (Virtual Machines) را هر فرد فعال در حوزه فناوری اطلاعات حداقل یکبار استفاده کرده است. فناوری ماشین مجازی این امکان را فراهم میآورد که یک سیستمعامل روی سیستمعامل دیگری اجرا شود. بهعنوان نمونه سیستمعامل مهمان (Guest OS) روی سیستمعامل میزبان (Host OS) اجراشده است. مزیتهای ماشین مجازی آنچنان گسترده است که ذکر آن در این مختصر نمیگنجد. فقط به ذکر این یک مورد بسنده میکنیم که نرمافزارهای تحت ویندوز را بهسادگی میتوان روی یک کامپیوتر دارای سیستمعامل لینوکس، با بهرهگیری از ماشین مجازی اجرا کرد.کانتینر نیز بهعنوان شیوهای جدید در مجازیسازی تا حدی مشابه ماشین مجازی است، با این تفاوت که برای اجرای نرمافزار از همان هسته سیستمعامل میزبان بهره میبرد . البته که کانتینر همه مزایای ماشین مجازی را ندارد، اما در نقطه مقابل دیگر به نصب سیستمعامل جدید نیاز نیست و در مصرف منابع صرفهجویی میشود.

کوبرنتس چیست؟
کوبرنتس (به گفته اهالی فنK8 ) سومین سیستم مدیریت کانتینر به شمار میرود که گوگل طراحی کرده است. دو مورد اول بهنام Borg و Omega بودند که برای استفاده داخلی نوشته شده بودند. همانند امگا، K8 نیز معماری زمانبندی هسته را بهبود بخشیده و یک حافظه ذخیرهسازی مشترک و دائمی را در هسته گنجانده است. تفاوت آن با امگا در این است که حافظه مستقیم در دسترس اجزای مورد اعتماد لایه کنترلی (control plane) نیست و در عوض از طریق REST API قابلدسترس است. در کوبرنتس API ای که عملیات REST را مدیریت میکند، همانند سایر API ها است.
در سال 2015 بنیاد لینوکس و کمپانی گوگل، نیروهایشان را برای ایجاد بنیاد CNCF سرنام Cloud Native Computing) ) متمرکز کردند و کوبرنتس بهعنوان فناوری پایه در نظر گرفته شد. نسخه پایدار آن نیز در دسامبر 2017 عرضه شد.


با کوبرنتس چهکاری میتوان انجام داد؟
کوبرنتس شرکتها را قادر میکند توان پردازشی بیشتری را هنگام اجرای نرمافزارها به دست آورند. کوبرنتس مدیریت، پیادهسازی، زمانبندی و کارهای عملیاتی کانتینرهای برنامه را روی کلاستری از ماشینها بهصورت خودکار درمیآورد. تعداد این کانتینرها گاهی به صدها هزار عدد میرسد که در محیط خصوصی، ابر یا محیطهای ترکیبی قرار دارند. همچنین کوبرنتس توسعهدهندگان را برای ایجاد یک محیط با محوریت کانتینر(container-centric) یاری میبخشد.
بهعنوان یک پلتفرم، کوبرنتس میتواند با سایر فناوریها ترکیب شود برای دستیابی به کارکردهای بیشتر. ضمن اینکه تعداد برنامههای مورد پشتیبانی نیز محدود نیست. برخی سیستمهای پلتفرم بهعنوان سرویس (PaaS) روی کوبرنتس اجرا میشوند. تفاوت کوبرنتس بهعنوان یک پلتفرم با سیستمهای PaaS این است که میانافزار ارائه نمیکند، سورسکد پیاده نمیکند و برنامه نیز اجرا نمیکند.
ارزش کوبرنتس و سرویسهای کانتینر
کوبرنتس و سرویسهای کانتینر به کاربران این توانایی و قابلیت را میدهد تا زمانیکه یک نرمافزار از یک محیط پردازشی به یک محیط پردازشی دیگر منتقل میشود، بهصورت قابلاطمینان اجرا شود. در این میان سازگاری دو محیط پردازشی نیز اهمیتی ندارد. چنین رویهای توسعهدهندگان نرمافزار و مدیران فناوری اطلاعات را قادر میکند که چندین کانتینر برنامه را روی یک سیستمعامل مشترک در میان چندین کلاستر سرور (که گره یا Node نامیده میشوند) اجرا کنند.
کانتینرِ برنامهها از یکدیگر ایزوله هستند، اما یک کرنل مشترک سیستمعامل دارند و میزبان (همان قسمتهای مشترک سیستمعامل) بهصورت فقط خواندنی (read-only) است. با این رویکرد، همه اجزای برنامه از زیرساخت میزبان جدا میشوند که پیادهسازی و مقیاس بخشیدن به سیستم را در ابرها و سیستمهای عامل مختلف ساده میکند.
کانتینرها سبک وزنتر از ماشینهای مجازی (VM) هستند (گاهی تنها چند مگابایت حجم دارند) و منابع کمتری را نیز مصرف میکنند. یک کانتینر معمولا شامل یک اپلیکیشن، وابستگیهای آن، کتابخانهها، فایلهای باینری و پیکربندی است. در نقطه مقابل، یک VM شامل محیط اجرایی به همراه سیستمعامل خودش است که آن را سنگین میکند و قابلیت جابهجایی کمتری را به همراه دارد.
