我正在寻找一种在kubernetes上部署Pod的方法,每天可以运行几个小时。本质上,我希望它每天早晨8点运行并继续运行直到下午5:30。
我已经进行了很多研究,但还没有找到在特定时间范围内部署Pod的方法。我已经找到了cron作业,但这似乎是用于终止自身的Pod,而我的应连续运行。
是否可以通过这种方式在kubernetes上部署我的pod?还是应该只设置Pod本身以根据其内部时钟运行其预期的应用程序?
答案 0 :(得分:1)
根据Kubernetes架构,一个Job创建一个或多个Pod,并确保指定数量的Pod成功终止。吊舱成功完成后,作业会跟踪成功完成的情况。当达到指定的成功完成次数时,作业本身即完成。
简单来说,作业会一直运行到完成或失败为止。这就是为什么无法在Kubernetes中安排Cron Job终止的原因。
根据您的情况,您可以定期启动Cron作业并使用以下选项之一终止该作业:
更好的方法是自行终止容器,因此可以将此类功能添加到应用程序中或使用Cron。有关如何将Cron添加到Docker容器的更多信息,您可以找到here。
您可以使用另一个Cron作业来终止您的Cron作业。您需要在Pod中运行命令来查找和删除与您的工作相关的Pod。有关更多信息,您可以浏览此link。但这不是一个好方法,因为您的Cron工作将始终具有failed
状态。
在两种情况下,您都需要检查Cron作业的完成状态,并相应地使用正确的RestartPolicy
。
答案 1 :(得分:0)
看来您可以使用cronjob对象来实现
[https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#creating-a-cron-job]