windows - 如何从 Windows kubernetes pod 容器中复制文件
问题描述
我在将文件从 kubernetes pod 容器(windows节点)复制到 windows 10 上的本地 linux 子系统时遇到了一些困难:
t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:c:\testlog2.txt .
tar: Removing leading drive letter from member names
error: tar contents corrupted
t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:/c/testlog2.txt ./
tar: /c/testlog2.txt: Couldn't find file: No such file or directory
tar: Error exit delayed from previous errors.
t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:c:\testlog2.txt ./
tar: Removing leading drive letter from member names
error: tar contents corrupted
t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:c:/testlog2.txt ./
tar: Removing leading drive letter from member names
error: tar contents corrupted
t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:c:/testlog2.txt ./t2.txt
tar: Removing leading drive letter from member names
error: tar contents corrupted
t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:c:\testlog2.txt ./t2.txt
tar: Removing leading drive letter from member names
error: tar contents corrupted
该文件c:\testlog2.txt
肯定存在于 pod a8677 中。但是如何正确应对c:\testlog2.txt
呢?
笔记:
一些版主建议关闭这个问题,因为它是How to copy files from kubernetes Pods to local system 的副本。现有的问题是关于如何在 kubernetes 集群中的 linux 节点和 linux 本地系统之间复制文件。此信息包含在 Kubernetes 文档 ( https://kubectl.docs.kubernetes.io/pages/container_debugging/copying_container_files.html ) 中。
这里的这个问题专门针对Windows容器。它似乎既不在 kubernetes 文档中,也不在我在 stackoverflow 上找到的任何其他问题中。许多在 kubernetes linux 节点中很简单的事情都需要对 windows 节点进行一些额外的研究。
因此,我不认为它是重复的。
解决方案
正确的方法是,省略驱动器号:
kubectl cp <pod_name>:filename
例如:
kubectl cp a8677:testlog2.txt ./t2.txt
如果文件位于子目录中,则路径需要包含斜杠,并且不能包含反斜杠:
kubectl cp a8677:my/file/path/file.txt ./myfile.txt
推荐阅读
- ios - 防止 UITableViewCells 在平移时突出显示
- php - 在 foreach 循环中以父数组值作为键创建多向数组
- javascript - amp-script 代码中的 document.getElementById 以不同方式提供元素数据
- python - 如何从两个嵌套列表中制作字典?
- ios - 如何修复“'NSInvalidArgumentException',原因:'-[__NSCFNumber caseInsensitiveCompare:]: unrecognized selector sent to instance”?
- android - Room - 使用外部 SQLite 以及内部数据库
- java - 为什么我得到一个可以由 jdk8、10、11、12 构建的 pom,但只有 jdk9 不行?
- ios - 仅在其父视图内拖动 UIImageView
- javascript - 使用 span 来显示省略号而不是 div
- vue.js - 了解 Vue 组件和路由