我有几个芹菜工人在minikube中运行,他们正在处理使用rabbitMQ传递的任务。最近我更新了芹菜工人的一些代码并更改了图像。当我执行helm upgrade release_name chart_path
时,所有现有的工作 Pod 都将终止,所有未完成的任务都将被放弃。我想知道是否有办法在不终止旧吊舱的情况下升级舵图?
- 我知道
helm install -n new_release_name chart_path
会给我一组新的芹菜工作线程;但是,由于一些限制,我不允许在新版本中部署 Pod。 - 我尝试运行
helm upgrade release_name chart_path --set deployment.name=worker2
因为我认为拥有新的部署名称会阻止 helm 删除旧 pod,但这也不起作用。
这就是 Kubernetes 部署的工作方式。您应该做的是修复您的 Celery 工作人员映像,以便它在实际关闭之前等待尝试完成任何待处理的任务。这种情况可能已经是这种情况了,除非你做了一些时髦的事情,以至于 SIGTERM 没有进入芹菜?有关详细信息,请参阅 https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods。