尽管退出代码为``255'',但Kubernetes吊舱仍标记为``已完成''

时间:2020-07-06 06:35:30

标签: kubernetes kubernetes-cronjob

情况: 我有一个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

3 个答案:

答案 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是空的,没有日志。因此无法调查。