مقدمه
با گسترش مفهوم کانتینرها و استفاده از آنها در توسعه و اجرای نرمافزارها، نیاز به یک رویکرد موثر برای مدیریت و اجرای کانتینرها به شدت احساس میشه .
حالا چرا Kubernetes؟
Kubernetesکه به صورت مخفف K8s هم شناخته میشه، یک پلتفرم متنباز(Open Source) و قدرتمند برای ایجاد، مدیریت و اجرای کانتینرها است. این پلتفرم توسط گوگل توسعه یافته و به عنوان یک پروژه متنباز تحت نظر
Cloud Native Computing Foundation (CNCF) قرار گرفته.
توی مقاله قبلی توضیح دادیم که Docker چیه!
داکر یک ظرف غذای شگفت انگیز بود. حالا فکر کن که تو یک آشپزی و قراره برای یک گروه بزرگ یا تعداد زیادی از افراد غذا درست کنی. باید چندین مدل غذا درست کنی و در نتیجه به کمک نیاز داری. این جاست که کوبرنتیز میتونه وارد بشه و کمک کنه.
کوبرنتیز کمک میکنه تا همه کار ها را مدیریت کنیم. توی این سناریو با Docker با مواد غذایی مختلف یک پکیج داشتیم و باعث میشه ما اطمینان داشته باشیم که تمامی مواد غذایی را آماده داریم. کانتینر های Docker مثل بسته های مرتبی از مواد غذایی هستند که مرتب کنار هم قرار گرفتن. کوبرنتیز فرایند ها را هماهنگ و مدیریت میکنه. در صورت افزایش، کاهش یا هرگونه خطا در حین کار کانتینر ها شرایط را handle می کنن.
حالا بیاید همین شرایط را در کامپیوتر و سیستم بررسی کنیم، همونطور که گفتیم Docker مسئول بسته بندی و طبقه بندی نرم افزار ها در همراه با وابستگی های مورد نیاز شه. لازم نیست خودتون هیچگونه وابستگی شامل کتابخانه، پایگاه داده یا سرویس را دانلود کنید. Docker این کار رو انجام میده.
کوبرنتیز بعد از این فرایند، فیلتر ها رو برمیداره و توی یک کلاستر (مجموعه ای از کامپیوتر ها) راه اندازی میکنه.
کوبرنتیز این کلاستر را مدیریت میکنه و حواسش به منابع مورد نیاز تو هست. منابعی مثل CPU, Memory و غیره را فراهم میکنه و مطمئنه به صورت پیشفرض هم تنظیم میشه و همه چیز اوکیه!
کوبرنتیز همچنین رشته ای از برنامه ها را ایجاد میکنه.کار داکر قرار دادن اپلیکیشن ها داخل این کانتینر هاست. داکر متن باز هست و کدش روی GitHub موجود هست.
قابلیت های Kubernetes
- قابلیت ایزولاسیون: Kubernetes
از محیط ایزولهای برای هر کانتینر استفاده میکنه، که از تداخل بین کانتینرها جلوگیری میشه.
- بالا بردن توانایی مقیاسپذیری:
با Kubernetes میتونید به سرعت تعداد کانتینرها را افزایش یا کاهش بدید تا با ترافیک و نیازهای برنامه همگام بشه.
- خودکارسازی: Kubernetes
اجرای تغییرات و بهروزرسانیها را خودکار میکنه، که زمان و تلاش تیمهای مدیریتی رو به حداقل برسونه.
- قابل حمل بودن :
با استفاده از Kubernetes میتونید برنامهها و کانتینرها را به سادگی از یک محیط به محیط دیگر انتقال بدید.
- اکوسیستم گسترده:
اکوسیستم Kubernetes شامل ابزارها و افزونههای متنوعی برای مدیریت و مانیتورینگ کانتینرها میشه.
اجزای Kubernetes
Kubernetes شامل اجزا اصلی زیر هست :
- کلاستر : (Cluster) مجموعه ای از سرورها که کانتینرها روی آنها اجرا میشن .
- مستر : (Master) متشکل از اجزایی مانند مدیر کلاستر (Cluster Manager) و برنامههای کنترلی برای مدیریت کلاستر.
- کانتینرها(Containers): برنامهها و وابستگیهای اونها که در کانتینرها بسته میشه.
- کاوشگر : (Pod) کوبرنتیز از Pod به عنوان اساس اجرای کانتینرها استفاده میکنه.
- کنترلر : (Controller) اجزایی که تعداد Podها را تنظیم و اداره میکنه.
- خدمات : (Services) ایجاد یک لایه مجازی از خدمت برای دسترسی به Podها.
نتیجهگیری
Kubernetes یک پلتفرم مدیریت کانتینرهای متنباز هست که توسط گوگل توسعه داده شده. این ابزار به توسعهدهندگان و مدیران سیستمها امکان میده تا کانتینرها رو به صورت موثر و هوش مصنوعی مدیریت کنه و به سرعت از قابلیتهایی مانند ایزولاسیون، مقیاسپذیری، و خودکارسازی استفاده کنه. این فناوری تاثیر زیادی روی توسعه نرمافزار و مدیریت بناهای نرمافزاری داره و به صورت گسترده در صنایع مختلف مورد استفاده قرار میگیره .
با این مقاله یه دیدی کلی از Kubernetes ، مزایا و اجزای اصلی اون پیدا میکنید . امیدوارم براتون مفید و کاربردی باشه و برای یاگیری مطالب بیشتر با ما همراه باشید .