我在activeDeadlineSeconds
定义中使用了Job
,但似乎没有任何效果。我有一个CronJob,每分钟启动一个工作,我希望该工作在创建另一个工作集之前自动杀死它的所有pod(因此50秒似乎是合理的)。我知道还有其他方法可以做到这一点,但这对我们的情况非常理想。
不过,我注意到这些豆荚并没有被杀死。 activeDeadlineSeconds
有什么限制吗?我在K8 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
...
答案 0 :(得分:1)
您可以使用concurrencyPolicy: "Replace"
。这将终止先前运行的pod,然后开始一个新的pod。
从此处查看评论:ConcurrencyPolicy
答案 1 :(得分:0)
事实证明,这实际上是1.7中的一个已知错误。在版本1.8中已修复
https://github.com/openshift/origin/issues/10755 https://github.com/kubernetes/kubernetes/issues/32149