如何在 kubernetes cron 作業中執行多個命令

如何在 kubernetes cron 作業中執行多個命令

我正在嘗試在 K8s cron 作業中執行多個命令。但是,日誌中僅顯示第一個作業輸出。我有這個:

          containers:
          - name: myjob
            image: postgres 
            args:
            - /bin/sh
            - -c
            - PGPASSWORD=$(echo $password) psql -h $host -p 5432 -U $username -d $db -c "\copy (select * from blah limit 1) to blah.txt" ; echo bar.txt ; cat bar.txt;
            - PGPASSWORD=$(echo $password) psql -h $host -p 5432 -U $username -d $db -c "\copy (select * from foo limit 1) to foo.txt" ; date ; echo foo.txt ; cat foo.txt;
          restartPolicy: OnFailure

我只看到第一個命令的輸出。我希望能夠指定多個命令並一一運行它們。

答案1

-c只需在with&&;運算子之後將它們連接在一行中

看完整答案這裡

答案2

只需透過 a 運行兩個命令Pod 中的標準流程。

command: ["/bin/sh","-c"]
args: ["command one; command two && command three"]

然而,我懷疑這是一個好主意它應該被用作最後的希望。貨櫃被設計為僅運行一個進程和 CronJobs 使用吊艙規格

因此,我可以推薦以下內容。順序很重要。

  • 如果您的任務完全獨立,請執行兩個單獨的 CronJobs。
  • 在 CronJob 中運行兩個單獨的容器。如果您的容器之一失敗,CronJob 將會失敗。
  • 使用initContainers達到某種秩序或之前的準備。

相關內容