需要升级头盔图表而不删除已经运行的吊舱

时间:2019-03-29 19:20:13

标签: kubernetes celery kubernetes-helm

我有几位芹菜工人在minikube中运行,他们正在处理使用RabbitMQ传递的任务。最近,我为芹菜工人更新了一些代码,并更改了图像。当我执行var cardNumber = '4761640026883566'; console.log(maskCard(cardNumber)); function maskCard(num) { return `${'*'.repeat(num.length - 4)}${cardNumber.substr(num.length - 4)}`; } 时,将终止所有现有的工作单元,并且放弃所有未完成的任务。我想知道是否可以在不终止旧吊舱的情况下升级头盔图表?

  1. 我知道helm upgrade release_name chart_path会给我带来一组新的芹菜工人;但是,由于某些限制,我不允许在新版本中部署Pod。
  2. 我尝试运行helm install -n new_release_name chart_path是因为我认为使用新的部署名称将阻止舵机删除旧的pod,但这也不起作用。

1 个答案:

答案 0 :(得分:1)

这就是Kubernetes部署的工作方式。您应该做的是修复Celery worker映像,以便它在实际关闭之前等待尝试完成所有待处理的任务。除非您做过一些时髦的事情,例如SIGTERM不会使它出现在Celery上,否则应该已经是这样了。有关详细信息,请参见https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods