赞
踩
在k8s集群中我们经常需要拷贝文件到容器以及从容器中拷贝文件到本地
拷贝本地文件到容器中:
kubectl cp a.txt xxxx:/opt/ -n namespace
xxxx: pod的名称 , -n 后为pod的namespace
拷贝容器中的文件到本地:
这里有个潜在的k8s bug, k8s 默认不支持绝对路径,只能从工作目录开始拷贝,我们登录到pod中默认的路径就是工作目录,登录进容器的命令
kubectl exec -it -n namespace <pod name> bash
这时将想要拷贝出去的文件放到容器的工作目录下, 比如我这里是a.txt
kubectl cp xxxx:a.txt a.txt -n acp-system
可以看到k8s 容器里不要加路径活绝对路径,直接文件名就好,然后再本地不要写 ./ 或其他路径,需要我们在本地自定义一个文件名, 否则会报错,比如下面的命令就是个错误的命令
kubectl cp xxxx:a.txt ./ -n acp-system
错误如下:
tar: 1.txt: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。