I'm working on a way to discover trafic between Kubernetes Services and to monitor it ? Does someone know how can I achieve that ?
Where I can for example find this kind of metrics or events ?
Thank you in advance
If you are using kube-proxy --proxy-mode iptables
(which is a default by the time of writing) then you can use Netflow iptables module.
Or if you need to debug something ad-hoc then just grep <service_ip> /proc/net/nf_conntrack
. Here is an example of a DNS talk we have:
# grep '10\.3\.0\.10' /proc/net/nf_conntrack
ipv4 2 udp 17 26 src=192.168.101.1 dst=10.3.0.10 sport=41349 dport=53 src=10.2.38.2 dst=10.2.31.0 sport=53 dport=41349 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2
ipv4 2 udp 17 12 src=192.168.101.1 dst=10.3.0.10 sport=57298 dport=53 src=10.2.38.2 dst=10.2.31.0 sport=53 dport=57298 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2
ipv4 2 udp 17 102 src=192.168.101.1 dst=10.3.0.10 sport=43260 dport=53 src=10.2.38.2 dst=10.2.31.0 sport=53 dport=43260 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2
ipv4 2 udp 17 65 src=192.168.101.1 dst=10.3.0.10 sport=44899 dport=53 src=10.2.38.2 dst=10.2.31.0 sport=53 dport=44899 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2