在进行滚动更新Kubernetes时,Postgres连接被拒绝(通过CloudSQL代理)

时间:2018-02-08 08:10:20

标签: kubernetes google-cloud-platform google-cloud-sql cloud-sql-proxy

当我进行滚动更新时,我得到Sentry的例外说法:

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之前完成所有当前请求。

如果我可以指定在宽限期30秒内首先取消app容器,然后cloudsql-proxy,那将是理想的。

1 个答案:

答案 0 :(得分:0)

discussion建议在清单中设置“terminationGracePeriodSeconds”"PreStop hook"

另一个可行的想法是在不同的pod中运行两个容器,以便对rolling update进行精细控制。您可能还需要考虑在部署中使用Init Containers,以允许代理在应用容器之前就绪。