آشنایی با Pod و Label در Kubernetes

حالا که Kubernetes Cluster رو بالا آوردیم، وقتشه کم‌کم شروع کنیم با خود Kubernetes کار کنیم.

یکی از اولین مفاهیمی که باید باهاش آشنا بشیم Pod هست. تقریباً هر چیزی که بخوایم داخل Kubernetes اجرا کنیم، یه جایی سر و کارش به Pod میفته!

توی این ویدیو اول با Pod آشنا میشیم، چندتا Pod می‌سازیم و وضعیتشون رو بررسی می‌کنیم. بعد هم میریم سراغ Label و می‌بینیم چرا این برچسب‌های ساده توی Kubernetes این‌قدر کاربرد دارن.

Pod چیه؟

Pod یکی از کوچک‌ترین واحدهایی هست که می‌تونیم داخل Kubernetes ایجاد و مدیریت کنیم.

معمولاً داخل هر Pod یک Container داریم که برنامه‌ی ما رو اجرا می‌کنه، البته در صورت نیاز یک Pod می‌تونه چند Container هم داشته باشه.

وقتی یک Pod ایجاد می‌کنیم، Kubernetes تصمیم می‌گیره که اون Pod روی کدوم Node اجرا بشه و بعد اجرای اون رو مدیریت می‌کنه.

ساخت Pod

برای ساخت Pod چند روش مختلف داریم.

میتونیم مستقیم با kubectl یک Pod ایجاد کنیم یا مشخصات اون رو داخل یک فایل YAML بنویسیم و فایل رو به Kubernetes بدیم.

کار کردن با YAML خیلی مهمه، چون جلوتر برای ساخت بیشتر منابع Kubernetes با همین فایل‌ها سروکار داریم.

داخل فایل YAML مشخص می‌کنیم چه چیزی می‌خوایم بسازیم، اسمش چی باشه، چه Containerای داخلش اجرا بشه و تنظیمات دیگه‌ای که نیاز داریم رو هم مشخص می‌کنیم.

بررسی وضعیت Podها

بعد از ساخت Pod باید بتونیم وضعیتش رو هم بررسی کنیم.

مثلاً ببینیم Pod روی کدوم Node اجرا شده، چه آدرس IPای گرفته و Container داخل اون در چه وضعیتی قرار داره.

همچنین اگر Pod به هر دلیلی اجرا نشه، باید بتونیم اطلاعات بیشتری درباره‌ی مشکل پیدا کنیم.

ساختن Pod معمولاً قسمت راحت ماجراست؛ داستان اصلی از جایی شروع میشه که Pod تصمیم می‌گیره بالا نیاد!

Label چیه؟

حالا فرض کنید تعداد Podهای ما کم‌کم زیاد شده.

مدیریت همه‌ی اون‌ها فقط بر اساس اسم، روش خیلی خوبی نیست. اینجاست که Label به کارمون میاد.

با Label می‌تونیم منابع مختلف Kubernetes رو دسته‌بندی کنیم.

مثلاً می‌تونیم مشخص کنیم یک سری Pod مربوط به Nginx هستن، یک سری مربوط به دیتابیس هستن یا بعضی از Podها متعلق به محیط Production هستن.

به این ترتیب پیدا کردن و مدیریت منابع خیلی راحت‌تر میشه.

چرا Label مهمه؟

Label فقط برای مرتب کردن Podها نیست.

خیلی از بخش‌های Kubernetes از Labelها برای پیدا کردن و انتخاب منابع استفاده می‌کنن.

با استفاده از Label Selector می‌تونیم مشخص کنیم که فقط منابعی با یک Label خاص انتخاب بشن.

جلوتر هم وقتی با مفاهیمی مثل Service و Deployment کار کنیم، می‌بینیم که Labelها نقش خیلی مهم‌تری پیدا می‌کنن و برای ارتباط بین منابع مختلف Kubernetes استفاده میشن.

Pod و Label، شروع کار با Kubernetes

Pod و Label شاید در ابتدا مفاهیم ساده‌ای به نظر برسن، ولی پایه‌ی خیلی از چیزهایی هستن که جلوتر در Kubernetes یاد می‌گیریم.

اگر Pod رو خوب درک کنیم و بدونیم Labelها چطور برای دسته‌بندی و انتخاب منابع استفاده میشن، یاد گرفتن مفاهیم بعدی Kubernetes هم خیلی راحت‌تر میشه.

توی این ویدیو به‌صورت عملی Pod می‌سازیم، وضعیتش رو بررسی می‌کنیم، با فایل YAML کار می‌کنیم و در نهایت با Label و Label Selector آشنا میشیم.

فعلاً مدیریت چندتا Pod ساده به نظر میرسه؛ یکم جلوتر که تعدادشون زیاد شد، تازه می‌فهمیم چرا Kubernetes این همه ابزار برای مدیریت کردنشون ساخته!