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

以下是我的sample_script.sh
kubectl 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"

10-01 13:03