0

我们v1.9.5在裸机上使用 Kubernetes,使用kubespray网络驱动程序 -部署flannel

当从 pod 向另一个服务发出 HTTP 请求时,如果该服务没有端点,请求会挂起正好 130 秒(我通过NodeJSnet library 和 via签入curl)。

这个值是从哪里来的?

我们在编写尝试建立与服务的连接的重试时注意到。

任何帮助表示赞赏。

4

1 回答 1

1

看起来 iptables 将丢弃数据包,如果它的目的地是不存在的端点,并且 DROP 永远不会向请求者发送消息(DROP/REJECT)。这将导致请求者退休。重试次数取决于参数net.ipv4.tcp_syn_retries,在 CentOS-7 中默认为 6

当我net.ipv4.tcp_syn_retries=1在请求者 pod 运行的 minion 中设置时,超时发生在 3 秒内,而不是 2m 7.23s

我希望这可以澄清如果请求是针对不存在的端点的,那么为什么 curl 或任何端口连接请求会长时间挂起。

于 2018-08-31T18:21:24.217 回答