我有一个Web服务器和我在kubernetes上运行的celery beat worker。
在部署中,我将此命令称为-
helm upgrade X ./X --set xImageTag=$TAG,nginxImageTag=$TAG --install
pods 正在重新启动。如果有一个正在运行的 celery 任务-它在中间停止并且永远丢失。
是否有一种优雅的方法可以防止这种情况发生?

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

我希望任务即使在部署新代码并调用时也能继续运行
helm upgrade ..... --install

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

最佳答案

我们通过以 celery 任务以编程方式创建k8s作业来解决此问题。现在, celery 任务的过程是在k8s作业中执行的,不会在 Helm 安装中删除。 celery 任务将创建一个k8s作业,然后死亡。用于以编程方式创建k8s作业的代码位于:blog.pythian.com/how-to-create-kubernetes-jobs-with-python。

关于kubernetes - 调用helm install时Celery任务停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55334885/

10-16 17:45