我正在编写一个shell脚本,该脚本需要登录到pod并在kubernetes pod中执行一系列命令。
以下是我的sample_script.shkubectl exec octavia-api-worker-pod-test -c octavia-api bashunset http_proxy https_proxymv /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
运行此脚本后,没有任何输出。
任何帮助将不胜感激
最佳答案
您是否将所有这些命令作为一行命令运行?首先,这些命令之间没有;
或&&
。因此,如果将其作为多行脚本粘贴到终端,则可能会在本地执行。
其次,要告诉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"