首页 > 解决方案 > kubectl 执行 -it获取 sh:无法打开“导出”:没有这样的文件或目录

问题描述

我尝试执行这个命令:

alias kubectl_winpty='winpty kubectl'   ( using winpty due to [bug][1] 
kubectl_winpty exec -it vault-0 -n vault-xxx -- sh export VAULT_CACERT=/vault/userconfig/vault-tls/vault.ca

但我收到此错误:

sh: can't open 'export': No such file or directory
command terminated with exit code 2

吊舱确实存在并正在运行

$ kubectl get pods vault-0 -n vault-xxx
NAME      READY   STATUS    RESTARTS   AGE
vault-0   0/1     Running   0          17m

标签: kubernetesshkubectl

解决方案


我猜想sh export让 shell 假设导出为文件名(shell 将运行的一些脚本)。因此错误can't open 'export': No such file or directory

尝试使用-c选项。

kubectl_winpty exec -it vault-0 -n vault-xxx -- sh -c "export VAULT_CACERT=/vault/userconfig/vault-tls/vault.ca"

此外,最好在创建此 pod 时设置 env 变量

还要确保您的 pod 健康且处于就绪状态kubectl get,根据输出,情况并非如此。


推荐阅读