Kubernetes吊舱标记为“已完成”,尽管出口代码为“255”`
情况: 我有一份经常失败的工作(目前这是意料之中的)。由于执行作业的容器有一个侧车,因此容器之间的依赖关系通过bash脚本和Kubernetes吊舱标记为“已完成”,尽管出口代码为“255”`,kubernetes,kubernetes-cronjob,Kubernetes,Kubernetes Cronjob,情况: 我有一份经常失败的工作(目前这是意料之中的)。由于执行作业的容器有一个侧车,因此容器之间的依赖关系通过bash脚本和/etc/liveness文件夹中的emptyDir的公共装载来表示: spec: containers: - args: - -c - set -x; ... ./process; # execute the ma
/etc/liveness
文件夹中的emptyDir
的公共装载来表示:
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
根据,
作业创建一个或多个POD,并确保指定数量的POD
它们成功地终止
集装箱何时进入
它已成功完成执行,或在某些时间内失败
原因
因此,如果将retryPolicy设置为never,则会发生这种情况。根据
作业创建一个或多个POD,并确保指定数量的POD
它们成功地终止
集装箱何时进入
它已成功完成执行,或在某些时间内失败
原因
因此,如果将retryPolicy设置为“永不”,则会发生这种情况
Pod的状态字段是一个PodStatus对象,它有一个相位字段
参考:
状态和阶段不同。所以我了解到,上面发生的事情是,我的POD最终处于状态完成
和阶段失败
Pod的状态字段是一个PodStatus对象,它有一个相位字段
参考:
状态和阶段不同。因此,我了解到,上面发生的事情是,我的播客最终处于状态
已完成
和阶段失败
,很抱歉,我没有得到你的答案。那么为什么pod状态为已完成
而不是失败
?pod失败了。作业已完成。您好@coderanger正如您在kubectl get pods
命令输出的我的问题中所看到的,pod未失败
,它已完成
。另外,从单据中:Description:失败。Pod中的所有容器均已终止,且至少有一个容器因故障而终止。也就是说,容器要么以非零状态退出,要么被系统终止。对不起,我没有得到你的答案。那么为什么pod状态为已完成
而不是失败
?pod失败了。作业已完成。您好@coderanger正如您在kubectl get pods
命令输出的我的问题中所看到的,pod未失败
,它已完成
。另外,从单据中:Description:失败。Pod中的所有容器均已终止,且至少有一个容器因故障而终止。也就是说,容器要么以非零状态退出,要么被系统终止。裁判: