如何正确更改节点代理的TCP保持活动时间?
我在Google Container Engine中运行Kubernetes并设置了一个由HTTP(S)Google Load Balancer支持的入口 . 当我不断向入口发出POST请求时,我每80秒左右就会收到一次502错误 . Cloud Logging中出现 backend_connection_closed_before_data_sent_to_client
错误,这是因为GLB 's tcp keepalive (600 seconds) is larger than node-proxy' s keepalive(不知道它是什么) .
记录的错误详见https://cloud.google.com/compute/docs/load-balancing/http/ .
谢谢!
1 回答
只是为了理解,当您使用Google解决方案来负载 balancer 和管理您的Kubernetes Ingress时,您将在
kube-system
命名空间中运行GLBC
pod .你可以看看:
kubectl -n kube-system get po
这些pod旨在路由来自实际Google负载均衡器的传入流量 .
我认为应该在那里配置超时,在
GLBC
. 您应该检查可以配置哪些注释或ConfigMapGLBC
(如果有) .你可以在那里找到细节:
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/cluster-loadbalancing/glbc
https://github.com/kubernetes/ingress/blob/master/controllers/gce/README.md
https://github.com/kubernetes/ingress/blob/master/controllers/gce/rc.yaml#L64
就个人而言,我现在更喜欢使用Nginx Ingress Controller,它必须支持
annotations
和ConfigMap
.见: