我有一个不断重启的 cronjob,尽管它RestartPolicy
设置为Never
:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cron-zombie-pod-killer
spec:
schedule: "*/9 * * * *"
successfulJobsHistoryLimit: 1
jobTemplate:
spec:
template:
metadata:
name: cron-zombie-pod-killer
spec:
containers:
- name: cron-zombie-pod-killer
image: bitnami/kubectl
command:
- "/bin/sh"
args:
- "-c"
- "kubectl get pods --all-namespaces --field-selector=status.phase=Failed | awk '{print $2 \" --namespace=\" $1}' | xargs kubectl delete pod > /dev/null"
serviceAccountName: pod-read-and-delete
restartPolicy: Never
我希望它每 9 分钟运行一次,但事实并非如此。发生的情况是,当有 pod 需要清理时(因此,当有 pod 需要做的事情时)它会正常运行。一旦一切都清理干净,它会每秒不断地重新启动 -> 失败 -> 启动等。
我需要做些什么来告诉 k8s 工作已经成功,即使无事可做(没有要清理的 pod)?是什么让作业在重启和失败中循环?