k8s容器抓包方法

 

1 可以先执行kubectl get pods podname -n 命名空间 -o wide看看pod运行的节点
2 登录到对应的node上,执行 docker ps|grep pod名称找到容器ID,然后在执行 docker inspect -f {{.State.Pid}} 容器id 找到容器的进程pid
3 执行yum -y install util-linux.x86_64 安装下 nsenter 工具,然后执行 nsenter --target 容器pid -n 进入到容器的网络名称空间,通过tcpdump命令抓

 

1.通过pod名称找具体的node服务器
[root@yunwei-k8s-dev ~]# kubectl get pods hxl-ai-agent-api-7df9669bfd-mtt29 -n hxl -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
hxl-ai-agent-api-7df9669bfd-mtt29 1/1 Running 0 127d 10.11.14.50 dev-k8s-node-192.168.1.208 <none> <none>

 

2.登录到node服务器192.168.1.208,找容器id和进程pid
找容器id
[root@dev-k8s-node-192 ~]# docker ps|grep hxl-ai-agent-api-7df9669bfd-mtt29
e44b3f96e4b0 harbor.yeemiao.net.cn/dev-hxl/hxl-ai-agent-api "python main.py" 4 months ago Up 4 months k8s_hxl-ai-agent-api_hxl-ai-agent-api-7df9669bfd-mtt29_hxl_b75ee309-d22c-47e7-80cd-a9a4eced8453_0
efc0c7dba2a4 registry.aliyuncs.com/google_containers/pause:3.2 "/pause" 4 months ago Up 4 months k8s_POD_hxl-ai-agent-api-7df9669bfd-mtt29_hxl_b75ee309-d22c-47e7-80cd-a9a4eced8453_0
[root@dev-k8s-node-192 ~]#

找进程pid
[root@dev-k8s-node-192 ~]# docker inspect -f {{.State.Pid}} e44b3f96e4b0
18290

 

3.抓包
nsenter --target 容器pid -n 进入到容器的网络名称空间,通过tcpdump命令抓

nsenter --target 18290 -n hxl

如上命令进入到容器的网络命名空间后,执行如下命令抓包

tcpdump -i any -w /tmp/pod.pcap

 

posted @ 2025-07-23 17:40  slnngk  阅读(68)  评论(0)    收藏  举报