رای آگاهی از وضعیت کانتینرهای داخل یک پاد بر روی کلاستر کوبرنتیز از دو مفهوم LivenessProbe و ReadinessProbe میتونیم استفاده کنیم.
با استفاده از این مکانیزم و این Probe ها کلاستر کوبرنتیز میتونه تشخیص بده که آیا کانتینر آماده سرویس دهی هست یا خیر و همچنین آیا کانتینر سالمه یا نه !
LivenessProbe
بررسی میکنه که آیا کانتینر زنده است یا خیر. اگر این پروب ناموفق باشه ، یعنی کانتینر دچار مشکل شده و Kubernetes باید کانتینر را ریاستارت کنه.
زمانی به کار میاد که کانتینر به هر دلیلی Crash کرده و نیاز به ریستارت داره.
Readiness Probe
بررسی میکنه آیا کانتینر آماده سرویس دهی هست و ترافیک شبکه رو قبول میکنه یا نه. اگر این Probe موفق نباشه ، ترافیک به سمت کانتینر ارسال نمیشه.
برای زمانی که کانتینر هنوز در حال شروعه یا به دلایلی (مثل لود شدن یکسری دادهها) هنوز آماده نیست که درخواستها را پاسخ بده. با استفاده از این پروب، Kubernetes میتونه تصمیم بگیره که آیا این کانتینر را به لیست کانتینرهای آماده اضافه کنه یا نه.
پروبها به سه روش قابل بررسی هستند :
HttpRequest : ارسال درخواست HTTP به یک آدرس مشخص در کانتینر (میتونیم API برای Healthcheck بنویسیم)
TCP Socker : بررسی کنیم که پورت مشخصی روی کانتینر بالا هست یا نه و درواقع TCP Connection باز میشه یا نه.
Command Execution : اجرای یک دستور مشخص در کانتینر و بررسی وضعیت خروجی (مثلا ببینیم پروسه مورد نظرمون اجرا شده یا نه ps -aux | grep myprocess )