K8S Pod 内抓包定位网络问题
前言:在使用k8s的过程中,当通过检查配置和日志,无法排查错误时,此时需要抓取网络数据包,具体的操作如下:
1.首先通过kubectl get pod -o wide -n namespace 获取到pod所运行的node节点ip
2.然后ssh登陆到node节点,找到服务的容器名称和容器id
docker ps|grep 服务名
3.找到对应容器的Pid
docker inspect 容器id|grep Pid
4.进入到容器的网络命名空间执行tcpdump命令
nsenter -t Pid -n tcpdump -i eth0 -w test.pcap
1.首先通过kubectl get pod -o wide -n namespace 获取到pod所运行的node节点ip
2.然后ssh登陆到node节点,找到服务的容器名称和容器id
docker ps|grep 服务名
3.找到对应容器的Pid
docker inspect 容器id|grep Pid
4.进入到容器的网络命名空间执行tcpdump命令
nsenter -t Pid -n tcpdump -i eth0 -w test.pcap
将生成的文件导出,用网络工具进行分析,接口超时等问题。