为什么kubectlcp命令以退出代码126终止?
我正在尝试使用以下命令将文件从 pod 复制到本地:
kubectl cp /namespace/pod_name:/path/in/pod /path/in/local
但是command terminates with exit code 126不会发生和复制。
同样,在使用以下命令从本地尝试到 pod 时:
kubectl cp /path/in/local /namespace/pod_name:/path/in/pod
它引发以下错误:
OCI runtime exec failed: exec failed: container_linux.go:367: starting container process caused: exec: "tar": executable file not found in $PATH: unknown
请帮助解决这个问题。
回答
kubectl cp实际上是一个非常小的包装器kubectl exec whatever tar c | tar x。这样做的副作用是您需要tar目标容器中的可执行文件,而您似乎没有。
通常kubectl cp最好避免,它通常只适用于奇怪的调试内容。
回答
kubectl cp要求tar存在于您的容器中,如帮助所述:
!!!重要的提示!!!要求容器映像中存在“tar”二进制文件。如果 'tar' 不存在,'kubectl cp' 将失败。
确保您的容器中包含tar二进制文件$PATH