如何在Kubernetes中为Postgres做系统轮询调用POLLRDHUP来做`client_connection_check_interval`?

pwuypxnk  于 5个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(44)

我在Kubernetes上运行Percona Postgres Operator的Postgres 15,不幸的是,有一个不可配置的负载均衡器,它会在180秒后关闭空闲连接。
我已经用client_connection_check_interval配置了Postgres,但是在我运行psql的客户端上的tcpdump显示没有来自Postgres检查的数据包。
连接方式为psql-> internet -> provider managed LB -> Traefik ingress -> Postgres。此测试中不涉及Pgbouncer
我本来希望Postgres发送一些高级的应用检查消息,但文档说它依赖于非标准的Linux扩展POLLHUPPOLLRDHUP

  • 我还尝试在psql和Postgres上使用参数tcp_keepalives...,但似乎也不起作用,可能是因为LB和Traefik涉及所有的TCP复制 *
lsmd5eda

lsmd5eda1#

即使在Postgres中使用tcp_keepalives_idle设置也是为了定期向客户端发送keepalve数据包。它可能无法有效显示来自空闲连接的数据包。您可以考虑使用pgbouncer的LB。

相关问题