K8s
@code_crafters
Pod labels
با افزایش تعداد پادها نیاز به دسته بندی آن ها به زیر مجموعه ها بیشتر و بیشتر می شود . برای مثال در معماری میکروسرویس تعداد میکروسرویس های دیپلوی شده به ۲۰ یا بیشتر می رسد و
این کامپوننت ها به احتمال زیاد replicate(کپی از یک کامپوننت) و ورژن های مختلف به صورت همزمان اجرا می شوند . در این شرایط دیگه صحبت از یک یا دو پاد نیست و صد ها یا هزاران پاد داخل کلاستر درحال اجرا هستند . بدون داشتن مکانیزمی برای سازماندهی آنها دجار مشکل و دردسر می شویم . با label ها میتوانیم این دسته بندی و مرتب سازی را انجام دهیم در این صورت برای اشخاص دیگر نیز شرایط مشخص و قابل فهم است .
لیبل ها به صورت key-value هستن و در آینده از label selector برای انتخاب و پیدا کردن این لیبل ها استفاده خواهیم کرد .
همچنین علاوه بر پاد ها شما میتوانید ورکر نود هارا نیز لیبل گذاری کنید . شرایطی را تصور کنید که یکی از نود ها gpu دارد و شما نیز می خواهید آن را با لیبل gpu=true از بقیه نود ها متمایز کنید . پس از لیبل گذاری کردن با استفاده از nodeSelector میتوانید از بین نود های دیگر نودی را انتخاب کنید که gpu دارد و پاد بر روی آن اجرا شود البته که برای برنامه ریزی و اجرای پاد بر روی یک نود مشخص راه های دیگری نیز هست که در آینده با آنها نیز اشنا خواهید شد.
در تصویر نیز می توانید نحوه لیبل گذاری و استفاده از nodeSelector را مشاهده کنید.

Namespace
علاوه بر لیبل ها شما میتوانید کامپوننت های موجود را توسط namespace ها به گروه های جداگانه ای تقسیم کنید و سطح بالاتری از جداسازی را داشته باشید ، همچنین از این طریق میتوان از name conflicts کامپوننت ها جلوگیری کرد .
به جای اینکه تمام کامپوننت های خود را داخل یک namespace قرار دهید بهتر است که انها را جدا سازی کنید و پیچیدگی سیستم موجود را کمتر کنید.
از طریق namespace ها میتوان محیط های dev و prod را جداسازی کرد و دسترسی افرادی که در کلاستر کار میکنند را به namespace های مرتبط به خودشون محدود کنیم تا افراد به طور اشتباهی تغییری در بخش دیگری ندهند.
شاید اکنون تصور کنید که اگر کاربری پادهایی در namespace های مختلف دیپلوی کند اون پادها از یکدیگر isolate و نمیتوانند ارتباط باهم ارتباط داشته باشند ، درصورتی که همجنان پاد ها از namespace های مختلف میتوانند با یکدیگر ارتباط نتورکی داشته باشند .
اگر پاد در foo namespace ادرس آیپی پاد در bar namespace را داشته باشد میتواند ترافیک را به پاد دیگر ارسال کند .
@code_crafters