【问题标题】:Postgres connection refused (via CloudSQL proxy) when doing rolling update Kubernetes滚动更新 Kubernetes 时,Postgres 连接被拒绝(通过 CloudSQL 代理)
【发布时间】:2018-07-18 17:34:03
【问题描述】:

当我进行滚动更新时,我从 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,那将是理想的。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 2021-04-24
      • 2020-11-06
      • 2018-07-03
      • 2023-03-23
      • 2018-11-03
      相关资源
      最近更新 更多