0

当我进行滚动更新时,我从哨兵那里得到异常说:

DatabaseError('server closed the connection unexpectedly. This probably means the server terminated abnormally before or while processing the request.',...)

我在每个 Pod 中运行了两个容器,我的app容器和一个cloudsql-proxy容器,该app容器用于与 Cloud SQL 进行通信。

有没有办法确保我的应用程序容器在 30 秒的宽限期内(terminationGracePeriodSeconds)首先关闭?

换句话说,我想耗尽连接并在cloudsql-proxy取出之前完成所有当前请求。

如果我可以指定app在 30 秒的宽限期内首先删除容器,然后再删除cloudsql-proxy.

4

1 回答 1

0

讨论建议在清单中设置“terminationGracePeriodSeconds”</a> 或“PreStop 挂钩”

另一个可行的想法是在不同的 pod 中运行两个容器,以允许对滚动更新进行精细控制。您可能还需要考虑在部署中使用Init Containers,以允许代理在您的应用程序容器之前准备好。

于 2018-02-11T21:51:56.683 回答