# Episode 53: Life of a Packet: Services.
{%youtube SGfMEpjq07Q%}
# Headlines
- [ebpf Summit CFP and registration is open!](https://ebpf.io/summit-2022/)
- [whens it close?](https://twitter.com/breakawaybilly/status/1547878638279876608?s=20&t=Q9Nr9xR2lUis_TqhRsDZNQ)
- [Cilium Standalone Layer 4 Load Balancer XDP](https://cilium.io/blog/2022/04/12/cilium-standalone-L4LB-XDP/)
- [ebpf news episode 10](https://isogo.to/echo-news-10)
# Life of a packet.
Understanding how Cilium does what it does.
[Docs](https://docs.cilium.io/en/v1.11/concepts/ebpf/lifeofapacket/)
## Scenarios: Episode 51:
- [x] - pod 2 pod same node
- [x] - pod 2 pod on adjacent node
- [x] - pod 2 proxy 2 pod on adjacent node
## Scenarios: Episode 53:
- [ ] [kube-proxy](https://www.youtube.com/watch?v=wEyLsEaomfA)
- [ ]
- [ ]
- [ ]
- [ ]
## Tools:
cilium monitor
hubble observe
hubble relay
pernode.sh
```shell=
#!/bin/bash
# The purpose of this script is to deploy to each node in the cluster 2 pods.
# Each pod will have an env var that shows it's zone.
function netpod () {
kubectl run net${2}-${1} \
--image overridden --labels app=net,pod=net${2}-${1},node=${1} --overrides \
'{
"spec":{
"hostname": "net'${2}-${1}'",
"subdomain": "net",
"nodeName": "'$1'",
"containers":[{
"name":"net",
"image":"mauilion/debug"
}]
}
}'
}
for worker in $(kubectl get nodes -o name | sed s/node.//)
do
for i in {1..2}
do netpod $worker $i
done
done
kubectl create service clusterip net --tcp 8080
```
## Observation Points:
* to-endpoint
* to-overlay
* to-proxy