Kubernetes pod 识别他是否会被关闭

Kubernetes pod recognizes if he will be shut down

我有一个简单的 docker 容器,它从队列中获取作业。缩放脚本通过向复制控制器发送 api 请求来处理 pods 现在 运行 的数量。

问题是我不想在他现在正在工作时关闭 pod。如果我减少 pods 的数量,kubernetes 将删除最后创建的 pod。

所以我想知道是否可以告诉最后一个 pod,他将在几分钟后被关闭,所以他不应该找到一份新工作?一种解决方案是缩放脚本手动调用最后一个 pod。但是是否可以让每个 pod 都监听自己实例的关闭事件?

您可以指定一个宽限期pods来完成他们的工作。 Pods 在应该开始关闭时收到了 TERM 信号。你的 pods 可以听那个,完成他们当前的工作,而不是再做一个,而是退出。宽限期默认为 30 秒,但您可以通过 pod 规范中的 terminationGracePeriodSeconds 字段将其设置为足以让典型作业完成的时间。

详情见https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods