如何从 windows kubernetes pod 容器复制文件

whe*_*ere 4 windows kubernetes

我在将文件从 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
Run Code Online (Sandbox Code Playgroud)

该文件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 节点进行一些额外的研究。

因此,我不认为它是重复的。

whe*_*ere 5

正确的方法是,省略驱动器号:

kubectl cp <pod_name>:filename

例如:

kubectl cp a8677:testlog2.txt ./t2.txt

如果文件在子目录中,则路径需要包含斜杠,并且没有反斜杠:

kubectl cp a8677:my/file/path/file.txt ./myfile.txt
Run Code Online (Sandbox Code Playgroud)