我正在尝试在 pod 上运行 kubectl exec 命令,但它没有显示“没有这样的文件或目录”
通过bash登录pod的终端就可以运行命令 此外,此问题仅适用于少数命令。 我发现有一个PATH变量差异
当我执行 kubectl exec $POD -- printenv 时,然后 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
当我从 POD 的终端运行 --printenv 时,然后 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/abc/scripts:/opt/abc/bin:/opt/admin/bin:/opt/abc/bin:/root/bin
我猜这会导致命令在通过 kubectl exec 运行时失败。
欢迎任何解决这个问题的想法;我们可以将 PATH 的 env 变量以某种方式传递给使用 kubectl exec 的 POD 吗?
最佳答案
您可以尝试执行 bash -c "<command>"
$ kubectl exec <pod> -- bash -c "<cmd>"
很可能 PATH 被一些 shell 初始化文件修改了
关于kubernetes - 由于 'No such file or directory',Kubectl exec 命令失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72448693/