# Episode 57: Life of a Packet: Services Continued
{%youtube Pju0MQRblmc%}
# Headlines
- [ebpf Summit Registration is open!](https://ebpf.io/summit-2022/)
- [Isovalent supports CNCF Sponsorships!](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/attend/scholarships/)
- [Cilium developers are committed!](https://twitter.com/cra/status/1555172320657948672)
- [Kubecon NA schedule is online](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/program/schedule/)
- [ebpf news episode 12](https://isogo.to/echo-news-12)
# 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:
- [x] [kube-proxy](https://www.youtube.com/watch?v=wEyLsEaomfA)
## Scenarios: Episode 57:
- [ ] [Kube proxy replacement]()
## 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