我在我的 Job
定义中使用 activeDeadlineSeconds
但它似乎没有任何效果。我有一个每分钟启动一项作业的 CronJob,我希望该作业能够在创建另一个作业之前自动终止其所有 pod(因此 50 秒似乎是合理的)。我知道还有其他方法可以做到这一点,但这对于我们的情况来说是理想的。
但是,我注意到 pod 并没有被杀死。 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
...
最佳答案
您可以使用concurrencyPolicy:“替换”
。这将终止之前正在运行的 Pod,然后启动一个新的 Pod。
从这里检查评论:ConcurrencyPolicy
关于Kubernetes activeDeadlineSeconds 不杀死进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53505513/