Cómo ejecutar múltiples comandos en el trabajo cron de Kubernetes

Cómo ejecutar múltiples comandos en el trabajo cron de Kubernetes

Estoy intentando ejecutar varios comandos en un trabajo cron de K8. Sin embargo, en los registros solo se muestran los resultados de los primeros trabajos. Tengo esto:

          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

Solo veo el resultado del primer comando. Me gustaría poder especificar varios comandos y ejecutarlos uno por uno.

Respuesta1

simplemente únelos en una sola línea después -ccon el operador &&u;

Ver la respuesta completaaquí

Respuesta2

Sólo puedo ejecutar dos comandos por unProcedimiento estándar en Pod.

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

Sin embargo,dudo que sea una buena ideay debería utilizarse como última esperanza. ContenedoresEstán diseñados para ejecutar un solo proceso.y uso de CronJobsEspecificación de la cápsula.

Por lo tanto, puedo recomendar las siguientes cosas. El orden importa.

  • Ejecute dos CronJobs separados si sus tareas son completamente independientes.
  • Ejecute dos contenedores separados en CronJob. El CronJob fallará si uno de sus contenedores falla.
  • UsarinitContainerspara lograr algún orden o preparación antes.

información relacionada