情况:
我有一个CronJob,它经常失败(目前是预期的)。由于执行作业的容器有一个侧面车,因此容器之间的依赖关系通过bash脚本和emptyDir
文件夹中/etc/liveness
的常见装载来表示:
spec:
containers:
- args:
- -c
- set -x;
...
./process; # execute the main process
rc=$?;
rm /etc/liveness; # clean-up
exit $rc;
command:
- /bin/bash
问题: 在作业失败的情况下,我在日志中看到以下内容:
+ rc=255
+ rm /etc/liveness
+ exit 255
在retryPolicy
设置为never
的情况下,失败的广告连播会进入Completed
状态,这会引起误解:
scheduler-1594015200-wl9xc 0/2 Completed 0 24m
答案 0 :(得分:1)
根据official doc,
一项工作会创建一个或多个Pod,并确保指定数量的 他们成功终止。
容器何时输入terminated state
它已成功完成执行或因某些原因而失败 原因。
因此,如果将retryPolicy设置为never,则将发生这种情况。
答案 1 :(得分:1)
Pod的状态字段是PodStatus对象,它具有一个相位字段。
参考:https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
状态和阶段不相同。因此我了解到,上面发生的事情是我的吊舱最终进入了状态Completed
和阶段Failed
。
答案 2 :(得分:0)
我遇到了同样的问题。Pod显示完成状态。作业已存在10天,没有删除,我还收到了普罗米修斯的“ KubeJobCompletion”警报。 Pod是空的,没有日志。因此无法调查。