容器中一般没有抓包命令,这时候可以通过进入容器的网络命名空间来执行命令,对容器进行网络抓包。
确定并登录容器所在节点
kubectl get po -n <ns_name> <pod_name> -o wide
找到容器所在的NODE,登录NODE,安装tcpdump命令
确定容器PID
首先找到容器id
docker ps|grep <container_id>
根据容器id查询pid
方法一
docker inspect <container_id>|grep Pid
方法二
docker top <container_id>
切换命名空间
nsenter -n -t <pid>
抓包分析
使用tcpdump命令进行抓包,抓到的包可以使用wireshark进行分析
eg:
tcpdump -i <网卡名>
tcpdump -w <文件名>