[Tips] Pod/Container의 NIC찾기

Overview

Pod/Container는 생성될 때, 사용할 Virtual Network Interface를 생성합니다.
디버깅 또는 트러블슈팅을 위해 Pod/Container의 Network Packet을 뜯어봐야 할 때가 있는데요
그러려면 실제 노드의 어떤 Virtual Network Interface를 Pod/Container가 사용하고 있는지 알아야 합니다.

아주 간단한 방법으로 알아내보도록 하겠습니다.

참고: Find out which network interface belongs to docker container

How-To

1. Pod/Container의 network장치 index 알아내기

Pod/Container에 shell로 접근해서 해당 Pod/Container가 사용하고 있는 네트워크 장치의 index number를 출력합니다.

sh-4.4$ cat /sys/class/net/eth0/iflink
6036

2. Virtual Network Interface

Pod/Container가 떠있는 노드로 가서 Network Interface 출력

$ oc debug node/10.178.50.247
Starting pod/1017850247-debug ...
To use host binaries, run `chroot /host`
Pod IP: 10.178.50.247
If you don't see a command prompt, try pressing enter.

sh-4.4# ip a |grep 6036
6036: caliaa48beb38b0@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP group default

caliaa48beb38b0가 pod의 Virtual Network Interface 이름입니다.

3. (Optional) TCPdump

이전단계에서 얻은 interface이름으로 tcpdump등의 명령어로 Pod의 Network packet을 확인할 수 있습니다.

sh-4.4# tcpdump -i caliaa48beb38b0 -n

image


댓글남기기