【发布时间】:2020-08-22 14:06:33
【问题描述】:
我在我的 hsproxy.cfg 中为我的后端服务器使用 dns 名称,例如
backend s0
server server0 server0.x.y.local:8080
backend s1
server server1 server1.x.y.local:8080
名称解析在启动后工作正常。但是一旦后端服务器的 ipaaddress 发生变化,对 haproxy 的请求需要很长时间(比如 25 秒),然后以 503 响应(原因:SC)。它不会更新或重新解析 dns 名称。但是那台机器上的curl 工作正常,因此操作系统会正确更新这些 dns 条目的 IP 地址。所以看起来 haproxy 在启动时缓存了 ip 地址并且从不更改它们。
我正在使用 haproxy 作为 Kubernetes 集群内的 pod(不确定这是否重要)。
根据我在官方文档中阅读的内容,libc 选项应该使用操作系统解析吗?我试过输入init-addr libc,但没有帮助,haproxy 仍然会在机器上永远响应长时间运行的 503,dns 完美解析。
我还看到,使用resolver 条目时可以进行一些微调,您可以在其中配置刷新时间等。这是否可能在 haproxy.cfg 中没有硬编码名称服务器而只使用操作系统中的名称服务器?
【问题讨论】:
标签: kubernetes dns haproxy