Kubernetes Pod后退失败策略
[在某些情况下,由于配置中的逻辑错误,您希望在重试一定次数后使作业失败。为此,请设置.spec.backoffLimit以指定重试次数,然后再将作业视为失败。退避限制默认设置为6。
Spring云数据流:
[当工作失败时,我们实际上不希望重试。换句话说,我们要在Sprint Cloud Dataflow配置文件中设置backoffLimit: 1
。
我们尝试将其设置为以下内容:
deployer.kubernetes.spec.backoffLimit: 1
甚至
deployer.kubernetes.backoffLimit: 1
但是两者都不会传输到我们的Kubernetes集群。
经过6次尝试,我们看到以下消息:
状态:条件:-lastProbeTime:'2019-10-22T17:45:46Z'lastTransitionTime:'2019-10-22T17:45:46Z'消息:作业已达到指定的退避限制原因:BackoffLimitExceeded状态:“ True”类型:失败失败:6开始时间:'2019-10-22T17:33:01Z'
实际上我们想快速失败(最多尝试1或2次尝试)
问题:如何正确设置此属性?
更新(23.10.2019)
我们也尝试过该物业:
deployer:
kubernetes:
maxCrashLoopBackOffRestarts: Never # No retry for failed tasks
但是作业仍然失败6次而不是1次。
maxCrashLoopBackOffRestarts
部署程序属性。 ref. guide中记录了所有受支持的属性。您还可以配置在SCDF中“全局”覆盖此属性,或者在每个流/任务部署级别分别覆盖它。更多信息here。
application.yml
中的配置:spring:
cloud:
dataflow:
task:
platform:
kubernetes:
accounts:
default:
maxCrashLoopBackOffRestarts: 0
maxTerminatedErrorRestarts: 0
但是似乎该配置未在Kubernetes中使用。我也看过即将发布的SCDF版本
2.3.0
,并看到Spring Cloud Deployer Kubernetes将更新为版本2.1.0
(随着配置管理的更改)。当前SCDF版本中的Kubernetes配置使用不正确可能是一个错误吗?