آشنایی با کوبرنتیس
کوبرنتیس که اغلب بهصورت اختصاری K8s خوانده میشود (چون در کلمه Kubernetes، هشت حرف بین K و S وجود دارد)، یک پلتفرم ارکتسراسیون کانتینر منبع باز است. کوبرنتیس که توسط گوگل توسعه یافته است و اکنون توسط توسط بنیاد محاسبات بومی ابری (CNCF) نگهداری میشود؛ چارچوبی قوی را برای خودکارسازی استقرار، مقیاسبندی و مدیریت برنامههای کانتینری ارائه میکند.
کوبرنتیس قبل از اینکه در سال 2014 منبع باز شود، برای اولین بار توسط مهندسان گوگل توسعه داده شد. کوبرنتیس از نوادگان Borg بهحساب میآید؛ یک پلتفرم ارکستراسیون کانتینری که بهصورت درونسازمانی در گوگل استفاده میشود.
در مقاله امروز در وب سایت ایران هاستینگ 24 قصد داریم تا شما را با کوبرنتیس بیشتر آشنا کنیم. با ما همراه باشید.
Kubernetes چیست؟
کوبرنتیس که اغلب بهصورت اختصاری K8s خوانده میشود (چون در کلمه Kubernetes، هشت حرف بین K و S وجود دارد)، یک پلتفرم ارکتسراسیون کانتینر منبع باز است. kubernetes که توسط گوگل توسعه یافته است و اکنون توسط توسط بنیاد محاسبات بومی ابری (CNCF) نگهداری میشود؛ چارچوبی قوی را برای خودکارسازی استقرار، مقیاسبندی و مدیریت برنامههای کانتینری ارائه میکند.
کوبرنتیس قبل از اینکه در سال 2014 منبع باز شود، برای اولین بار توسط مهندسان گوگل توسعه داده شد. کوبرنتیس از نوادگان Borg بهحساب میآید؛ یک پلتفرم ارکستراسیون کانتینری که بهصورت درونسازمانی در گوگل استفاده میشود. Kubernetes واژهای یونانی بهمعنای سکاندار یا خلبان است؛ بههمین دلیل در لوگوی kubernetes یک سکان وجود دارد. امروزه کوبرنتیس و اکوسیستم کانتینری در حال تبدیل شدن به یک پلتفرم محاسباتی همهمنظوره و اکوسیستمی هستند.
این پلتفرم بهعنوان پایه و اساس زیرساختها و برنامههای ابری مدرن بهحساب میآید و در این زمینه رقیبی جدی برای ماشینهای مجازی (VM) است که احتمالا از آن پیشی خواهد گرفت. این اکوسیستم سازمانها را قادر میسازد تا یک پلتفرم بهعنوان یک سرویس (PaaS) با بهرهوری بالا ارائه دهند که به وظایف و مسائل مربوط به زیرساختها و عملیات مرتبط با توسعه ابر بومی میپردازد. بهاین ترتیب تیمهای توسعه میتوانند فقط بر روی کدنویسی و نوآوری تمرکز کنند.
آشنایی با مفاهیم اولیه kubernetes
اگر بخواهیم بهطور دقیقتری به سوال kubernetes چیست پاسخ دهیم باید ابتدا با چند مفهوم اولیه آشنا شویم. در ادامه این مفاهیم را توضیح میدهیم.
کانتینرها
کانتینرها محیطهای رانتایم (Runtime) سبک و ایزولهای هستند که برنامهها و وابستگیهای آنها را پکیج میکنند. کوبرنتیس از فناوری کانتینر (مانند Docker) برای تبدیل برنامهها به کپسول و واحدهای پرتابل با قابلیت تکرار استفاده میکند. کانتینرها رفتار برنامه را در محیطهای مختلف فعال و فرآیند استقرار و مقیاسبندی برنامهها را ساده میکنند.
گرهها
گرهها که بهعنوان کارگر یا یک مینیون نیز شناخته میشود، یک ماشین فیزیکی یا مجازی است که برنامههای کانتینری را اجرا میکند. گرهها زیرساخت زیربنایی یک کلاستر کوبرنتیس را تشکیل میدهند و منابع لازم برای اجرای بارهای کاری برنامه را فراهم میکنند. هر گره دارای اجزای کوبرنتیسِ لازم برای ارتباط با کانتینرهای مستر و مدیریت است.
پادها (Pods)
یک Pod کوچکترین واحد قابل استقرار در کوبرنتیس است. پاد یک یا چند کانتینر را نشان میدهد که در یک محل قرار گرفتهاند و محکم بههم متصل شدهاند. کانتینرهای داخل یک پاد، از نام شبکه مشابه، آدرس IP و حجم ذخیرهسازی یکسانی بهره میبرند. پادها امکان قرارگیری کانتینترهای مرتبط را فراهم میکنند و ارتباطات بین کانتینری را تسهیل میکنند.
استقرار
استقرار در کوبرنتیس وضعیت مطلوب یک برنامه را مشخص میکند. آنها ایمیج کانتینر، منابع مورد نیاز، سیاستهای مقیاسبندی و سایر جزئیات مربوط به پیکربندی را مشخص میکنند. kubernetes با مدیریت خودکار استقرار و مقیاسبندی کپیهای برنامه، تضمین میکند که وضعیت واقعی برنامه با وضعیت مطلوب مطابقت دارد.
سرویس
سرویس یک بخش جداست که مجموعهای از پادها و خط مشی دسترسی به آنها را تعریف میکند. سرویس یک نقطه پایانی شبکه پایدار را فراهم میکند که خدمات دیگر یا مشتریان خارجی را قادر میسازد با پادها ارتباط برقرار کنند. سرویسها ماهیت پویای پادها را انتزاعی میکنند و به برنامهها اجازه میدهند بدون تاثیرگذاری بر اتصال، مقیاسبندی، جابهجا یا جایگزین شوند.