将主机/本地环境变量传递到 Kubectl 'exec' 命令

den*_*ski 1 kubernetes kubectl

我想将 env vars 传递到exec命令中。

到目前为止,我已经尝试了以下

SOME_VAR="A String"

kubectl exec -it a-pod-name -- sh -c 'env NEW_VAR=$SOME_VAR; echo $NEW_VAR > some-file-name.txt'
Run Code Online (Sandbox Code Playgroud)

我意识到kubectl cp如果我想复制文件,我可以使用,但这不适合我的用例。

Pra*_*dha 5

您需要将命令放在双引号中,它的工作方式如下:

kubectl exec -it a-pod-name -- sh -c "env new_var=$var; echo $new_var > some-file-name.txt"
Run Code Online (Sandbox Code Playgroud)

背后的原因是 bash 不会将变量提取到单引号中的值中,因此您需要使用双引号。