اسفند 29, 1399دستهبندی نشده

سلام در این مقاله اول به معرفی کوبرنیتیز میپردازم و بعد در موردش بیشتر توضیح میدم.
توسعهدهندگان به دلایل زیادی به سیستمهای متنباز برای مدیریت کانتینرها روی آوردهاند. این امر باعث شده تا بزرگان فناوری نیز دست به کار شوند و پلتفرمهای مختلفی را برای مدیریت کانتینرها معرفی کنند. یکی از این پلتفرمهای معروف با نام Kubernetes (کوبرنتیز یا k8s) شناخته میشود.
کوبرنتیز (Kubernetes) در واقع ساز و کار مدیریت کانتینر ها است که توسعه آن را شرکت معظم گوگل انجام داده است و در نتیجه سلاطین فناوری و توسعهدهندگان، علاقه زیادی به استفاده از کوبرنتیز نشان میدهند.
این امر باعث شده تا کوبرنتیز روز به روز مصارف بیشتری پیدا کند و به تعداد استفادهکنندگان آن افزوده شود. کاملاً مشخص است تعامل بیشتر با این ساز و کار، بهینهتر شدن آن را نیز به دنبال دارد.
داستان ایجاد کوبرنتیز (Kubernetes)
همانگونه که شما بهتر از ما میدانید رایانش ابری نیازهای جدیدی را در دنیای سختافزار و نرمافزار ایجاد کرد و شاهد نسل جدیدی از فناوریها بودیم که تعامل با رایانش ابری را سادهتر میکردند. اپلیکیشنهای بزرگ نیز به سمت ماژولار شدن پیش رفتند تا مدیریت و تعامل با آنها از جانب توسعهدهندگان و کاربران سادهتر شود.
در همین راستا گوگل به عنوان یکی از بزرگترین غولهای فناوری که حیات خود را مدیون رایانش ابری است به این فکر افتاد تا یکی از پروژههای بزرگ خود را که در داخل این مجموعه از آن استفاده میکرد به صورت متن باز منتشر کند. این پروژه از زیرساختهایی بر اساس کانتینرها بهره میگرفت و در داخل گوگل با نام Borg شناخته میشد.
جالب است بدانید Borg نقش اساسی در اجرای سرویسهای مهم گوگل مانند جیمیل و موتور جستجوی این برند داشت. به این ترتیب با متنباز شدن این پروژه سایر شرکتها نیز قادر بودند پروژههای خود را همانند گوگل در ابعاد بزرگ پیش بگیرند.
به این ترتیب به زبان سادهتر میتوان کوبرنتیز را وارث Borg دانست. یکی از خاصیتهای مهم متنباز شدن هر پروژهای توسعه سریع و گسترش آن در میان کاربران است و کوبرنتیز نیز بهسرعت راه خود را به جوامع فناوری باز کرد و به رقیب بزرگی برای ساز و کارهای دیگر کنترل کانتینرها مانند Apache Mesos و Docker Swarm تبدیل شد.
در حال حاضر هزاران توسعهدهندگان با اهداف تجاری و شخصی در توسعه و بهینهتر کردن کوبرنتیز فعالیت دارند و شاهد ایجاد نسخههای تجاری کوبرنتیز نیز هستیم که شرکتهای بزرگی مانند RedHat سرمایهگذاریهای زیادی را برای گسترش آن انجام دادهاند.
تعریف فنی کوبرنتیز:
کوبرنتیز (Kubernetes) نرم افزاری متن باز برای ارکستراسیون برنامه های کانتینربیس هست. اگر بخواهیم بهزبان ساده کوبرنتیز را توضیح دهیم باید بگوییم کوبرنتیز اجرا و مدیریت کانتینرهای مختلف را در سرورهای متفاوت که در یک پایگاه داده یا چندین پایگاه قرار گرفتهاند را بر عهده میگیرد. در کوبرنتیز کانتینرهای مختلفی که مشترکاً برنامه کاربردی خاصی را شامل میشوند در حالت جداگانه و مستقل تحت عنوان پاد (Pod) دستهبندی خواهند شد. این کار فرآیند مدیریت و شناسایی آنها را سادهتر میکند.

