我的Kubernetes容器中有几个名为out1,out2,...的文件。我想将它们复制到我的本地计算机。我正在使用:

$ kubectl cp pod:/path/out* .


但是我遇到了一个错误:


tar:从成员名称中删除前导“ /”
tar:/ path / out *:无法统计:没有这样的文件或目录
tar:由于先前的错误而以失败状态退出
错误:path / out *没有这样的文件或目录


如何将kubectl cp与通配符一起使用?

#1 楼

#72641拉取请求中的kubectl cp添加了通配符支持。
它已合并,但仅在Kubernetes v1.14.0中可用。看一下ChangeLog:

重要功能:
[...]
•kubectl支持使用通配符复制文件
(#72641,@dixudx)

但是,正如问题#78854所述,PR是在没有适当测试的情况下进行的,实际上该功能已损坏。解决此问题的PR(#78928)自6月以来已开放,并且尚未合并。

评论


它真的有效吗?似乎很多人都说不是。

–熊佳亚诺夫
19年7月22日在16:58

@XiongChiamiov,该功能已损坏,尚未修复(请参阅#78854)

–爱德华多·贝特洛(Eduardo Baitello)
19-09-23在23:46

#2 楼

您可以使用以下命令执行此操作:

kubectl cp -n [NAMESPACE] [POD_NAME]:/[POD_DIRECTORY]/. .


评论


这不是使用通配符复制文件的解决方案。 Kubernetes v1.14中引入了带有通配符的kubectl cp。

–爱德华多·贝特洛(Eduardo Baitello)
19年3月28日在22:01

我知道,我误解了这个问题,您的回答是正确的。 @EduardoBaitello

– cookiedough
19 Mar 28 '19在22:02