我正试图将一个文件从容器复制到我的mac,我还研究了这个问题如何将文件从kubernetes Pods复制到本地系统,但对没有帮助
起初,我尝试了
kubectl cp -n company -c company-web-falcon company/company-web-falcon-bb86d79cf-6jcqq:/etc/identity/ca/security-ca.pem /etc/identity/ca/security-ca.pem
导致这个错误
tar: Removing leading `/' from member names
所以我尝试了这个
kubectl cp -n company -c company-web-falcon company/company-web-falcon-bb86d79cf-6jcqq:/etc/identity/ca/security-ca.pem /etc/identity/ca/security-ca.pem .
导致这个错误
error: source and destination are required
我该怎么修?
您可以使用以下命令kubectl cp 复制文件
- 将/tmp/foo_dir本地目录复制到默认命名空间中远程pod中的/tmp/bar_dir
kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir
- 将/tmp/foo本地文件复制到特定容器中远程pod中的/tmp/bar
kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>
- 将/tmp/foo本地文件复制到命名空间中远程pod中的/tmp/bar
kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar
- 将/tmp/foo从远程pod复制到本地/tmp/bar
kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar
至于您收到的警告,您可以在github问题中获得更多详细信息有多种公认的解释。最好的是下面的
您将需要的文件移动到pod中的工作目录(当您打开bash时,该目录会自动打开(-
user@podname:/usr/src# ls data.txt
data.txt
在本例中,它是/usr/src文件夹。
然后在本地bash终端-
user@local:~$ kubectl cp podname:data.txt data.txt
user@local:~$ ls data.txt
data.txt
因此,根据注释,WORKINGDIR
似乎是在docker文件或部署中设置的,在这种情况下,它将失败。因此,如果你想实现这一点,你应该把它移到工作目录中。
kubectl exec company-web-falcon-bb86d79cf-6jcqq -c company-web-falcon -- bash -c "cp /etc/identity/ca/security-ca.pem ." && kubectl cp -n company -c company-web-falcon company/company-web-falcon-bb86d79cf-6jcqq:security-ca.pem /etc/identity/ca/security-ca.pem