• هیچ محصولی در سبد خرید نیست.

کوبرنتس چیست؟ | What is Kubernetes (کامل)(مرجع)

کوبرنتس چیست؟ | What is Kubernetes

Kubernetes همچنین به عنوان ‘k8s’ شناخته می شود. این کلمه از زبان یونانی گرفته شده است که به معنی خلبان یا سکان دار است. Kubernetes یک سیستم عامل منبع باز ، قابل حمل و منبع باز است که توسط Google در سال ۲۰۱۴ طراحی شده است. این سیستم عمدتا برای خودکار سازی ، مقیاس گذاری و عملکرد برنامه های مبتنی بر کانتینر در خوشه گره ها یا همان نود ها استفاده می شود. این برنامه همچنین برای مدیریت خدمات برنامه ها با استفاده از روش های مختلفی که مقیاس پذیری ، پیش بینی پذیری و در دسترس بودن بالا را فراهم می کنند ، طراحی شده است. در واقع یک نسخه پیشرفته از “Borg” برای مدیریت فرایندهای طولانی مدت و کارهای دسته ای است. امروزه ، بسیاری از سرویس های ابری زیرساختی مبتنی بر Kubernetes را ارائه می دهند که می تواند به عنوان سرویس ارائه دهنده سیستم عامل در آن مستقر شود. این تکنیک یا مفهوم با بسیاری از ابزارهای کانتینر مانند docker کار می کند و از معماری کلاینت سرور پیروی می کند.

 

کلید های شی گرا در کوبرنتس‌ :

 

 

این متود کوچکترین و ساده ترین واحد اساسی برنامه Kubernetes است. این شی فرایندهایی را که در خوشه در حال اجرا هستند نشان می دهد. Pod
نود چیزی نیست جز یک میزبان منفرد ، که برای اجرای ماشین های مجازی یا فیزیکی استفاده می شود. یک نود در خوشه Kubernetes نیز به عنوان مینیون شناخته می شود. Node
سرویس در Kubernetes مجموعه منطقی Pods هایی است که با هم کار می کنند. با کمک سرویس ها ، کاربران می توانند به راحتی تنظیمات تعادل بار را مدیریت کنند. Service
از ReplicaSet در Kubernetes برای شناسایی تعداد خاص ماکت های pod در یک زمان معین استفاده می شود. این جایگزین کنترل کننده تکثیر می شود زیرا از قدرت بیشتری برخوردار است و به کاربر اجازه می دهد از انتخاب برچسب “set-based” استفاده کند. ReplicaSet
Kubernetes از خوشه های مختلف مجازی پشتیبانی می کند ، که به عنوان فضای نامی شناخته می شوند. این یک روش برای تقسیم منابع خوشه بین دو یا چند کاربر است. Namespace

 

ویژگی های Kubernetes

  • Pod: این یک واحد استقرار در Kubernetes با یک آدرس پروتکل اینترنت واحد است.
  • Horizontal Scaling : این یک ویژگی مهم در کوبرنتس است. این ویژگی از HorizontalPodAutoscalar برای افزایش یا کاهش خودکار تعداد غلافها در یک استقرار ، کنترل کننده تکثیر ، مجموعه ماکت یا مجموعه تنظیم شده بر اساس استفاده از CPU مشاهده شده استفاده می کند.
  • Automatic Bin Packing: کوبرنتس به کاربر کمک می کند تا حداکثر و حداقل منابع رایانه ها را برای ظروف خود اعلام کند.
  • Service Discovery and load balancing: کوبرنتس آدرس های IP و نام DNS را برای مجموعه ای از کانتینرها اختصاص می دهد و همچنین بار موجود در آنها را متعادل می کند.
  • Automated rollouts and rollbacks: با استفاده از راه اندازی ، Kubernetes تغییرات و به روزرسانی ها را در برنامه یا پیکربندی آن توزیع می کند. اگر مشکلی در سیستم رخ دهد ، این روش بلافاصله آن تغییرات را برای شما برمی گرداند.
  • Persistent Storage: ;کوبرنتس یک ویژگی ضروری به نام “ذخیره سازی مداوم” را برای ذخیره سازی داده ها فراهم می کند ، که پس از کشته شدن یا برنامه ریزی مجدد غلاف ، نمی توان آن را از دست داد. Kubernetes از سیستم های ذخیره سازی مختلفی برای ذخیره داده ها مانند Google Compute Engine پشتیبانی می کند.
  • Self-Healing:این ویژگی نقش مهمی در مفهوم Kubernetes دارد. آن دسته از کانتینرهایی که در طی مراحل اجرا از کار افتاده اند ، Kubernetes آنها را به طور خودکار دوباره راه اندازی می کند. و آن دسته از ظروفی که به بررسی بهداشتی تعریف شده توسط کاربر پاسخ نمی دهند ، کار آنها را به طور خودکار متوقف می کند.

 

