kubectl cp从K8s Pod复制tar.gz文件报无此文件或目录如何解决?
kubectl cp 提示文件不存在但实际存在的解决方案
常见原因及对应解决方法
- 路径格式问题:
kubectl cp冒号后的相对路径是相对于容器配置的WORKDIR目录,而非容器根目录。你执行命令时使用的是相对路径app/models/xxx,如果容器WORKDIR不是根目录就会找不到文件,优先改用绝对路径:
kubectl cp rasa-core-cz-ret-deployment-7958c6887c-62mqg:/app/models/20211101-142745.tar.gz ~/Desktop
- 容器内未安装tar命令:
kubectl cp底层依赖容器内的tar命令完成打包传输,如果你的容器镜像为精简镜像(比如distroless、极简alpine镜像)未预装tar,也会触发该报错。可以用cat重定向的方式绕过tar依赖:
kubectl exec rasa-core-cz-ret-deployment-7958c6887c-62mqg -- cat /app/models/20211101-142745.tar.gz > ~/Desktop/20211101-142745.tar.gz
- Pod存在多容器:如果同一个Pod内运行了多个容器,
kubectl cp默认选取第一个容器读取文件,如果目标文件在其他容器内,需要添加-c参数指定容器名称:
kubectl cp -c <目标容器名称> rasa-core-cz-ret-deployment-7958c6887c-62mqg:/app/models/20211101-142745.tar.gz ~/Desktop
内容的提问来源于stack exchange,提问作者Stanislav Jirak
相关产品推荐
相关产品推荐

