Kubernetes یک پلت فرم منبع باز برای استقرار و مدیریت کانتینرها است. این برنامه زمان اجرای کانتینر ، ارکستراسیون کانتینر ، ارکستراسیون زیرساخت کانتینر محور ، مکانیسم های خود ترمیمی ، کشف سرویس و تعادل بار را ارائه می دهد. برنامه های اصلی آن استقرار ، مقیاس بندی ، مدیریت و ترکیب کانتینرهای  برنامه در host cluster است.

اما کوبرنتیز فراتر از یک ارکستر کانتینر است. می توان از آن به  عنوان یک سیستم عامل برای برنامه های cloud native استفاده کرد، به این معنا که این پلتفرمی است که برنامه ها روی آن کار می کنند ، درست مانند برنامه های دسکتاپ که بر روی MacOS ، Windows یا Linux اجرا می شوند.

 

 

ازسطح بالا ، معماری kubernetes شامل یک صفحه کنترل (master) ، یک سیستم ذخیره سازی توزیع شده برای حفظ وضعیت کلاستر (etcd) و تعدادی گره کلاستر (Kubelets) است.

 

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

صفحه کنترل از پنج جزء اصلی تشکیل شده است:

  • Kube-apiserver
  • Kube-controller-manager
  • Kube-scheduler
  • Etcd
  • Cloud-controller-manager

 

سرور API ،API هایی را برای پشتیبانی از چرخه زندگی (مقیاس بندی ، به روز رسانی و غیره) برای انواع مختلف برنامه ها ارائه می دهد. همچنین به عنوان دروازه ورود به cluster عمل می کند ، بنابراین سرور API باید توسط مشتریان خارج از کلاستر قابل دسترسی باشد.

 

Controller Manager یک شیطان است که حلقه های کنترل اصلی را اجرا می کند ، وضعیت کلاستر را مشاهده می کند و تغییراتی در وضعیت به سمت وضعیت دلخواه ایجاد می کند. Cloud Controller Manager برای پشتیبانی بهینه از مناطق در دسترس ، نمونه های VM ، خدمات ذخیره سازی و خدمات شبکه برای DNS ، مسیریابی و متعادل سازی بار در هر ابر عمومی ادغام می شود.

 

Scheduler مسئول زمانبندی کانتینر در گره های کلاستر است. محدودیت های مختلفی را در نظر می گیرد ، مانند محدودیت منابع یا ضمانت ها ، و ویژگی های قرابت و ضد قرابت.

 

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

اگر خوشه Kubernetes شما از etcd به عنوان ذخیره کننده پشتیبان خود استفاده می کند ، مطمئن شوید که برنامه پشتیبان گیری برای این داده ها دارید.

 

 

cloud controller manager به شما امکان می دهد کلاستر خود را به API ارائه دهنده ابر خود متصل کرده و اجزای سازنده با آن پلت فرم ابری را از اجزایی که فقط با کلاستر شما تعامل دارند ، جدا کند.

توجه: اگر Kubernetes را در محل شخصی خود یا در محیط یادگیری در رایانه شخصی خود اجرا می کنید ، کلاستر یک مدیر کنترل کننده ابر ندارد.

کنترل کننده های زیر می توانند وابستگی به ارائه دهنده ابر داشته باشند:

  • کنترل گره: برای بررسی ارائه دهنده ابر برای تعیین اینکه آیا یک گره پس از توقف پاسخگویی در ابر حذف شده است یا خیر
  • کنترل کننده مسیر: برای راه اندازی مسیرها در زیرساخت ابر زیرین
  • سرویس کنترل: برای ایجاد ، به روز رسانی و حذف تعادل بار ارائه دهنده ابر

 

نودهای کلاستر ماشین هایی هستند که کانتینر را اجرا می کنند و توسط گره های اصلی مدیریت می شوند. Kubelet اصلی ترین و مهمترین کنترل کننده در Kubernetes است. این وظیفه هدایت لایه اجرای کانتینر را بر عهده دارد، معمولاً Docker.

گره های خوشه ای از سه جزء اصلی تشکیل شده اند:

  • Kubelet
  • Kube-proxy
  • Container Runtime

 

عاملی که روی هر node در کلاستر اجرا می شود. اطمینان حاصل می کند که containers در Pod کار می کنند.

kubelet مجموعه ای از PodSpec ها را که از طریق مکانیزم های مختلف ارائه شده اند می گیرد و اطمینان می دهد که container های  توصیف شده در PodSpec ها سالم و در حال اجراهستند. kubelet container هایی را که توسط Kubernetes ایجاد نشده است مدیریت نمی کند.

 

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

Kube-proxy از لایه فیلتر بسته سیستم عامل در صورت وجود و در دسترس بودن استفاده می کند. در غیر این صورت ، kube-proxy خود ترافیک را ارسال می کند.

 

container runtime نرم افزاری است که وظیفه اجرای ظروف را بر عهده دارد.

منبع : medium.com

Container container-based devops Docker Kuber Kubernetes دواپس کانتینر کلاستر کوبرنتیز