کوبرنتیز (Kubernetes)چیست

داناک وبلاگ

لوگو کوبرنتیز - داناک

Kubernetes چیست ؟

Kubernetes یک پلتفرم متن باز (Open Source)  می باشد که در پیاده سازی آن از زبان  برنامه نویسی GO استفاده شده و در سال 2014 این پلتفرم با حمایت شرکت گوگل (Google) در اختیار عموم قرار گرفته است . گوگل در 21 July 2015  با انتشار
Kubernetes 1.0 آغاز همکاری خود را بنیاد لینوکس (Linux Foundation) برای ایجاد پروژه Cloud Native Computing Foundation یا همان CNCF شروع کرد. هدف از ایجاد و پیاده سازی از Kubernetes  اجرا ، مدیریت کانتیرنر (Container) ها برروی کلاستر (Cluster) هایی متشکل  گروهی از سرورها در یک یا چند مرکز داده (Data Center)  بوده است . این پلتفرم از یکی پروژه های درون سازمانی گوگل به نام بورگ (Borg) ایده گرفته است . در حال حاضر کوبرنتیس(Kubernetes) با حمایت،پشتیبانی و توسعه این پلتفرم توسط شرکت هایی همچون Red Hat ،CoreOS ،Ubuntu، Platform 9  و غیره … باعث گشترش جامعه تجاری این پلتفرم شده اند  .

نحوه کار کوبرنتیز Kubernetes

در پتلفرم و معماری Kubernetes یک یا چندین سرور به عنوان Master  انتخاب می شود که وظایف پردازشی، مدیریت کلاستر (Cluster)ها را برعهده میگیرد. سرور های Master  در پلتفترم و یا معماری Kubernetes به عنوان اصلی ترین نقطه ارتباط با کلاستر میباشد و از دیگر وظایف  Master سرور ها  ارایه API به کاربران برای برسی سلامت سرور های کلاستر و سامان دهی ارتباط  بین اجزا مختلف می باشد.

سایر سرور ها به عنوان Worker Node  در کلاستر شناخته می شوند، Worker Node  ها مسئول انجام بار کاری هستند و آن ها را با منابع محلی و خارجی اجرا می کندد . برای رعایت ایزوله‌سازی، انعطاف و مدیریت، Kubernetes برنامه و سرویس‌ها را در Container اجرا می‌کند. معمولن از داکر برای این کار استفاده می‌شود. هر Node، از Masterدستورهای ایجاد و حذف Container را دریافت و دستورات لازم شبکه را برای جابجایی ترافیک مربوط به آن تنظیم می‌کند.
کاربران از طریق API توسط Master  با کلاستر در ارتباط می باشند و اجرا، پیاده سازی و نحوه مدیریت برنامه یا سرویس را در قالب فایل YAML به کلاستر ارسال می کنند و Master  به  وسیله این فایل YAML که نحوه ایجاد و مدیریت با توجه به نیازمندی های کاربر که توسط این فایل مشخص شده را برروی زیرساخت اجرا میکند .

در پلتفرم Kubernetes سازوکار پایه برای پیاده سازی برنامه ها کانتینر(Container) ها می باشند، اما برای مقیاس پذیری، مدیریت و پایداری برنامه و سرویس های درحال اجرا که به جای تعامل مستقیم با کانتینر(Container)ها بهتر است عناصری که Kubernetes ارائه می دهد استفاده شود، که یکی از مهمترین آن Pod  است.
برای اجرا و پیاده سازی یک سرویس یا برنامه در کوبرنتیز یک یا چندین کانتینر در کنار هم که بعنوان یک برنامه یا سرویس کنترل  می شوند را داخل یک Pod قرار می گیرند. Pod  ها به عنوان یک واحد مستقل مدیریت می شوند و محیط، فضای IP  خود را با یکدیگر به اشتراک میگذارند .
هم‌چنین Replication Controller به‌شکل خودکار اطمینان حاصل می‌کند که تعداد Podهای پیاده شده با آنچه در فایل پیکربندی مشخص شده است، هم‌خوانی داشته باشد.
 یکی از مواردی که کاربر به‌شکل مستقیم می‌تواند با کوبرنتیز برای اجرای برنامه ایجاد و مدیریت کند Deployment نام دارد که از Pod و Replication Controller استفاده کرده ولی سختی کار با آن‌ها را از کاربر پنهان می کند. 

مشاوره رایگان

نیاز به مشاوره دارید؟ واحد پشتیبانی داناک آماده پاسخگویی به سوالات شماست!