当我进行滚动更新时,我会从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
容器用于通信到云SQL。
是否有一种方法可以确保我的应用程序容器在宽限期30秒(terminationGracePeriodSeconds(中首次下降?
换句话说,我想在取出cloudsql-proxy
之前耗尽所有当前请求。
如果我可以在30秒内首先删除app
容器,然后是cloudsql-proxy
。
本讨论建议在清单中设置" terminationgraceperiodseconds"或" Prestop Hook"。
可以使用的另一个想法是在不同的豆荚中运行两个容器,以允许对滚动更新进行颗粒状控制。您可能还需要考虑在部署中使用初始容器,以允许代理在应用程序容器之前准备就绪。