Goal: Configure packet capture for specific pods and review captured payload.
-
Configure packet capture.
Navigate to
demo/60-packet-capture
and review YAML manifests that represent packet capture definition. Each packet capture is configured by deploing aPacketCapture
resource that targets endpoints usingselector
andlabels
.Deploy packet capture definition to capture packets for
dev/nginx
pods.kubectl apply -f demo/60-packet-capture/nginx-pcap.yaml
Once the
PacketCapture
resource is deployed, Calico starts capturing packets for all endpoints configured in theselector
field. -
Install
calicoctl
CLIThe easiest way to retrieve captured
*.pcap
files is to use calicoctl CLI.# download and configure calicoctl curl -o calicoctl -O -L https://docs.tigera.io/download/binaries/v3.7.0/calicoctl chmod +x calicoctl sudo mv calicoctl /usr/local/bin/ calicoctl version
-
Fetch and review captured payload.
The captured
*.pcap
files are stored on the hosts where pods are running at the time thePacketCapture
resource is active.Retrieve captured
*.pcap
files and review the content.# get pcap files calicoctl captured-packets copy dev-capture-nginx --namespace dev ls dev-nginx* # view *.pcap content tcpdump -Ar dev-nginx-XXXXXX.pcap tcpdump -Xr dev-nginx-XXXXXX.pcap
-
Stop packet capture
Stop packet capture by removing the
PacketCapture
resource.kubectl delete -f demo/60-packet-capture/nginx-pcap.yaml
Congratulations! You have finished all the labs in the workshop.