0

情况: 我有一个经常失败的 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失败的 pod 进入Completed状态,这是误导性的:

scheduler-1594015200-wl9xc   0/2     Completed     0          24m
4

2 回答 2

1

根据官方文档

Job 创建一个或多个 Pod 并确保指定数量的 Pod 成功终止

容器进入终止状态

它已成功完成执行或由于某种原因失败。

因此,如果您将 retryPolicy 设置为 never,就会发生这种情况。

于 2020-07-06T07:10:12.203 回答
1

Pod 的状态字段是一个 PodStatus 对象,它有一个阶段字段。

参考:https ://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase

状态和阶段是不一样的。所以我了解到,上面发生的事情是我的 pod 最终处于 statusCompleted和 phase Failed

于 2020-07-06T09:58:11.797 回答