带有Kubernetes的Sprint云数据流:BackoffLimit

问题描述 投票:0回答:2

Kubernetes Pod后退失败策略

k8s documentation

[在某些情况下,由于配置中的逻辑错误,您希望在重试一定次数后使作业失败。为此,请设置.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次。

spring kubernetes spring-cloud-dataflow
2个回答
0
投票
要覆盖默认的重新启动限制,您必须使用SCDF的maxCrashLoopBackOffRestarts部署程序属性。 ref. guide中记录了所有受支持的属性。

您还可以配置在SCDF中“全局”覆盖此属性,或者在每个流/任务部署级别分别覆盖它。更多信息here


0
投票
我昨天在一个类似的问题上工作,但仍然找不到使它起作用的方法。这是我在SCDF 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配置使用不正确可能是一个错误吗?

© www.soinside.com 2019 - 2024. All rights reserved.