K8s

K8s

@code_crafters

Pod Part 1

پاد گروهی از یک یا چند کانتینر بهم مرتبط هست . در کوبرنتیز به جای دیپلوی کردن کانتینر ها به صورت جداگانه ، باید یک پاد از کانتینر یا کانتینر ها رو دیپلوی و مدیریت کرد.

نکته ای که درمورد پاد با چند کانتینر وجود داره این هست که کانتینر های داخل اون پاد همیشه درکنار همدیگه و روی یک نود اجرا میشوند.


اپلیکیشن های درحال اجرا در یک پاد از یک IP ، از یک hostname استفاده میکنند و همچنین از طریق IPC میتوانند با یک دیگر ارتباط برقرار کنند و خب همچنین اپلیکیشن ها در پاد های مختلف و جداگانه دارای آدرس IP و hostname های متفاوت هستند.


یکی از رایج ترین سوالاتی که در هنگام استفاده از پاد به وجود می اید این است که داخل پاد باید چه چیزی قرار دهیم؟؟

برای مثال قرار دادن کانتینر وردپرس و کانتینر MySQL در یک پاد نمونه ای از آنتی پترن برای ساخت پاد می باشد و در این جا دو دلیل برای این موضوع هست .

مورد اول اینکه دو کانتینر به یکدیگر وابسته نیستند و اگر وردپرس بر روی یک سرور و MySQL روی سرور دیگری درحال اجرا باشد هنوز هم از طریق شبکه میتوانند با یکدیگر ارتباط برقرار کنند .

مورد دوم این هست که شاید شما نمی‌خواهید وردپرس و MySQL به عنوان یک واحد scale کنید ( توسعه و ساخت نمونه های مشابه ). از جایی که وردپرس stateless هست شاید شما تصمیم بر scale کردن داشته باشید تا بتوانید با ساختن تعداد بیشتری پاد وردپرس لود بیشتری رو هندل کنید .

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

حال اگر این دو کانتینر رو باهم دیگر داخل یک پاد واحد قرار بدهیم محبور هستیم که برای هردو از یک استراتژي برای scale کردن استفاده کنیم که شاید برای همه موارد مناسب نباشد.


درنهایت سوالی که هنگام طراحی پاد باید از خود بپرسید این است که

آیا این کانتینر ها اگر روی سرور های مختلف اجرا شوند به‌درستی کار می‌کنند؟

اگر پاسخ این سوال خیر بود ، به این معنی هست که پاد گزینه مناسبی برای گروه بندی و درکنار هم قرار دادن کانتینر های شماست.

اما اگر جواب سوال بله بود باید از پادهای جداگانه برای اپلیکیشن خود استفاده کنید .


@code_crafters

Report Page