کوبرنتیز به زبان go نوشته شده و ۶ ژوئن ۲۰۱۴ با لایسنس آپاچی ۲ منتشر شده. وب سایتش kubernetes.io و گیت هابش اینجاست. معنیش هم به یونانی معنی سکاندار، خلبان، راننده و … هست.
به این ترتیب میتوان گفت سازمانها و شرکتهایی که سرویسهای مختلف نرمافزاری را اجرا میکنند ابتدا به کانتینرها و در نهایت به ابزارهایی مانند کوبرنتیز نیاز دارند تا با کمک گرفتن از کانتینرها، برنامهها را در بهترین حالت از یکدیگر جداسازی کنند. این فرآیند تولید و آزمایش اپلیکیشنها و سرویسها را سادهتر کرده و امکان اجرای آنها در یک زیرساخت مشترک را فراهم میکند.
ارکستراسیون یعنی چی ؟
یعنی کانفیگ اتوماتیک، هماهنگی و مدیریت، نرم افزار ها. حالا ارکستراسیون توی کوبرنتیز چیه ؟ بخش کانفیگ اتوماتیک، هماهنگی و مدیریت کانتینر ها میشه همین اورکستراسیون. یعنی کوبرنتیز به شما توی کانفیگ و مدیریت و هماهنگی کانتینتر هاتون کمک میکنه.
چرا بهش میگن k8s ؟

خب ممکنه فکر کنید تعداد دسته های سکان لوگوش ۸ تاست 🙂 ولی باید بهتون بگم که اون دسته ها ۷ تا هستن حالا اونا چرا ۷ تان ؟ چون زمانی که توی گوکل داشت توسعه پیدا می کرد اسمش Project 7 بود. k8s یک نوع numeronym هست. یعنی لغتی که از حرف و عدد تشکیل شده که یک روش متداول نامگذاری برای برنامه نویسان دهه 80 بوده که استفاده از حرف اول و آخر لغت و درج تعداد حروف بین آن بصورت عددی بوده. برای این که بیشتر معلوم باشه، کامل توضیحش میدم :
k = k
8 = ubernete
s = s
k + 8 + s = k + ubernete + s = Kubernetes
اگر فکر می کنید توضیحات من کافی نبود، این جا با جزییات بیشتری گفته شده 🙂
کوبرنتیز، کجا ها استفاده میشه ؟
اکثر شرکت هایی که از معماری microservice استفاده میکنن، احتمالا از کوبرنتیز هم استفاده میکنن. بیشتر جا هایی که از کانتینر و داکر خبری هست، احتمالا k8s هم اون جا حضور داره :))
ویژگیهای و برتریهای کوبرنتیز
به لطف کوبرنتیز شرکتها قادر هستند در فضای ابری برنامههای خود را به پیش بگیرند و کوبرنتیز را به عنوان یک سرویس عرضه نمایند. از طرف دیگر به لطف این قابلیت که کوبرنتیز بستر مناسبی برای راهاندازی و اجرای اپلیکیشنها را فراهم میکند توسعهدهندگان به سادگی میتوانند اپلیکیشن خود را طراحی نموده و در پلتفرمهای مختلف منتشر کنند. کاملاً مشخص است چنین ویژگی چالاکی و سرعت توسعهدهندگان را افزایش میدهد و به تمرکز تیم توسعهدهنده در حین توسعه اپلیکیشن کمک میکند.
جالب است بدانید تعداد کانتینرهایی که کوبرنتیس پوشش میدهد گاهی اوقات از صدها هزار هم تجاوز میکند که تعامل با چنین حجمی از کانتینرها بدون راهکارهایی مانند کوبرنتیز عملاً دستنیافتنی است.
کوبرنتیز قابلیتهای فنی زیادی را در اختیار توسعهدهندگان قرار میدهند که در این بین میتوان به امکان بررسی سلامت و تکثیر برنامهها در مجموعه سرورهای یک مجموعه اشاره کرد. قابلیت تشخیص سرویسها، تعادل حجمبار (Load Balancing) و مدیریت تنظیمات برای ایجاد سیستمهایی که از فناوری معماری Microservice Architecture بهره میبرند اشاره کرد.
کلیپهای به زبان انگلیسی روان برای درک بهتر موضوع:
در انتشارات PaaSino مطالب آموزش کوبرنتیز قرار میگیره و اگر خواستید میتونید از اون جا یادگیری رو شروع کنید 🙂
ممنون که وقت با ارزشتون رو گذاشتید و این نوشته رو خوندین
منابع :
#https://blog.iranserver.com/kubernetes/
#https://virgool.io/paasino/%DA%A9%D9%88%D8%A8%D8%B1%D9%86%DB%8C%D8%AA%DB%8C%D8%B2-%DB%8C%D8%A7-k8s-%DA%86%DB%8C%D8%B3%D8%AA-turdg5deh0ju
#https://codeblog.dotsandbrackets.com/what-kubernetes/
#https://www.keycdn.com/blog/kubernetes-tutorial
#https://www.freecodecamp.org/news/the-kubernetes-handbook/
