kubernetes k8s cronjob运行下一个命令如果当前失败

ndh0cuux  于 2022-12-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(215)

我有一个cronjob如下

apiVersion: batch/v1
kind: CronJob
metadata:
  name: foo-bar
  namespace: kube-system
spec:
  schedule: "*/30 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          serviceAccountName: foo-cleaner
          containers:
          - name: cleanup
            image: bitnami/kubectl
            imagePullPolicy: IfNotPresent
            command:
            - "bin/bash"
            - -c
            - command1;
              command2;
              command3;
            - new_command1;
              new_command2;
              new_command3;

有时command2会失败,抛出错误,cronjob执行失败。我希望即使上一个块中的任何命令失败也运行new_command1

enyaitl3

enyaitl31#

在命令部分,您需要传递以下命令和参数:
命令:["/bin/sh”,"-c”]参数:[“命令1||命令2;命令3和命令4”]
命令["/bin/sh”,“-c”]用于运行shell,并执行以下指令。然后将参数作为命令传递给shell。
在shell脚本中,命令之间用分号分隔,如果第一个命令成功,&&将有条件地运行以下命令:Grep/Pipe(||)如果命令1失败,则运行命令1,然后也运行命令2。
根据上面的命令,它总是运行命令1,如果它失败或给出任何错误,然后它继续运行命令2。如果命令3成功,那么只有它运行命令4。在您的Yaml中进行相应的更改,并尝试。
有关cron作业,请参阅本文档。

相关问题