【发布时间】:2020-06-12 05:11:37
【问题描述】:
我正在寻找一种将 Kubernetes pod 上的二进制文件流式传输(“tail”)到我的本地计算机的方法。
我试过了:
kubectl exec -it app-service-58697cf7c9-nnzgh -c tcpdumper -- tail -f -c +0 /output.pcap
(tcpdumper 只是 tcpdump 的一个薄包装器,它作为 pod 中的辅助容器运行)。
这几乎有效。运行此命令时,我可以在本地计算机上查看二进制数据流。
我在这里尝试做的最终目标是我想获取这个 pcap 数据的二进制流并将其通过管道传输到在我的机器上运行的 Wireshark。那是行不通的,这是因为数据并不是写在 pod 上的内容。
相关的不是 Kubernetes,也不是数据包捕获。问题似乎在于我如何使用tail 流式传输这些数据;当我以这种方式执行此操作时,tail 似乎添加了换行符。我想这是因为tail 不打算处理二进制数据。
如果我直接在 pod 上运行 tcpdump,将其写入那里的 .pcap 文件,然后使用 kubectl cp 传输该文件,然后将该文件加载到 Wireshark 中,它可以工作,我可以查看网络流量.使用十六进制编辑器可以看出,这种方法和上面的tail方法的区别在于,经常会有多余的字符(“0xD”,即换行符)。
有什么想法吗?
【问题讨论】:
-
请检查我在您的其他问题中的回答,让我知道它对您有何帮助。我真的认为你的解决方案是 [ksniff ](github.com/eldadru/ksniff)。
标签: kubernetes binary-data tail