backoffLimit/maxCrashLoopBackOffRestarts 的使用
Posted
技术标签:
【中文标题】backoffLimit/maxCrashLoopBackOffRestarts 的使用【英文标题】:Usage of backoffLimit/maxCrashLoopBackOffRestarts 【发布时间】:2020-12-01 03:51:41 【问题描述】:我正在从在 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 项目应用程序.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
当作业失败时,pod 会重新启动 6 次。缺少什么?
【问题讨论】:
【参考方案1】:这些值没有正确缩进。它们需要是这样的:
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
【讨论】:
我现在尝试使用正确的缩进,但我仍然看到 Pod 在失败后立即启动,尽管 backoffLimit 和 maxCrashLoopBackOffRestarts 为 1。此配置应该放在 SCDF 服务器配置级别还是浴缸应用程序级别?以上是关于backoffLimit/maxCrashLoopBackOffRestarts 的使用的主要内容,如果未能解决你的问题,请参考以下文章