Como executar vários comandos no cron job do Kubernetes

Como executar vários comandos no cron job do Kubernetes

Estou tentando executar vários comandos em um cron job do K8s. No entanto, apenas a saída dos primeiros trabalhos é exibida nos logs. Eu tenho isto:

          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

Estou vendo apenas a saída do primeiro comando. Gostaria de poder especificar vários comandos e executá-los um por um.

Responder1

basta juntá-los em uma única linha após -co operador &&ou;

Veja a resposta completaaqui

Responder2

Só pode executar dois comandos por umprocedimento padrão no Pod.

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

No entanto,Duvido que seja uma boa ideiae deve ser usado como última esperança. Containerssão projetados para executar apenas um processoe CronJobs usamEspecificação do pod.

Portanto, posso recomendar as seguintes coisas. A ordem é importante.

  • Execute dois CronJobs separados se suas tarefas forem completamente independentes.
  • Execute dois contêineres separados no CronJob. O CronJob falhará se um dos seus contêineres falhar.
  • UsarinitContainerspara conseguir alguma ordem ou preparação antes.

informação relacionada