THE STATE OF DEBUGGING MICROSERVICES ON KUBERNETES
有了 Kubernetes 编排的容器,服务,部署,Pod,Secret 等系统部件,debug 反而变得比单体应用难多了,因为这些部件太动态了。一般出了问题,除了删掉 Pod,碰碰运气能否自己解决。如果不能解决,目前比较简单地做法:快速加个代码,打个日志,重新部署。文中提到了一个方案:部署 Squash Daemonset 到 Host,可以做 debug。另外一个方案是打包镜像的时候就把 debugger 打进去,然后部署的时候把 debugger 的端口暴露到 node localhost。最后一个方案是 kubernetes --feature-gates=PodShareProcessNamespace=true
和 kubectl debug --image=<your-debugger-image> <your-application-pod>
。