想從k8s的pod中拷貝文件到宿主機,kubectl 的cp命令,但是網上搜索了下,感覺有點亂,自己記錄下。
hadoop這個namespace下,有個hadoop-hadoop-yarn-rm-0的pod,它的work_dir是/usr/local/hadoop,在這個目錄下有個application_1564318400358_0562_1文件,現在的目的是將此文件拷貝到宿主機上,命令如下List-1所示。由於我們的work_dir是/usr/local/hadoop,所以不需要寫完全路徑/usr/local/hadoop/application_1564318400358_0562_1,寫完全路徑反而會報錯
List-1
kubectl cp -n hadoop hadoop-hadoop-yarn-rm-0:application_1564318400358_0562_1 ./
如下List-2中報錯
List-2
[~]$ kubectl cp -n hadoop hadoop-hadoop-yarn-rm-0:/usr/local/hadoop/application_1564318400358_0562_1 ./ tar: Removing leading `/' from member names [~]$ kubectl cp -n hadoop hadoop-hadoop-yarn-rm-0:usr/local/hadoop/application_1564318400358_0562_1 ./ error: usr/local/hadoop/application_1564318400358_0562_1 no such file or directory
實例操作:
[root@pressure-pretest-master03 ~]# kubectl cp -n xitu-pressure h5-web-pressure-8498f76b59-mnm66:/var/log/nginx/access.log ./ tar: removing leading '/' from member names [root@pressure-pretest-master03 ~]# ls access.log [root@pressure-pretest-master03 ~]# tar -czvf access.log.tar.gz access.log access.log [root@pressure-pretest-master03 ~]# ls access.log access.log.tar.gz
部分 kubectl 的版本原因使用上述 kubctl cp 會報錯
emambp:tian ema$ kubectl cp learn-deployments/lrn145033-learn-tom7956c-g9k8q:bb-email-log.txt /Users/ema/work/bb_cicd/starter/kubernetes/tian/
Defaulting container name to learn.
error: open /Users/ema/work/bb_cicd/starter/kubernetes/tian: is a directory
目標參數必須為文件 不能是一個目錄
解決,
emambp:tian ema$ kubectl cp learn-deployments/lrn145033-learn-tom7956c-g9k8q:bb-email-log.txt /Users/ema/work/bb_cicd/starter/kubernetes/tian/bb-email-log.txt
總結:
源參數 不能是以“/” 開頭的,所以可以把需要copy的文件先拷貝到pod的工作目錄下
目標參數必須為文件 不能是目錄
實例操作:
kubectl version Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:54Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"12+", GitVersion:"v1.12.6-aliyun.1", GitCommit:"8cb561c", GitTreeState:"", BuildDate:"2019-05-23T11:28:17Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"} kubectl cp -n weifeng-test mall-finance-job-provider-69ff7fb8cf-k8p4g:aaa.bin ./aaa.bin ll total 186624 -rw-r--r-- 1 root root 191066106 Oct 23 16:56 aaa.bin