使用 kubectl debug 排查 Kubernetes Pod 與 Node 問題
在 Kubernetes 中排查問題時,最常用的工具通常是 kubectl logs、kubectl describe、kubectl exec 與 kubectl port-forward。這些指令已經能處理大部分日常除錯情境,但如果容器映像檔本身很精簡,裡面沒有 curl、ps、netstat、tcpdump 等工具,或是需要進一步查看 Node 層級的狀態,就會遇到一些限制。
kubectl debug 是 Kubernetes 提供的除錯指令,可以在不重新打包應用程式映像檔的情況下,建立臨時的除錯環境。它常見的用途包含:複製既有 Pod 來建立 debug Pod、在 Pod 中加入 ephemeral container,以及在指定 Node 上建立 debug pod。這篇文章會用 Tomcat 服務作為範例,示範如何使用 kubectl debug 進行常見的場景排查。