通过 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.

备注

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'