我想监控pod的外部收发流量。外部流量是指从k8s集群外部发送或接收的流量。
例如NodePort、LoadBalancer和ingress服务类型。我在普罗米修斯度量中有container_network_receive_bytes_total
和container_network_transmit_bytes_total
,但我不能用它们分离内部和外部流量。我也用过k8spacket,但它不能满足我的需要。
我该怎么办?
我认为获得所需信息的唯一方法是在您的Pod中安装tcpdump并利用其潜力。
如果您不想弄脏您的应用程序,您可以考虑创建一个管理部署,在其中安装管理此类请求所需的工具并连接到该请求。
我不知道你在哪个供应商上安装了Kubernetes,但是有关于这个主题的非常垂直的文档——>
OpenShift: https://access.redhat.com/solutions/4569211
Azure: https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/packet-capture-pod-level
https://www.redhat.com/sysadmin/capture-packets-kubernetes-ksniff