通过 kubectl 执行设置命令失败
Execute set command via kubectl fails
我想在一个pod中执行set
,分析环境变量:
kubectl exec my-pod -- set
但是我得到这个错误:
OCI runtime exec failed: exec failed: container_linux.go:370: starting container process caused: exec: "set": executable file not found in $PATH: unknown
我认为,这是一个特例,因为没有可执行文件 set
就像有一个可执行文件 ls
.
备注
- 当我在 pod 中打开 shell 时,可以在那里调用
set
。
- 当我用其他命令调用
kubectl exec
时,例如 ls
,我没有收到任何错误。
- 还有一些关于
kubectl exec
的其他问题。但是这些不适用于我的问题,因为我的问题是关于执行 set
.
set
不是二进制文件,而是设置环境变量的 shell 命令。
如果您想在执行后续命令之前设置环境变量,请考虑使用 env
kubectl exec mypod -- env NAME=value123 script01
# or
kubectl exec mypod -- /bin/sh -c 'NAME=value123 script01'
有关详细信息,请参阅
如果你想为 pod 的生命周期设置环境变量,那么你可能想在创建它之前在 pod 本身的 yaml 清单中设置它。
你也可以 运行 set
如果你先 运行 shell
kubectl exec mypod -- /bin/sh -c 'set'
我想在一个pod中执行set
,分析环境变量:
kubectl exec my-pod -- set
但是我得到这个错误:
OCI runtime exec failed: exec failed: container_linux.go:370: starting container process caused: exec: "set": executable file not found in $PATH: unknown
我认为,这是一个特例,因为没有可执行文件 set
就像有一个可执行文件 ls
.
备注
- 当我在 pod 中打开 shell 时,可以在那里调用
set
。 - 当我用其他命令调用
kubectl exec
时,例如ls
,我没有收到任何错误。 - 还有一些关于
kubectl exec
的其他问题。但是这些不适用于我的问题,因为我的问题是关于执行set
.
set
不是二进制文件,而是设置环境变量的 shell 命令。
如果您想在执行后续命令之前设置环境变量,请考虑使用 env
kubectl exec mypod -- env NAME=value123 script01
# or
kubectl exec mypod -- /bin/sh -c 'NAME=value123 script01'
有关详细信息,请参阅
如果你想为 pod 的生命周期设置环境变量,那么你可能想在创建它之前在 pod 本身的 yaml 清单中设置它。
你也可以 运行 set
如果你先 运行 shell
kubectl exec mypod -- /bin/sh -c 'set'