如何将实时pcap记录从Kubernetes容器传递到本地运行的Wireshark?]

问题描述 投票:0回答:1

我正在尝试在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 / ...

docker networking kubernetes pcap tcpdump
1个回答
0
投票

[我没用过k8s,但是docker run获得了整个干净的stdout,而我的印象是k Attach并没有。

[我不认为kubectl具有与docker run相当的功能,它可以为您提供干净的stdout,但您也许可以使用kubectl exec执行某些操作。

© www.soinside.com 2019 - 2024. All rights reserved.