当 kubernetes cron 作业 pod 通过“替换”并发策略终止时,其关闭会是什么样子?

mju*_*rez 4 cron kubernetes

我在 kubernetes 官方文档中找不到任何关于此的内容。替换长时间运行的 cron 作业的实际低级流程是什么?我想了解这一点,以便我的应用程序可以正确处理它。

\n
    \n
  • 它是发送到正在运行的应用程序的干净SIGHUP/信号吗?SIGTERM
  • \n
  • 发送信号后是否有一段等待时间,以便应用程序有时间在可能被杀死之前进行清理/关闭?如果是这样,超时是多少秒?还是永远等待?
  • \n
\n

作为参考,这里是Replace文档中的政策说明:

\n

https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/

\n
\n

并发策略

\n
    \n
  • 替换:如果到了运行新作业的时间,并且之前的作业运行尚未完成,则 cron 作业将用新的作业运行替换当前正在运行的作业运行
  • \n
\n
\n

Mat*_*att 6

CronJob 下面只是另一个 Pod。

当并发策略为“Replace”的 Cronjob 仍然处于活动状态时,Job 将被删除,同时 Pod 也会被删除。

当 Pod 被删除时,Linux 容器将在宽限期(默认为 30 秒)后发送 a,SIGTERM然后发送 a。PodSpec中的属性SIGKILL可以设置为覆盖该默认值。terminationGracePeriodSeconds

由于添加到调用中的标志DeleteJob,听起来这个删除只是从 kube 键/值存储中删除值。这意味着可以在当前 Job/Pod 仍在终止时创建新的 Job/Pod。您可以确认一个不尊重 a 的作业SIGTERM,并且将 aterminationGracePeriodSeconds设置为集群调度速度的几倍。