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