使用Control-M监控时Kubernetes Job失败后无法完成的咨询
解答
- 能否让失败的Job进入完成状态?
完全可以,问题出在你当前的podFailurePolicy配置上。你使用的action: Terminate只会终止出问题的Pod,但不会触发Job的状态变更。将动作改为FailJob后,当Pod匹配到指定退出码规则时,Kubernetes会直接把Job标记为失败状态,同时让Job进入完成状态。
调整后的podFailurePolicy配置片段:
podFailurePolicy: rules: - action: FailJob onExitCodes: containerName: main operator: In values: [1]
- 这是Kubernetes的默认行为吗?
不是。Kubernetes Job的默认逻辑是:当Pod失败时,会按照backoffLimit设置的次数进行重试(具体是重启Pod还是新建Pod,取决于restartPolicy配置),只有当重试次数耗尽后,Job才会进入失败的完成状态。如果backoffLimit设为0,默认情况下Job会一直处于运行状态——因为没有重试机会,也没有明确规则触发Job标记自身为失败。
内容的提问来源于stack exchange,提问作者Programmer007
相关产品推荐
相关产品推荐