معماری Kubernetes

 

 

معماری Kubernetes در واقع از معماری مشتری-سرور پیروی می کند. این شامل دو مولفه اصلی زیر است:

نود های اصلی (هواپیمای کنترل)
نود های کارگر

Master Node یا Kubernetes Control Plane

نود های اصلی در معماری Kubernetes برای مدیریت حالات یک خوشه استفاده می شود. این در واقع یک ورودی برای انواع وظایف اداری است. در خوشه Kubernetes ، بیش از یک نود اصلی برای بررسی احتمال خطا وجود دارد.

چهار کامپونت مولفه مختلف که در گره Master یا صفحه کنترل Kubernetes وجود دارد در زیر آمده است:

  • API سرور
  • برنامه ریز
  • مدیر کنترل کننده
  • ETCD

API سرور یا Server API

سرور Kubernetes API دستورات REST را که توسط کاربر ارسال می شود دریافت می کند. پس از دریافت ، درخواستهای REST را تأیید می کند ، پردازش می کند و سپس آنها را اجرا می کند. پس از اجرای دستورات REST ، حالت حاصل از یک خوشه در ‘etcd’ به عنوان ذخیره سازی مقدار کلید توزیع می شود.

 

برنامه ریز یا Scheduler

برنامه ریز در یک نود اصلی کارها را به نود های کارگر زمان بندی می کند. و  برای هر نود کارگر ، ذخیره اطلاعات استفاده از منابع استفاده می شود.
به عبارت دیگر ، این فرایندی است که وظیفه تخصیص Pod به نود های کارگر را دارد.

 

مدیر کنترل کننده یا Controller Manager

مدیر Controller به عنوان کنترل کننده نیز شناخته می شود. این یک daemon  است که در حلقه های کنترل غیر پایان دهنده اجرا می شود. کنترل کننده ها در یک گره اصلی وظیفه ای را انجام می دهند و وضعیت خوشه را مدیریت می کنند. در Kubernetes ، مدیر کنترل کننده انواع مختلف کنترل کننده ها را برای مدیریت گره ها ، نقاط انتهایی و غیره اجرا می کند.

 

ETCD

این یک منبع باز ، ساده و توزیع شده با مقدار Key است که برای ذخیره داده های خوشه استفاده می شود. این بخشی از نود های اصلی است که به زبان برنامه نویسی GO نوشته شده است.

اکنون  ما در مورد عملکرد و اجزای یک گره اصلی یاد گرفته ایم. بیایید ببینیم عملکرد نود کارگر چیست و چه اجزایی تشکیل شده است.

 

نود کارگر یا Worker Node

نود کارگر در Kubernetes با نام minions نیز شناخته می شود. نود کارگر یک ماشین فیزیکی است که برنامه ها را با استفاده از Pod اجرا می کند. این شامل کلیه خدمات ضروری است که به کاربر اجازه می دهد منابع را به ظرف  های برنامه ریزی شده ای اختصاص دهد.

در زیر مولفه های مختلفی وجود دارد که در نود Worker یا همان کارگر وجود دارد:

 

Kubelet

این مولفه یک سرویس عامل است که روی هر نود کارگر در یک کلاستر اجرا می شود. عملکرد روان pod و ظرف آنها را تضمین می کند. هر Kubelet در هر نود کارگر با نود اصلی ارتباط برقرار می کند. همچنین کانتینرهایی را که مستقیماً توسط نود اصلی در pods ها سازمان یافته اند ، شروع ، متوقف و نگهداری می کند.

 

Kube-proxy

این یک سرویس پراکسی از Kubernetes است که به سادگی در هر نود کارگر در کلاسه اجرا می شود. هدف اصلی این مولفه ارسال درخواست است. هر نود از طریق Kube-proxy با سرویس های Kubernetes ارتباط برقرار می کند.

 

Pods

pods ترکیبی از یک یا چند کانتینر است که منطقاً روی نود ها اجرا می شوند. یک گره کارگری می تواند چندین pods را به راحتی اجرا کند.

 

خوب تا اینجای کار با معماری دقیقی از کوبرنتس آشنا شدید حال می خواهیم بحث را کمی عمومی تر کنیم تا بتوانید در مورد مزایای و معایب کوبرنتس و داکر کمی صحبت کنیم .

داکر یا کوبرنتس | Docker vs Kubernetes

