gpt4 book ai didi

kubernetes - 使用 Kubernetes 有没有办法在更新之前等待 Pod 完成其正在进行的任务?

转载 作者:行者123 更新时间:2023-12-02 11:39:00 28 4
gpt4 key购买 nike

我在 kubernetes 中管理一个应用程序,
我有一个前端(nginx、flask)和一个后端( celery )
使用中间件 (rabbitmq) 将长时间运行的任务发送到后端

我的问题是我可以随时接收长时间运行的任务,我不希望它打扰我升级应用程序版本的计划。

我正在使用命令 kubectl apply -f $MY_FILE部署/更新我的应用程序。但是如果我在 celery po 忙碌时这样做,pod 将被终止,我将失去任务。

我尝试使用就绪探针,但 Pod 仍在终止。
我的问题是,有没有办法让 kube 只定位“免费”的 pod,然后等待忙碌结束?

谢谢

最佳答案

您可以使用 preStop hooks 在 pod 终止之前完成正在进行的任务。

Kubernetes 在容器终止之前立即发送 preStop 事件。 Kubernetes 对 Container 的管理会阻塞直到 preStop 处理程序完成,除非 Pod 的宽限期到期。有关更多详细信息,请参阅 Termination of Pods .

https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/#define-poststart-and-prestop-handlers

关于kubernetes - 使用 Kubernetes 有没有办法在更新之前等待 Pod 完成其正在进行的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61074948/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com