首页 > 解决方案 > Kubernetes activeDeadlineSeconds 没有杀死进程

问题描述

activeDeadlineSeconds在我的Job定义中使用,但它似乎没有任何效果。我有一个 CronJob 每分钟启动一项工作,我希望该工作在创建另一个 Pod 之前自动杀死它的所有 Pod(所以 50 秒似乎是合理的)。我知道还有其他方法可以做到这一点,但这对我们的情况来说是理想的。

然而,我注意到豆荚并没有被杀死。有什么限制activeDeadlineSeconds吗?我在 K8s 1.7 的文档中看不到任何内容 - https://v1-7.docs.kubernetes.io/docs/api-reference/v1.7/#jobspec-v1-batch我还检查了最近的版本。

这是我的 CronJob 定义的精简版 -

apiVersion: batch/v2alpha1
kind: CronJob
metadata:
  name: kafka-consumer-cron
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:  # JobSpec
      activeDeadlineSeconds: 50   # This needs to be shorter than the cron interval  ## TODO - NOT WORKING!
      parallelism: 1
      ...

标签: kubernetes

解决方案


您可以使用concurrencyPolicy: "Replace". 这将终止先前运行的 pod,然后启动一个新的。

从这里查看评论:ConcurrencyPolicy


推荐阅读