kubectl执行程序:权限被拒绝

时间:2018-12-31 21:31:47

标签: kubernetes kubectl

尝试将一些新条目追加到pod中的/ etc / hosts,但失败:

$ ips=$(cat ips.txt); kubectl exec -u root myspark-master-5d6656bd84-5zf2h echo "$ips" >> /etc/hosts
-sh: /etc/hosts: Permission denied

该如何解决?

谢谢

更新

$ ips=$(cat ips.txt); kubectl exec myspark-worker-5976b685b4-8bcbl -- sh -c "echo $ips >> /etc/hosts"
sh: 2: 10.233.88.5: not found
sh: 3: 10.233.96.2: not found
sh: 4: 10.233.86.5: not found
10.233.88.4 myspark-master-5d6656bd84-dxhxc
command terminated with exit code 127

2 个答案:

答案 0 :(得分:1)

我认为您的意思是写入容器内的文件,但是bash正在解析您的工作站上的文件,并尝试在本地应用重定向。请改用kubectl exec ... -- sh -c “...”

答案 1 :(得分:0)

确实存在解析问题,因为$ips包含新行。

尝试

$ ips=$(cat ips.txt); kubectl exec myspark-worker-5976b685b4-8bcbl -- sh -c "echo \"$ips\" >> /etc/hosts"