优雅地更新Kubernetes中正在运行的芹菜荚

时间:2016-08-28 13:19:36

标签: celery kubernetes celerybeat

我有一个运行Django,Celery,RabbitMq和Celery Beat的Kubernetes集群。我有几个周期性的任务间隔一天(以便减少服务器负载)。没有任务正在运行只有几个小时,我想将滚动更新限制在那些时间,而不必手动跟踪它。因此,我正在寻找一种解决方案,允许我启动监视Celery服务器的某种脚本或任务,并在没有任务正在运行的窗口中触发滚动更新。我有两种可能的方法可以做到这一点,但我不确定哪种方法最好,也不知道如何实现其中任何一方。

  • 运行一个脚本(bash或其他),每隔几分钟检查一次Celery服务器,并在服务器处于非活动状态时启动滚动更新
  • 在每次更新之前(在Beat run命令,Celery运行命令和celery.py配置文件中)增加celery应用程序名称,创建一个新的Celery pod,滚动更新Beat pod,然后删除12小时后的老芹菜(所有正在运行的任务完成的合理时间范围)

任何想法都会非常感激。

0 个答案:

没有答案