Debug Node.js App บน Kubernetes ด้วย Chrome DevTools

NC
ConvoLab
Published in
2 min readMar 24, 2019
Image source: https://www.bitdegree.org/

ปัญหาที่หลายคนอาจเคยเจอคือ การที่ไม่สามารถ reproduce bug บน local environment หรือแค่ขี้เกียจ set environment ตาม host ของ app ที่จะ debug

ในที่นี้จะแนะนำวิธีการ debug Nodejs app ใน pod ง่ายๆผ่าน Chrome

สิ่งที่ต้องมี

  • Kubernetes Cluster ที่ใช้งานอยู่หรือ Minikube
  • kubectl เพื่อใช้ควบคุม cluster ตามที่ config ไว้

ขั้นตอนการติดตั้งและใช้งาน

  1. เซ็ต 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

list รายชื่อ pod ที่จะ debug

kubectl port-forward <pod_name> 9229

forward port ของ pod มาที่ local

3. เปิด Chrome แล้วเข้า link chrome://inspect เพื่อเปิด DevTools

ที่แท็บ devices ตรง Discovery network targets ให้ config target มาที่ localhost:9229
เพิ่ม target มาที่ port 9229
ตรง Remote Target จะแสดง app ที่เราจะ debug ขึ้นมา
จากนั้นกดที่ inspect แล้วจะมี pop up ขึ้นมา ให้ไปที่ source > Filesystem จะขึ้น code มา…

ทีนี้เราก็สามารถ remote debug app บน Kubernetes ได้แล้วล่ะครับ

--

--