سلام بچه ها بعد یه مدت اومدم براتون روش دیباگ حرفه ای که فقط سنیورها ازش مطلع هستند رو باهاتون به اشتراک بزارم
دواپس کارها و برنامه نویس ها حتما زمان هایی براشون پیش اومده که برنامه شون درست کار نمی کنه و میخوان به کانتینرشون وصل بشن و اونو دیباگ کنند و مشکل رو پیدا کنند
خب راحت ترین کار اینه که بیایم کامند زیر رو بزنیم وصل بشیم به کانتینر و BASH اون
kubectl exec -it podname -c containername -- bash
خب چقدر ساده به به :) اما چند تا مشکل اگه ما از distrolessها استفاده کرده باشیم یا اینکه کانتینر ما Non root باشه و یا اینکه نخوایم ریسک نصب برنامه روی یک کانتینر درحال اجرا رو به جون بخریم چی؟
خود کوبرنتیز میاد کامند kubectl debug رو معرفی میکنه. این ابزار میاد یک کانتینر از ایمیج دیباگ شما کنار کانتینر مدنظر میسازه که بهش ephermal Containerمیگن و منابع رو باهاش شیر میکنه مثلا شما میخواین فرآیند های سیستمی رو نگاه کنید با ابزار مثلا top که نیاز داره به دسترسی روت میان دستور زیر رو میزنید
kubectl debug -it --container=debug-container --image=busybox --target=<pod> <Container>
بعدش هم شما با دسترسی روت که به کانتینر دارین دستور topرو میزنید و پروسس ها رو مشاهده میکنید و ادامه دیباگ خودتون رو انجام میدین.
البته این ابزار یه ویژگی باحال دیگه هم داره که میتونید باهاش میتونید از پاد خودتون کپی کنید تغییرات توش بدین دسترسی هاش رو تغییر بدین و خیلی کارهای باحال دیگه
kubectl debug pod/myapp-pod -it --copy-to=myapp-debug --container=myapp-container --image=busybox
البته مراقب منابع کلاسترتون هم باشین