آموزش kubernetes

آموزش Kubernetes – قسمت اول

کوبرنتیز یکی از پلتفرم های کاربردی مدیریت کانتینرها است و آموزش Kubernetes از یادگیری مفاهیم پایه و معماری اون شروع میشه که در این مجموعه قصد دارم شما رو با مفاهیم مهم کوبرنتیز آشنا کنم تا برای یادگیری و کار با این سیستم یک پایه بسیار قوی داشته باشید. کوبرنتیز(Kubernetes) یا k8s یک پلتفرم آزاد با معماری مایکروسرویس است که به ما کمک میکنه تا کانتینرها و سرویس های کانتینری رو بهتر و راحتتر مدیریت کنیم و محیطی پایدار با دسترسی پذیری بالا بسازیم.

 

کوبرنتیز(Kubernetes) در یک نگاه:

پلتفرم کوبرنتیز یک پلتفرم آزاد، توسعه پذیر و قابل حمل برای مدیریت کانتینرها است که در سال 2014 توسط گوگل با این نام به صورت متن باز منتشر شد. این پلتفرم حاصل بیش از 15سال تجربه مهندسین در حوزه پردازش و اجرای Workloads در مقیاس های بسیار بزرگ است.

اگر در مورد کانتینرها چیزی نمیدونید اینجا رو بخونید:

آموزش داکر رایگان

 

چرا به Kubernetes نیاز داریم؟

در یک محیط پروداکشن که برنامه های ما در کانتینرها اجرا میشن باید طوری اونها رو مدیریت کنیم که در هر حالتی به Downtime نخوریم. اگر سیستم دچار مشکل شد، راهی برای بازگشت سریع باشه، اگر کانتینری از بین رفت، کانتینر جدیدی جایگزینش بشه و کلی اگر دیگه…

اینجاست که کوبرنتیز وارد میشه و باید آموزش Kubernetes رو به خوبی دنبال کنیم. 😀

 

آشنایی با اجزای پلتفرم کوبرنتیز:

وقتی یک پلتفرم کوبرنتیز رو نصب و مستقر میکنیم، یک کلاستر کوبرنتیز ایجاد کردیم. هر کلاستر کوبرنتیز از یک یا چند worker که به اونها Node میگیم، تشکیل شده. Node ها وظیفه اجرای Pod ها که موجودیتی برای اجرای workloads در این پلتفرم هستند رو به عهده دارند. در سمت دیگه Control Plane وظیفه کنترل و مدیریت Node و Pod ها را به عهده داره که در سیستم های Production بخش control plane در چند سیستم و تعدادی Node برای تحمل خطا(Fault-tolerance) و دسترسی پذیری بالا(High Availability) نصب و پیاده سازی میشه.

اجزای کوبرنتیز

 

اجزای Control Plane کوبرنتیز:

kube-apiserver: این سرویس API کوبرنتیز رو جهت ارتباط با سیستم ارایه و منتشر میکنه.

kube-scheduler: وظیفه انتخاب نود مناسب برای اجرای Pod رو به عهده داره.

kube-controller-manager: برنامه ای است که controller های مختلفی رو اجرا و دیگر موجودیت های سیستم مانند Node, Replication, Endpoint و… رو کنترل و مدیریت میکنه.

cloud-controller-manager: وظیفه اتصال کلاستر کوبرنتیز به API های سرویس دهنده ابری رو به عهده داره. زمانی که کوبرنتیز رو در محیط خصوصی نصب میکنیم این ماژول در دسترس نیست.

etcd: یک ابزار نگهداری داده key-value است که داده های کوبرنتیز رو نگهداری میکنه.

 

اجزای Node در کوبرنتیز:

این ماژول و برنامه ها روی تمام نودهای worker اجرا میشن…

kubelet: کنترل میکنه که کانتینرها درون موجودیت Pod به درستی اجرا بشن.

kube-proxy: وظیفه ارتباط شبکه رو به عهده داره و نیازمندی های موجودیت Service رو فراهم میکنه. همچنین rule های شبکه Pod ها رو مدیریت و میگه کی به کی و از کجا میتونه دسترسی داشته باشه. این ماژول کارشو با ابزار iptables یا به صورت مستقل انجام میده.

Container runtime: برنامه ای هست که وظیفه اجرای کانتینرها رو به عهده داره. کوبرنتیز از Docker, containerd, CRI-O به طور کامل پشتیبانی میکنه.

به پایان قسمت اول رسیدیم.

نظراتتون رو لطفا برام کامنت کنید.

موفق و پیروز باشید.

18

2 دیدگاه

  1. سلام. خسته نباشید.
    پیشنهاد میکنم در نوشته بعدی با یک مثال از لحظه اجرا یک کانتینر و اینکه هر کدام از این ماژول ها طی این پروسه ها روی این کانتینر چیکار میکنند تا به سرویس دهی ختم بشه جلو ببرید یا به همین نوشته اضافه کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *