当前位置: 首页 > 知识库问答 >
问题:

如何在每天设定的时间段内运行kubernetes pod?

许涵容
2023-03-14

我正在寻找一种方法,在kubernetes上部署一个pod,每天运行几个小时。本质上,我希望它每天早上8点运行,并继续运行到下午5:30左右。

我已经研究了很多,还没有找到一种在考虑特定时间框架的情况下部署pod的方法。我找到了cron作业,但这似乎是为了终止自己的pod,而我的应该不断运行。

有没有办法以这种方式在kubernetes上部署我的pod?还是我应该设置pod本身以根据其内部时钟运行其预期的应用程序?

共有2个答案

燕钟展
2023-03-14

看起来您可以使用cronjob对象来实现,

[https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#creating-a-cron-job]

万俟穆冉
2023-03-14

根据Kubernetes架构,一个作业创建一个或多个pod,并确保指定数量的pod成功终止。当pod成功完成时,作业会跟踪成功的完成。当达到指定的成功完成次数时,作业本身就完成了。

简而言之,作业一直运行到完成或失败。这就是为什么在 Kubernetes 中没有安排 Cron Job 终止的选项。

在您的情况下,您可以定期启动 Cron 作业并使用以下选项之一终止它:

>

  • 更好的方法是自行终止容器,这样您就可以将此类功能添加到您的应用程序或使用Cron。有关如何将Cron添加到Docker容器的更多信息,您可以在此处找到。

    您可以使用另一个Cron作业来终止您的Cron作业。您需要在Pod中运行命令来查找和删除与您的作业相关的Pod。有关更多信息,您可以通过此链接查看。但这不是一个好方法,因为您的Cron作业将始终具有失败状态。

    在这两种情况下,您都需要检查您的 Cron 作业已完成的状态,并相应地使用正确的重新启动策略

  •  类似资料:
    • 问题内容: 我是Java的新手,我已经开始从事一个项目。但是,我遇到了一个障碍。我需要一种在一天中的特定时间运行的方法。我已经做了很多搜索,但是找不到任何可以解决问题的方法。我遇到了Timer类,但它似乎以一定的间隔运行。Scheduler类似乎也有同样的问题。我也遇到过Quartz,但是我认为我需要更轻巧的东西,而且只能隔一段时间看一下如何做。 也许只是因为我是新手,所以我错过了一些可以在这些课

    • 如何将Airflow dag配置为每天在指定时间执行,无论发生什么,就像crons一样。 我知道使用 TimeSensor 可以获得类似的行为,但在这种情况下,这取决于传感器任务,并且可能与 dag 执行时间冲突。 示例:对于传感器方法,如果我让传感器在0小时15分钟运行,但如果dag在稍后执行,则我的任务会延迟,因此即使对于传感器方法,我也需要确保Dag在正确的时间执行。 那么如何确保Dag在指

    • 现在我每天下午3点运行我的cron作业 但是我想一天运行两次cron作业。上午10点30分和下午2点30分 我相信此命令将在上午 10:30 运行。我应该如何在下午 2:30 运行它?

    • 我想在Jenkins运行一个脚本10小时。这可能吗?我的脚本长度大约是55分钟。我现在已经安排它每小时运行一次。所以它保持每小时运行一次。(永不停止!!) 但是有没有办法让它在指定的时间内运行,比如说10个小时,然后自动停止?我希望它指定这个55分钟的脚本应该连续运行多长时间,然后自动停止,而不是安排。 所以,如果我在上午8点开始构建,并说运行3小时,它应该一直运行到上午11点,然后停止。

    • 问题内容: 我想每天早上5点执行某项任务。因此,我决定使用它,但到目前为止,我已经看到了一些示例,这些示例显示了如何每隔几分钟运行一次任务。 而且我找不到任何示例来说明如何每天在特定时间(上午5点)每天运行任务,并且还考虑了夏时制的事实- 以下是我的代码,每15分钟运行一次- 有什么办法,我可以考虑兼顾夏时制的事实,安排一个任务在每天的凌晨5点运行? 而且对于这个还是更好? 问题答案: 与当前的J

    • 我一直在尝试让我的不和谐机器人每天在特定时间运行一个功能。目前,机器人每24小时可以做一些事情,所以我需要做的就是让它在特定时间启动。但是,我不知道为什么我不能让它工作。我尝试了多种解决方案,使用时间表、aioscheduler等。我尝试了其他时候的解决方案,这个问题被问到,但我无法让它们工作。 目前,机器人运行,它没有抛出任何错误,但函数roletask()似乎从未被调用。((出于测试目的,Ro