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

or 연산자 -c다음 에 한 줄로 연결하세요.&&;

전체 답변 보기여기

답변2

그냥 두 개의 명령을 실행할 수 있습니다Pod의 표준 절차.

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

하지만,나는 그것이 좋은 생각인지 의심스럽다.그리고 그것은 마지막 희망으로 사용되어야 합니다. 컨테이너하나의 프로세스만 실행하도록 설계되었습니다.및 CronJobs 사용포드 사양.

그러므로 나는 다음과 같은 것들을 추천할 수 있다. 주문이 중요합니다.

  • 작업이 완전히 독립적인 경우 두 개의 별도 CronJob을 실행합니다.
  • CronJob에서 두 개의 별도 컨테이너를 실행합니다. 컨테이너 중 하나가 실패하면 CronJob이 실패합니다.
  • 사용initContainers전에 어떤 질서나 준비를 이루다.

관련 정보