前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【TKE】业务容器抓包方法

【TKE】业务容器抓包方法

原创
作者头像
Jokey
修改2023-12-12 17:29:42
2400
修改2023-12-12 17:29:42
举报
文章被收录于专栏:云原生搬运工云原生搬运工

操作背景

在容器业务请求的网络问题排查中,可以通过nsenter进入业务容器网络命名空间中抓包,分析根因。

操作步骤

1.查出pod所在节点信息,并登陆 pod 所在节点。

查询pod 所在节点
查询pod 所在节点

2. 在节点上查找pod 中业务容器ID,以下截图以 Containerd 运行时为例。

代码语言:shell
复制
# docker 运行时
docker ps | grep <业务容器名>

# containerd 运行时
crictl ps | grep <业务容器名>

如下图(该示例容器名为data-process):

查询业务容器ID
查询业务容器ID

3. 查找容器 pid。

代码语言:shell
复制
# docker 运行时
docker inspect <container-id>| grep Pid

# containerd 运行时
crictl inspect <container-id>| grep pid

根据容器ID查找容器pid, 如下图:

查找容器pid
查找容器pid

4. 进入业务容器的网络命名空间。

代码语言:shell
复制
 nsenter -t <pid> -n

根据查询到的容器pid, 通过nsenter 命令进入到业务容器网络命名空间,可以通过查看网卡IP情况核查是否进入期望的容器网络空间中,如下图:

进入业务容器网络命名空间
进入业务容器网络命名空间

5. 执行业务抓包命令:

代码语言:shell
复制
参考抓包命令:
# 使用 root 权限循环抓每个包文件大小为10M, 文件数量为 100 的数据包, 并后台运行
tcpdump -nni eth0 host 8.8.8.8 and port 53 -w test.cap -C10M -Zroot -W100 &

6. 待复现结束抓包并取包分析,通过fg命令调出后台运行抓包程序,使用CTRL C停止抓包(或查询抓包进程pid 后 kill -9 结束):

停止抓包
停止抓包

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作背景
  • 操作步骤
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档