Python Celery自动缩放Kubernetes



我目前正在使用AWS EBS,但正在切换到Kubernetes来管理我们的芹菜工人池。根据Celery文档,当您想要停止芹菜工人时,可以向工人发送两种类型的信号。一个是TERM,另一个是KILL。使用TERM时,它会等待工作程序完成当前正在执行的操作,然后再停止。当KILL用于立即停止它时,这会导致任务丢失。我的问题是,当Kubernetes在缩减工人池时自动缩放时,我如何确保TERM发送给工人而不是KILL?我在AWS EBS中遇到了这种缩减问题,Celery flower在缩减时显示出任务丢失。

这里的事件链是:

  1. HorizontalPodAutoscaler降低其控制的部署上的replicas:
  2. Deployment会减少其相应ReplicaSet上的replicas:
  3. ReplicaSet会根据需要删除Pod
  4. Kubernetes发送每个容器SIGTERM并等待它关闭
  5. 如果容器还没有退出,它会向每个容器发送SIGKILL

吊舱的终止中特别描述了停机顺序。您的进程将得到SIGTERM,如果它还没有退出,30秒后会得到SIGKILL。HPA删除pod与任何其他路径相比都没有什么特别之处。

相关内容

  • 没有找到相关文章

最新更新