使用这种排查技术的场景在于:
1,真正线上的POD,里面的排查工具很少。wget,curl,vi,telnet,ifconfig这些命令可能都没有。
2,排查的POD,什么工具都有,但与POD隔离,无法真正排查线上故障。
3,kubectl cp等命令,复杂,且不备具持续性,依赖关系无法管理。
于是,大家就想出了使用--net=container:xxxx这样的命令,让排查POD与线上POD,共享网络命名空间,达到灵活的线上排查的目的。
docker run -it --rm --net=container:975343289aa9 markeijsermans/debug
上面这个975343289aa9,即是docker ps得出的结果。
在这个pod里,就可以使用和线上POD一样的网络,且有想要的排查故障的辅助工具。
完美!
curl -I "http://productpage.default.svc.cluster.local:9080/productpage"