kubernetes - kubectl cp 在运行 nvidia-docker 的节点上失败并显示 "tar: this does not look like a tar archive"

标签 kubernetes kubectl amazon-eks nvidia-docker

我正在尝试将本地 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/

相关文章:

kubernetes 健康检查查找字符串

kubernetes - 加入 x509 : certificate has expired or is not yet valid

kubernetes - 如何停止 kubectl 代理

amazon-web-services - Spring Boot应用程序无法从任何凭证链中找到aws凭证

kubernetes - 尝试使用 kubectl 在 AWS EKS 集群中创建命名空间 - 获取 : Error from server (Forbidden): namespaces is forbidden

docker - 在 gitlab ci 作业中使用 kubectl 创建 ImagePullSecret 时出现奇怪错误

docker-compose - 地形: Deploying a Docker Compose app on EKS/ECS

kubernetes - 是否有选择Ingress规则的命令?

docker - Openshift Volume Mounts 显示 root :root

Kubernetes - 如何访问 minikube 中的部署?