我正在尝试将本地Python文件复制到Kubernetes上正在运行的容器中,但失败了:

$ kubectl cp /path/to/file.py namespace/pod:/path/in/container/file.py
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
command terminated with exit code 2

我知道tar二进制文件必须在容器中可用,确实如此。

有人知道这是怎么回事,我该如何解决?

更新:

经过更多测试后,我可以确认这仅在运行nvidia-docker的节点上发生,而不是在正常的docker上发生。当在这些节点上将内容传送到kubectl exec中时,流始终为空。

因此,以下命令会在启用GPU的节点上运行的Pod中产生一个空文件,而在其他没有GPU支持的节点上该文件是非空的:
cat nonempty_file.txt | kubectl exec -i pod -- tee /home/jovyan/empty_file.txt

这已经在两个节点上使用完全相同的图像/容器进行了测试。

最佳答案

通过更新EKS AMI版本解决了问题。
请安装新版本:eks-ami-releases
请参阅:eks-ami-kubectl

关于kubernetes - kubectl cp在运行nvidia-docker的节点上失败并显示 "tar: this does not look like a tar archive",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58479650/

10-10 04:36