问题描述
我正在从在OPenshift环境中运行的SCDF启动Spring批处理作业。我想将Spring批处理作业失败时将POD重新启动限制为1(而不是默认限制6)。 所以我将backoffLimit作为1添加到scdf-server-config.yaml。但是当作业失败时,POD仍会重新启动6次。什么是正确的属性,还是在SCDF中添加backoffLimit的正确方法。甚至maxCrashLoopBackOffRestarts都不起作用。
下面是我尝试过的。
scdf-config.yaml
spring:
cloud:
dataflow:
task:
platform:
kubernetes:
accounts:
k8sp:
limits:
memory: 512Mi
cpu: 1
entry-point-style: exec
image-pull-policy: always
backoffLimit: 1
maxCrashLoopBackOffRestarts: 1
更新1:
如下所述,我在scdf服务器的server-config.yaml中给出了适当的缩进,并尝试将Kubernetes部署程序属性添加到我的批处理application.properties中,如下所示,
scdf-config.yaml
spring:
cloud:
dataflow:
task:
platform:
kubernetes:
accounts:
default:
limits:
memory: 1024Mi
cpu: 2
entry-point-style: exec
image-pull-policy: always
backoffLimit: 0
max-terminated-error-restarts: 0
BatchJob项目application.properties
spring.cloud.deployer.kubernetes.backoff-limit=0
spring.cloud.deployer.kubernetes.max-terminated-error-restarts=0
spring.cloud.deployer.kubernetes.max-crash-loop-back-off-restarts=0
当作业失败时,窗格仍会重新启动6次。缺少什么?
解决方法
这些值未正确缩进。他们需要是这样的:
spring:
cloud:
dataflow:
task:
platform:
kubernetes:
accounts:
k8sp:
limits:
memory: 512Mi
cpu: 1
entry-point-style: exec
image-pull-policy: always
backoffLimit: 1
maxCrashLoopBackOffRestarts: 1