Debug Node.js App บน Kubernetes ด้วย Chrome DevTools
ปัญหาที่หลายคนอาจเคยเจอคือ การที่ไม่สามารถ reproduce bug บน local environment หรือแค่ขี้เกียจ set environment ตาม host ของ app ที่จะ debug
ในที่นี้จะแนะนำวิธีการ debug Nodejs app ใน pod ง่ายๆผ่าน Chrome
สิ่งที่ต้องมี
- Kubernetes Cluster ที่ใช้งานอยู่หรือ Minikube
- kubectl เพื่อใช้ควบคุม cluster ตามที่ config ไว้
ขั้นตอนการติดตั้งและใช้งาน
- เซ็ต app Nodejs ใน pod ให้สามารถ debug ได้ อาจจะแก้หรือสร้าง deployment ใหม่สำหรับ debug โดยเพิ่ม command เพื่อ start app ใน debug mode
ตัวอย่างเพิ่ม command ใน deployment yaml เพื่อรัน app เป็น debug mode
command: [ “node”, “ — inspect-brk”, “server.js” ]
หรือ kubectl exec เข้าไปใน pod แล้ว start app เป็น debug mode เองด้วย — inspect-brk ก็ได้ โดย inspect port ค่า default จะเป็น 9229
2. Forward inspect port ของ Pod บน kubernetes มาที่ local
kubectl port-forward <pod_name> 9229
3. เปิด Chrome แล้วเข้า link chrome://inspect เพื่อเปิด DevTools
ทีนี้เราก็สามารถ remote debug app บน Kubernetes ได้แล้วล่ะครับ