我正在尝试将tcpkill安装/添加到我的pod中,但是出现以下错误。即使是apk更新也无法提供理想的结果。

$ kubectl exec -it mypod-v003-ab2cd /bin/sh -n mynamespace
/ # apk add tcpkill
ERROR: unsatisfiable constraints:
  tcpkill (missing):
    required by: world[tcpkill]
/ #
/ #
/ #
/ # apk add dsniff
ERROR: unsatisfiable constraints:
  dsniff (missing):
    required by: world[dsniff]
/ #
/ #
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
v3.9.5-11-ge3b5031082 [http://dl-cdn.alpinelinux.org/alpine/v3.9/main]
v3.9.5-3-gfaabae9a55 [http://dl-cdn.alpinelinux.org/alpine/v3.9/community]
v20200122-2407-g64931a5538 [http://dl-cdn.alpinelinux.org/alpine/edge/testing]
OK: 13818 distinct packages available

我在网上发现可以从alpine linux添加软件包(https://pkgs.alpinelinux.org/contents?file=tcpkill&path=&name=bash-completion&branch=v3.9&repo=main&arch=x86_64),但不确定如何添加。有人可以帮忙吗?

另外,如果我转到/ usr / share / bash-completion / completions /,我可以在那看到tcpkill。
/ # ls -l /usr/share/bash-completion/completions/tc*
-rw-r--r--    1 root     root          1011 Dec  4  2018 /usr/share/bash-completion/completions/tcpdump
-rw-r--r--    1 root     root           441 Dec  4  2018 /usr/share/bash-completion/completions/tcpkill
-rw-r--r--    1 root     root           434 Dec  4  2018 /usr/share/bash-completion/completions/tcpnice
/ #

最佳答案

此参考告诉您bash-completion软件包的结构中包含一个名为tcpkill的文件。该文件是bash-completion自动完成tcpkill命令的索引文件。

tcpkill并非真正适用于 Alpine ,因此如果需要,则必须从源代码进行编译。

您可能想知道为什么bash-completion包含对tcpkill的引用。这是因为它已包含在源包中。

要了解如何进行编译,请查看this指南。

我也建议您使用其他图像作为ubuntu。使用它,您只需运行apt-get install dsniff即可使用tcpkill。

如果此解决方案适合您,也许您想创建包含这些软件包的自己的Docker镜像,这样就不必在每次创建pod时都安装它。为此,我建议您this操作方法。

关于kubernetes - 如何将tcpkill添加到我的kubernetes pod-Alpine软件包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60488526/

10-15 20:28