网络诊断利器:掌握 (k8s)Kubernetes Pod 抓包技巧

转载:网络诊断利器:掌握 Kubernetes Pod 抓包技巧 

背景

有没有对Pod抓包而感到苦恼,下面针对在线上出现问题之后,针对Pod进行抓包

1. 宿主机上捕获

应用其实是运行在 Pod 内的 Container 里的,所以只要定位到 Container 被调度到了哪个 Node 上,在相应的 Node 里,对容器进行抓包即可。

2.1 定位Pod ip和containerID

定位 Pod 的 containerID 以及它所运行的宿主机 IP

# kubectl get pod -n ${NAMESPACE}${POD_NAME} -o json|jq '.status|{hostIP: .hostIP, container: [.containerStatuses[]|{name: .name, containerID: .containerID}]}'

{
  "hostIP": "10.103.236.203",
  "container": [
    {
      "name": "app",
      "containerID": "docker://808605e67373b6dee49162c67745e8cd0f5062978385707c91e42d1c37bfba57"
    }
  ]
}

2.2 查找网络接口索引

通过 ssh 登陆到 Pod 所在的宿主机上,然后在容器内执行 cat /sys/class/net/eth0/iflink,查找容器中的网卡与宿主机的 veth 网卡之间的对应关系

kubectl exec -it ${PodName} -- /bin/sh -c "cat /sys/class/net/eth0/iflink"

[root@kube-master ~]# kubectl exec -it app-prod-97dfb4bf-h59vq -- /bin/sh -c "cat /sys/class/net/eth0/iflink"
14

2.3 查找网络接口信息

[root@kube-master ~]# ip link |grep 14
14: cali3002ec233ba@if4: <BROADCAST
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值