我有一个用例,我的 pod 以非 rootuser 身份运行并且它运行一个 python 应用程序。现在我想将文件从主节点复制到正在运行的 pod。但是当我尝试跑步时
kubectl cp app.py 103000-pras-dev/simplehttp-777fd86759-w79pn:/tmp
Run Code Online (Sandbox Code Playgroud)
这个命令挂了,但是当我以 root 用户身份运行 pod 然后运行相同的命令时,它会成功执行。我正在浏览 kubectl cp 的代码,它在内部使用 tar 命令。
Tar 命令有多个标志,如 --overwrite --no-same-owner、--no-preserve 等。现在从 kubectl cp 我们不能将所有这些标志传递给 tar。有什么方法可以使用 kubectl exec 命令或任何其他方式复制文件。
kubectl exec simplehttp-777fd86759-w79pn -- cp app.py /tmp/ **flags**
Run Code Online (Sandbox Code Playgroud) 我在将文件从 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 …Run Code Online (Sandbox Code Playgroud) 我们在 Kubernetes 中重新组织了我们的命名空间。我们希望将存储类创建的持久卷声明从一个命名空间移动到另一个命名空间。
(我们的备份工具没有帮助)。