Kubernetes activeDeadlineSeconds 不杀死进程

标签 kubernetes

我在我的 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/

相关文章:

kubernetes - 如何恢复 Kubernetes 集群中意外删除的 kube-proxy DaemonSet?

kubernetes - LoadBalancer 和 External IPs 类型的 Kubernetes 服务有什么区别

elasticsearch - 如何在Kafka连接器中正确连接Elastic Operator部署的Elasticsearch?

kubernetes - 如何禁用 Kubernetes 日志到磁盘文件?

elasticsearch - Kibana 索引模式未保存

kubernetes - 具有 PROXY 协议(protocol)的 GCP TCP 负载均衡器

kubernetes - kafka使用者问题:创建使用者之后,连接断开:Kafka + kubernetes

kubernetes - 如何在 promql 的时间间隔(比如 30 天)内获得 kubernetes 中 pod 的最大 cpu 使用率?

cookies - 跨所有 pod 的 Openshift 循环请求

azure - 我可以在 Azure 环境之外使用 Azure Synapse 功能吗?