【发布时间】:2018-10-19 12:14:56
【问题描述】:
我有一个附加了 Service 和 HorizontalPodAutoscaler 的部署(A pod)。我希望能够控制缩减过程并在 pod 关闭之前进行一些清理。问题是,清理可能需要很长时间,并且要完成一些其他服务(B pod)应该能够访问试图关闭的 pod。
为了实现这一点,我将部署 A 设置为具有长 spec.terminationGracePeriodSeconds 值。当一个 pod 获得 SIGTERM 时,它开始完成并在完成后关闭进程。
从 pod A 获取 SIGTERM 开始,它不再接收来自 pod B 的连接,因为服务从端点删除了它的 IP - 使得 pod A 无法完成它的清理。
尝试使用 ClusterIP 和 Headless 服务,两者的作用相同。
如何让服务在获得 SIGTERM 后继续向 pod A 发送流量?我不介意 B pod 的请求在尝试访问 A pod 时出错。
【问题讨论】:
标签: kubernetes