调用 helm install 时芹菜任务停止

Celery task stops when calling helm install

我在 kubernetes 上有一个 Web 服务器和 celery beat worker 运行。 在部署中,我调用这个命令 -

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

pods 正在重新启动。如果有一个 运行 芹菜任务 - 它会在中间停止并永远丢失。 有什么优雅的方法可以防止这种情况发生吗?

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

即使部署新代码并调用

,我也希望任务继续运行

helm upgrade ..... --install.

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

我们通过让 celery 任务以编程方式创建 k8s 作业来解决它。现在celery任务的进程是在一个k8s job中执行的,helm install不会删除。 celery 任务将创建一个 k8s 作业,然后终止。以编程方式创建 k8s 作业的代码位于:blog.pythian.com/how-to-create-kubernetes-jobs-with-python 。