在kubernetes窗格中执行多个命令(或来自shell脚本)

我正在编写一个shell脚本,需要login到pod并在kubernetes窗格中执行一系列命令。

下面是我的sample_script.sh

kubectl exec octavia-api-worker-pod-test -c octavia-api bash unset http_proxy https_proxy mv /usr/local/etc/octavia/octavia.conf /usr/local/etc/octavia/octavia.conf-orig /usr/local/bin/octavia-db-manage --config-file /usr/local/etc/octavia/octavia.conf upgrade head

运行这个脚本后,我没有得到任何输出。 任何帮助将不胜感激

你是否将所有这些命令作为单行命令运行? 首先,没有; 或者这些命令之间的&& 。 所以如果你把它作为一个多行脚本粘贴到你的terminal上,它可能会在本地执行。

其次,要告诉bash执行什么,你需要: bash -c "command"

尝试运行这个:

 $ kubectl exec POD_NAME -- bash -c "date && echo 1" Wed Apr 19 19:29:25 UTC 2017 1 

你可以像这样做多行:

 $ kubectl exec POD_NAME -- bash -c "date && \ echo 1 && \ echo 2"