امروز ، هر دو داکر و کوبرنتس از ابزار های مهم کانتینرها در چرخه حیات DevOps پیشگام هستند. داکر برای پیکربندی ، ساخت و توزیع کانتینرها از یک بستر ظرف سازی استفاده می کند ، در حالی که Kubernetes یک اکوسیستم برای مدیریت یک کلاستر از کانتینرهای داکر است.

از آنجا که داکر و کوبرنتس شباهت زیادی به یکدیگر دارند ، بنابراین قبل از دانستن تفاوت دوکر و کوبرنتس ، ابتدا باید بدانید که داکر چیست؟ و کوبرنتس چیست؟

 

داکر چیست ؟ | What is Docker

Docker یک پلتفرم بهینه سازی ارائه می دهد که از سیستم عامل های مختلف مانند لینوکس ، ویندوز و مک پشتیبانی می کند. به ما این امکان را می دهد تا به راحتی برنامه های کاربردی را بسازیم ، آنها را با تمام وابستگی های مورد نیاز بسته بندی کنیم و آن را برای کار با ماشین های دیگر ارسال کنیم. مزیت استفاده از Docker این است که مزایایی را هم برای توسعه دهندگان و هم برای مدیر سیستم فراهم می کند. برای توسعه ، تمرکز بر روی کد دادن بدون نگرانی در مورد سیستم است. برای یک مدیر سیستم ، انعطاف پذیری را فراهم می کند تا تعداد سیستم های آزمایش برنامه ها را کاهش دهد.
Docker شامل ویژگی های مختلفی از قبیل پیکربندی آسان و سریعتر ، مدیریت امنیت ، استفاده از Swarm ، مسیریابی ، جداسازی برنامه و افزایش بهره وری است.

 

اما کوبرنتس چیست ؟ | What is Kubernetes

Kubernetes (همچنین به عنوان k8s شناخته می شود) یک پلت فرم منبع باز است که توسط Google ساخته شده است. این ابزار قدرتمند ، مفید و مقیاس پذیر برای مدیریت ، به کارگیری برنامه های پیچیده containerized ارائه می دهد. مزیت استفاده از Kubernetes این است که بهترین راه حل را برای مقیاس بندی containerized ارائه می دهد.

Kubernetes شامل ویژگی های مختلفی مانند اجرای در همه جا ، پخش خودکار و بازگرداندن مجدد ، تنظیم ذخیره سازی ، اجرای دسته ای ، مدیریت مخفی و پیکربندی ، مقیاس گذاری افقی و خدمات اضافی است.

 

مقایسه داکر با کوبرنتس |‌ Docker vs Kubernetes

Kubernetes

Docker

ساخته شده توسط شرکت گوگل ساخته شده توسط شرکت داکر
اولین بار در سال ۲۰۱۴ منتشر شد. اولین بار در سال ۲۰۱۳ منتشر شد.
این زیرساختی برای مدیریت چندین کانتینر است. این یک فناوری مبتنی بر کانتینر است که برای ایجاد محیط ایزوله برای برنامه ها استفاده می شود.
به ما امکان می دهد تا از ابزارهای داخلی برای ورود به سیستم و نظارت استفاده کنیم. به ما امکان می دهد تا از ابزارهای شخص ثالث مانند ELK برای ورود به سیستم و نظارت استفاده کنیم.
ارائه دهندگان خدمات ابری عمومی آن Google ، Azure و AWS هستند. ارائه دهنده خدمات ابر عمومی آن فقط Azure است.
قابلیت شخصی سازی بالایی دارد . کمتر قابلیت شخصی سازی دارد.
حداکثر کانتیر های آن ۳۰۰/۰۰۰ است . حداکثر تعداد کانتینر های آن ۹۵۰۰۰ است.
نصب آن پیچیده است. نصب راحت و سریع .
می تواند مقیاس گذاری خودکار را انجام دهد. نمی تواند مقیاس گذاری خودکار را انجام دهد.
داشبورد تحت وب را فراهم می کند. هیچ داشبوردی ارائه نمی دهد.

 

جدول بالا به صورت کاملا ساده تمامی جزییات تخصصی این دو نرم افزار را مقایسه کرده است .

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

درباره ما

پایتونی/تیم توسعه زبان برنامه نویسی پایتون ، اولین ارایه دهنده خدمات هوش مصنوعی بر بستری ابری ایران می باشد . هدف اصلی پایتونی ها ساخت یک جامعه از توسعه دهندگان به روز ترین و کاربردی ترین زبان برنامه نویسی دنیا در ایران است .

 

logo-samandehi

[form to=”[email protected]” subject=”Subject”] [form_element type=”text” validate=”email” options=”” placeholder=”ایمیل”] [form_element type=”submit” validate=”” options=”” placeholder=”ارسال”] [/form]

 

 

X