【问题标题】:Celery task stops when calling helm install调用 helm install 时 Celery 任务停止
【发布时间】:2019-08-15 12:32:01
【问题描述】:

我有一个在 kubernetes 上运行的 Web 服务器和 celery beat worker。 在部署中,我将此命令称为 -

helm upgrade X ./X --set xImageTag=$TAG,nginxImageTag=$TAG --install

Pod 正在重新启动。如果有一个正在运行的 celery 任务 - 它会在中间停止并永远丢失。 有没有优雅的方法来防止这种情况发生?

我正在考虑:使用 pod PreStop 挂钩或创建一些可以阻止任务停止的东西。

我希望即使在部署新代码和调用时任务也能继续运行

helm upgrade ..... --install.

我确定有人已经遇到过这个问题,但我在网上找不到任何东西。谢谢!

【问题讨论】:

    标签: kubernetes celery hook celery-task celerybeat


    【解决方案1】:

    我们通过 celery 任务以编程方式创建一个 k8s 作业来解决这个问题。现在 celery 任务的进程在一个 k8s 作业中执行,在 helm install 中不会被删除。 celery 任务将创建一个 k8s 作业,然后死掉。以编程方式创建 k8s 作业的代码在这里:blog.pythian.com/how-to-create-kubernetes-jobs-with-python。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-28
      • 2012-06-06
      • 2016-09-26
      • 2013-12-12
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多