یک مدیر سیستمِ دیگر!

علاقه مند به ماشین، انسان و ماده

ملوانی با کوبرنتیز (قسمت چهارم) اولین گام، یادگیری مفاهیم مهم در API کوبرنتیز و Entity ها

بدون دیدگاه

خب در پست قبلی یعنی پست شماره ۳، با هم دیگه معماری کوبرنتیز رو به صورت خیلی خیلی کلی درک کردیم. حالا وقتشه که یکم دستمونو آلوده کنیم به کار با کوبرنتیز کوچیکی که بالا آوردیم!

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

به صورت کلی توی کوبرنتیز ما یک سری آبجکت داریم که با اون ها سروکار داریم. این آبجکت ها با API های کوبرنتیز ارتباط دارن. یعنی من به کوبرنتیز مثلا میگم فلان کار رو بکن (برای مثال یک کانتینر رو ازش ۱۰۰ تا نمونه بساز و تو سرورها پخش کن و بینشون کانال ارتباطی HTTP بساز). این که بتونیم به کوبرنیتز بگیم فلان کار رو بکن یعنی از طریق entity هاش بهش میگیم که این entity ها رو API کوبرنیتز میفهمه. برای درک بیشتر و بهتر این موضوع کافیه مستند خود کوبرنتیز رو بخونید که خط بعدی لینکش کردم:

Understanding Kubernetes Objects

حتما اون بخش مستندات رو مطالعه کنید که مباحث بعدی براتون گنگ نباشه!


همونطور که متوجه شدید هر Object کوبرنتیزی نیاز داره که یک سری چیزهاش مشخص باشه:

https://gist.github.com/amirbagh75/92f258bec9d745e3a3037d6ed865ab07

بیاید با هم دیگه یک فایل خیلی ساده که یک کانتینر Nginx رو ران میکنه بخونیم و بررسی کنیمش: (از مستندات کوبرنتیز کپی کردم این فایل رو)

https://gist.github.com/amirbagh75/f8d44b5c88e25f7071f4e160e2308414

همونطور که قبلا گفتم و شما هم خوندین و میدونین، مهمترین بخشی که ما باهاش تو کوبرنتیز مستقیم صحبت میکنیم API میباشد. توی این فایل کانفیگ yaml ای که بالا میبینید اولین خطش گفته با چه نسخه ای از API کوبرنتیز سروکار داره و کدوم API اش. (زیاد لازم نیست درگیر این بخش ها بشیم تو کار چون تو مستندات میشه خوند که باید چی نوشت اونجاها ولی نیازه که بدونیم فلسفه شون چیه)

خط دوم kind میگه که میخواد آبجکتش از چه نوعی باشه. مثلا این جا میخوایم یک Deployment داشته باشیم. Deployment چیه؟‌ توضیحش رو میزارم تو مطلب بعدی چون یک سری مدل های مختلف آبجکت داریم توی کوبرنیتز که همشو توی مطلب بعدی توضیح میدم که کاربردهاشون کجاهاست. ولی خیلی خلاصه و کوتاه Deployment یعنی به کوبرنتیز داریم میگیم میخوایم یک سری کانتینر رو برامون مدیریت کنی. یعنی به API کوبرنتیز میگیم یک آبجکت از جنس Deployment برامون در نظر بگیر با این مشخصات. مشخصات هر kind مختلف هم طبق مستندات خود کوبرنتیز قابل خوندن و یاد گرفتنه ولی به صورت کامل تو مطلب بعدی توضیح میدم.

خط سوم هم metadata هست که مشخصه چیه. یک سری اطلاعات درباره اون آبجکت مورد نظر هستش.

خط پنج یعنی spec هم میگه که ما میخوایم این آبجکت چه شکلی توی کلاسترمون اجرا بشه. توضیحات بیشتر این موارد رو میزارم تو مطلب بعدی 🙂


حدس میزنم که اگر تازه وارد فضای کوبرنتیز شده باشید این چیزها اولش کمی گیج کننده باشه (برای من که اوایل خیلی اینطوری بود!). ولی نگران نباشید جلوتر که میریم همه چیز شفاف و ساده و جذاب میشه 🙂

حالا بیاین تو کلاستر ۵ تا کانتینر Nginx ران کنیم و ببینیم چی میشه!

  • minikube رو روشن کنید! با کامند minikube start
  • چک کنید بعدش که کامندلاین کوبرنتیز اکی هست و کار میکنه با این کامند مثلا: kubectl cluster-info
  • حالا وقتشه یک فایل درست کنید به اسم مثلا nginx-deployment.yaml
  • داخلش محتویات اون تکه کد بالا رو کپی پیست کنید.
  • با kubectl اجراش کنید! این شکلی kubectl apply -f ngninx-deployment.yaml
  • حالا با این کامند بررسی کنید اوضاع به چه صورت شده: kubectl get pods -w -o wide
  • کامند بالا میگه تمام Pod ها (کانتینرها رو تصور کنید) رو به من نشون بده به صورت realtime و اطلاعات بیشتری به من نیز نمایش بده (حالت خلاصه ترش که غیر realtime باشه این میشه: kubectl get pods)
این شکلی میشه اوضاع

این که ما الان چی جوری تونستیم بفهمیم چطور باید اون فایل yaml رو بنویسیم که بتونیم کانتینرهای Nginx رو ران کنیم و اصلا Pod چیه یا Deployment چیه و این داستانا رو تو قسمت بعدی کامل و دقیق متوجه میشین 🙂

حالا برای حذف کامل این تغییراتی که دادیم کافیه این کامند رو بزنیم: kubectl delete -f nginx-deployment.yaml

میتونید هم مطمئن بشید که همه چیز حذف شده. کامند زیر نباید هیچی برگردونه. چون همه کانتینرها باید پاک شده باشند (یا در حال Terminate شدن برای پاک شدن باشند):

kubectl get pods


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



برچسب‌ها:

پاسخی بگذارید

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