我正在尝试在Wireshark中查看我的Kubernetes窗格之一中的实时网络流量。在普通的旧Docker中,我能够运行此代码:
docker run --rm --net=container:app_service_1 crccheck/tcpdump -i any --immediate-mode -w - | wireshark -k -i -
这将启动一个简单的容器,该容器运行带有所示参数的tcpdump
,并将以pcap格式捕获的数据包通过管道传送到stdout(-w -
参数)。然后,此输出将通过管道传递到在我的主机上运行的Wireshark,它在数据包到达时显示它们。
我如何在Kubernetes中做类似的事情?
我尝试如下应用补丁:
template: spec: containers: - name: tcpdumper image: crccheck/tcpdump args: ["-i", "any", "--immediate-mode", "-w", "-"] tty: true stdin: true
并且我通过运行
k attach -it app-service-7bdb7798c5-2lr6q | wireshark -k -i -
应用此>但是这似乎不起作用; Wireshark启动,但立即显示错误:
Data written to the pipe is neither in a supported pcap format nor in pcapng format
我正在尝试在Wireshark中查看我的Kubernetes窗格之一中的实时网络流量。在普通的旧Docker中,我可以运行以下命令:docker run --rm --net = container:app_service_1 crccheck / ...
[我没用过k8s,但是docker run获得了整个干净的stdout,而我的印象是k Attach并没有。
[我不认为kubectl具有与docker run相当的功能,它可以为您提供干净的stdout,但您也许可以使用kubectl exec执行某些操作。