K8s集群Nginx Ingress Controller频繁调用API是否正常?
关于Nginx Ingress Controller每秒约10次自动检查请求的疑问
我在K8s集群部署了Nginx Ingress Controller后,发现它每秒会自动发起约10次GET /的检查请求,想确认这是否属于正常行为。相关日志如下:
10.224.0.113 - - [09/Feb/2024:01:41:49 +0000] "GET / HTTP/2.0" 200 629 "-" "Load Balancer Agent" 100 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 f89290e23c48fe9e4f782c530e3b6b07 10.224.1.75 - - [09/Feb/2024:01:41:49 +0000] "GET / HTTP/1.1" 200 629 "-" "Load Balancer Agent" 187 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 232d6a6f705d271e4e4c6cf43a8873a5 10.224.0.222 - - [09/Feb/2024:01:41:52 +0000] "GET / HTTP/1.1" 200 629 "-" "Load Balancer Agent" 189 0.001 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.001 200 5cc36a43c4925e0014a6f4ed9c8e04f9 10.224.1.75 - - [09/Feb/2024:01:41:53 +0000] "GET / HTTP/2.0" 200 629 "-" "Load Balancer Agent" 98 0.001 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.001 200 b8ad122b968a575aad66e453b85f69de 10.224.0.222 - - [09/Feb/2024:01:41:53 +0000] "GET / HTTP/2.0" 200 629 "-" "Load Balancer Agent" 100 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 8669e672c2b71c010ba5d9343f136e73 10.224.0.4 - - [09/Feb/2024:01:41:53 +0000] "GET / HTTP/1.1" 200 629 "-" "Load Balancer Agent" 185 0.001 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.001 200 dbb5928e9eb9da559503feb4e6ba20d8 10.224.0.113 - - [09/Feb/2024:01:41:53 +0000] "GET / HTTP/1.1" 200 629 "-" "Load Balancer Agent" 189 0.001 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.001 200 25112b68d1de0dee50a7a37c1ac30f7a 10.224.0.4 - - [09/Feb/2024:01:41:54 +0000] "GET / HTTP/2.0" 200 629 "-" "Load Balancer Agent" 98 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 c60b5d6b5263bc266dc642f9258a6638 10.224.0.113 - - [09/Feb/2024:01:41:55 +0000] "GET / HTTP/2.0" 200 629 "-" "Load Balancer Agent" 100 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 c423d9d9f6077bea9d34f601ab160173 10.224.1.75 - - [09/Feb/2024:01:41:55 +0000] "GET / HTTP/1.1" 200 629 "-" "Load Balancer Agent" 187 0.001 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.001 200 ee199738f3142f14bac576d2efe72dd4 10.224.0.222 - - [09/Feb/2024:01:41:58 +0000] "GET / HTTP/1.1" 200 629 "-" "Load Balancer Agent" 189 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 113eb7419c0baafcd8dac36a80355a42 10.224.1.75 - - [09/Feb/2024:01:41:59 +0000] "GET / HTTP/2.0" 200 629 "-" "Load Balancer Agent" 98 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 e38cf253be8e87003e0b695b3d74f147 10.224.0.222 - - [09/Feb/2024:01:41:59 +0000] "GET / HTTP/2.0" 200 629 "-" "Load Balancer Agent" 100 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 6145db51affc51a38a29aa851cd141f0 10.224.0.4 - - [09/Feb/2024:01:41:59 +0000] "GET / HTTP/1.1" 200 629 "-" "Load Balancer Agent" 185 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 e87a409cc537817f81d183d875caa971 10.224.0.113 - - [09/Feb/2024:01:41:59 +0000] "GET / HTTP/1.1" 200 629 "-" "Load Balancer Agent" 189 0.001 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.001 200 6d6423689ff5164f4fe270fc36a41eb6 10.224.0.4 - - [09/Feb/2024:01:42:00 +0000] "GET / HTTP/2.0" 200 629 "-" "Load Balancer Agent" 98 0.002 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.002 200 03002fef8401eeeba3066816880026ef 10.224.0.113 - - [09/Feb/2024:01:42:01 +0000] "GET / HTTP/2.0" 200 629 "-" "Load Balancer Agent" 100 0.001 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.001 200 569b3bf0db5b7941a022bedf5518e034 10.224.1.75 - - [09/Feb/2024:01:42:01 +0000] "GET / HTTP/1.1" 200 629 "-" "Load Balancer Agent" 187 0.001 [fg-local-aks-helloworld-one-80] [] 10.224.1.52:80 629 0.001 200 5e807ef841f507ddfeb3ae112291d7dc
解答
这是正常行为,核心原因如下:
- 这些请求并非Nginx Ingress Controller自身发起,而是来自云厂商的负载均衡器健康探测(日志中的
Load Balancer Agent标识可以确认这一点)。从日志里的fg-local-aks-helloworld-one能看出你使用的是Azure AKS集群,AKS的负载均衡器会定期对后端Ingress Pod所在节点发起健康检查,确保流量可以正常转发到服务。 - 每秒约10次的请求量是多个探测源IP叠加的结果。AKS负载均衡器通常会有多个探测节点,每个节点按固定间隔(一般1-3秒)发起一次探测,多个节点的请求叠加后就会形成每秒多次的请求频率。
如果觉得探测频率过高,你可以通过调整Ingress Service的healthCheckNodePort对应的健康检查参数(比如探测间隔、超时时间)来修改,但默认配置下的频率是云厂商保障服务高可用的标准设置,不会对业务造成显著性能影响。
内容的提问来源于stack exchange,提问作者Ken Nguyen
相关产品推荐
相关产品推荐

