kubernetes - 如何将 tcpkill 添加到我的 kubernetes pod - alpine 包

标签 kubernetes tcp kubectl

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

相关文章:

python - 如何为作为 Kubernetes 容器运行的 Flask HTTP 服务器实现 HTTPS 支持

kubernetes - Google GKE kubernetes DNS 无法解析服务名称

c# - EndReceive 永远不会返回 0,你怎么知道数据包在 tcp/ip 中何时完成?

c++ - 使用 socket recv 函数读取 stdin 上的流

kubernetes - kubectl 错误 : You must be logged in to the server (Unauthorized)

kubernetes - 在部署更新时重新附加卷声明

kubernetes - 如何使用 kubectl 检查 RBAC 是否启用

kubernetes - Kubernetes Pod总是容器创建

azure - 创建集群后将 RBAC 添加到 Azure Kubernetes (AKS)

sockets - 为什么我们不能使用进程 ID 而不是使用我们绑定(bind)的端口