我试图在pod上运行kubectl exec命令,但它失败了,说'No such file or directory'
如果我通过bash登录到pod的终端,我可以运行该命令此外,这个问题只适用于少数命令。我发现有一个PATH变量差异
-
当我执行kubectl执行$POD—printenv,然后路径=/usr/地方/sbin:/usr/地方/bin:/usr/sbin:/usr/bin:/sbin/bin:
-
当我从POD的终端运行——printenv时,然后路径=/usr/地方/sbin:/usr/地方/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/abc/脚本:/opt/abc/bin:/opt/admin/bin:/opt/abc/bin:/根/bin
我猜这是导致kubectl exec运行命令失败的原因。
欢迎任何解决这个问题的想法;我们是否可以将PATH的env变量以某种方式传递给使用kubectl exec的POD ?
您可以尝试执行bash -c "<command>"
$ kubectl exec <pod> -- bash -c "<cmd>"
可能是一些shell初始化文件修改了PATH
问题是必需的环境变量(PATH)和其他一些缺失。我将所需的env变量与命令一起传递。
例子kubectl exec $pod_name——bash "cd ../b/;ENV_VARIABLE_1=ENV_VALUE_2 &&env env_variable =ENV_VALUE_2 &&">
细节:-Kubectl设置环境变量并运行命令