trace_bind
The trace_bind gadget is used to stream socket binding syscalls.
Requirements
- Minimum Kernel Version : 5.4
 
Getting started
Running the gadget:
- kubectl gadget
 - ig
 
$ kubectl gadget run ghcr.io/inspektor-gadget/gadget/trace_bind:latest [flags]
$ sudo ig run ghcr.io/inspektor-gadget/gadget/trace_bind:latest [flags]
Flags
--ignore-errors
Show only events where the bind succeeded
Default value: "true"
--pid
Show only bind events generated by this particular PID
Default value: ""
Guide
First, we need to run an application that generates some events.
- kubectl gadget
 - ig
 
$ kubectl run --restart=Never --image=busybox mypod -- sh -c 'while /bin/true ; do nc -l -p 4242 -w 1 ; sleep 3 ; done'
pod/mypod created
$ docker run --name test-trace-bind -d busybox /bin/sh -c 'while /bin/true ; do nc -l -p 4242 -w 1 ; sleep 3 ; done'
Then, let's run the gadget:
- kubectl gadget
 - ig
 
$ kubectl gadget run trace_bind:latest --podname mypod
K8S.NODE            K8S.NAMESPACE            K8S.PODNAME              K8S.CONTAINERNAME        ADDR                       COMM                    PID           TID          BOUND_… ERROR
minikube-docker     default                  mypod                    mypod                    :::4242                    nc                   635160        635160          0
minikube-docker     default                  mypod                    mypod                    :::4242                    nc                   635213        635213          0
minikube-docker     default                  mypod                    mypod                    :::4242                    nc                   635233        635233          0
minikube-docker     default                  mypod                    mypod                    :::4242                    nc                   635301        635301          0
$ sudo ig run trace_bind:latest --containername test-trace-bind
RUNTIME.CONTAINERNAME               ADDR                                  COMM                            PID                TID                BOUND_DEV_… ERROR
test-trace-bind                     :::4242                               nc                           647422             647422                0
test-trace-bind                     :::4242                               nc                           647472             647472                0
^C
These lines correspond to the socket binding operation initiated by nc.
We can stop the gadget by hitting Ctrl-C.
Finally, clean the system:
- kubectl gadget
 - ig
 
$ kubectl delete pod mypod
$ docker rm -f test-trace-bind