Как запустить несколько команд в задании cron kubernetes

Как запустить несколько команд в задании cron kubernetes

Я пытаюсь запустить несколько команд в задании cron K8s. Однако в журналах отображается только вывод первого задания. У меня это:

          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

просто соедините их в одну строку после оператора -cor&&;

Посмотреть полный ответздесь

решение2

Просто можно запустить две команды однимстандартная процедура в Под.

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

Однако,Я сомневаюсь, что это хорошая идея.и его следует использовать как последнюю надежду. Контейнерыпредназначены для запуска только одного процессаи CronJobs используютСпецификация стручка.

Поэтому я могу порекомендовать следующее: порядок имеет значение.

  • Запустите два отдельных задания CronJob, если ваши задачи полностью независимы.
  • Запустите два отдельных контейнера в CronJob. CronJob даст сбой, если один из ваших контейнеров выйдет из строя.
  • ИспользоватьinitContainersдля достижения некоторого порядка или подготовки заранее.

Связанный контент