Frame 18705

مدرس

کیوان نیکویی

سطح

مبتدی

فصل

10

دانشجو

1

ساعت

40:00:00

Fundamentals of Kubernetes Role in Devops

 Kubernetes یک ابزار مدیریت کلاستر می باشد که توسط شرکت گوگل به عنوان یک نرم افزار منبع باز برای استقرار، مدیریت و نظارت بر محیط های کانتینر توسعه یافته است.  این ابزار قدرتمند قابلیت آنرا دارد که هم در بستر Cloud ایفای نقش کند و هم در بستر ماشین های مجازی . در واقع در یک کلاستر کوبرنتیز چندین ماشین CRI شامل Docker  , Contained , CRIO وغیره که وظیفه اجرا و مدیریت Container  ها را داشته اند قرار خواهد گرفت و با این مهم مشکل Single Point Of Failure بودن Node‌های CRI از بین خواهد رفت و با Down شدن هر کدام از ماشین های CRI تمامیContainer ها که همان Applicationها می باشند به سایر ماشین های CRI موجود در کلاستر کوبرنیتز منتقل می شوند و بدون هیچ اختلالی در سرویس دهی این امکان فراهم خواهد شد.

این ابزار شامل دو بخش Master و Worker ‌ می باشد که Worker  ها معمولا وظیفه سرویس دهی به Application ها و سامانه های سازمانی کاربران را دارند و Master  ها که شامل دو بخش Control Plane , Backup Plane  هستند وظیفه مدیریت کلاستر را ایفا می کنند . قسمت Control Plane  وظیفه مدیریت و کنترل و سلامت کلاستر را دارد و بخش Backup Plane   وظیفه نگهداری از وضعیت جاری کلاستر را بعهده خواهد داشت و در صورتی که کلاستر به هر دلیل با مشکلی مواجه شود که به طور کامل از کار بیافتد و شرایط Recovery را نداشته باشد توسط Backup  موجود در این بخش می توان کلاستر را بطور کامل زنده نمود.

Fundamentals of Kubernetes Role in Devops

Rectangle 1644

مدرس


کیوان نیکویی

سطح

مبتدی

فصل

10

دانشجو

590

ساعت

40:00:00
7200000تومان
8000000تومان
7200000 تومان
8000000 تومان

خدمات جانبی

معماری کوبرنتیز  (Kubernetes Architecture)

Kubernetes  دو بخش دارد - Master Node و Worker Node.

Master Nodes :

خش Master دارای اجزای مختلفی است، مانند:

  • ETCD
  • Controller Manager
  • Scheduler
  • API Server

بخش Etcd : این قسمت قابلیت آن را دارد که اطلاعات پیکربندی کلاستر را که توسط هر کدام از node های کلاستر تامین می شود را ذخیره می کند. etcd یک key value store با امکان دسترسی بالا است که می تواند خود بصورت کلاستر شده نصب و راه اندازی شود .

بخش API Server: توسط این بخش کلیه دستوراتی که توسط خود کوبرنتیز یا کاربر با مدل CLI یا GUI صادر می شود قابل دریافت و پاسخ گویی می باشد. API server یک درگاه ورودی را پیاده سازی می کند به این معنی که ابزارهای مختلف شامل kubectl و سایر Apiها می توانند به راحتی با آن ارتباط برقرار کنند.

بخش Control Manager :  کنترل‌کننده‌ها حلقه‌های کنترلی هستند که به طور مداوم وضعیت کلاستر را مشاهده می‌کنند، سپس در صورت نیاز تغییرات ایجاد می‌کنند یا درخواست می‌کنند. هر کنترل کننده سعی می کند حالت کلاستر فعلی را به حالت مطلوب نزدیک کند.

کنترلرها به طور مداوم با kube-apiserver صحبت می کنند و kube-apiserver تمام اطلاعات Node ها را از طریق Kubelet دریافت می کند.

بخش Scheduler : Scheduler‌ در Kubernetes یک فرآیند کنترلی است که Pods را به Nodes اختصاص می دهد . این بخش تعیین می‌کند که کدام Node ها برای هر Pod در صف زمان‌بندی با توجه به محدودیت‌ها و منابع موجود، مکان‌های معتبری هستند. سپس زمان‌بند هر Node معتبر را رتبه‌بندی می‌کند و Pod را به یک Node مناسب متصل می‌کند.

Worker Nodes :

بخش Worker دارای اجزای مختلفی است، مانند:

  • Docker , Containerd , CRIO : CRI  , …
  • Kubelet
  • KubeProxy

  (Container Runtime Interface (CRI : این بخش شامل مدیریت کانتینرها یا همان Application ها می باشد و در واقع این امکان را فراهم می کند تا در کوبرنتیز کانتینر ها قابل اجرا باشند و دستورات خود را از Kubelet در یافت می کند .

Kubelet : این بخش درگاه ورودی در Worker ها می باشد ودستورات خود را شامل ایجاد هر نوع Resource يا حذف آنها یا انجام هر گونه تغییری برروی آنها را از Kube-api-server می گیرد .

Kube-proxy : این بخش جهت اتصال به کانتینر ها را فراهم می کند و در خصوص مباحث شبکه و نحوه اتصال به کانتینر ها مطرح شده و در صورتیکه مشکل در برقراری ارتباط با کانتینر مشاهده شود جهت Troubleshooting  از آن میتوان استفاده نمود.