从node节点拷贝文件到pod时,提示权限不足。
命令如下:
kubectl -n namespace cp nodePath/filename podname:podPath/filename
提示报错信息如下:
pods "podname" is forbidden: User "system:node:nodename" cannot create resource "pods/exec" in API group "" in the namespace "namespace"
这是因为当前节点不是master节点,而是通过配置文件,让当前节点拥有了执行kubectl权限,自己在配置的时候不彻底,导致这种情况发生。
解决方案:
1.将主节点中的/apps/conf/kubernetes/admin.conf(目录名可能不相同,需要将/apps/conf换成自己的目录名))文件拷贝到/apps/conf/kubernetes/目录下,如果无法拷贝文件,可以直接复制文件内容。
2.配置环境变量
echo "export KUBECONFIG=/apps/conf/kubernetes/admin.conf" >> ~/.bash_profile
3.立即生效
source ~/.bash_profile1
从pod复制文件到宿主机
1 首先进入pod 使用pwd查看当前容器所在的目录 比如/hbase
2 将pod中的文件file.txt放到该目录下,例如 /hbase/file.txt
3 使用kubectl的命令
kubectl cp namespace/pod-name:file.txt /主机路径/file.txt
有两点需要注意的:
1、命令中pod的目录要用相对目录
2、目标主机路径后面需要加上文件名