5 分钟后出现 104 连接重置错误

Getting 104 Connection reset error after 5 minutes

我在 GKE 上有一个集群和我的一个部署 运行 tornado web 应用程序来接收 http 请求。 此部署由 LoadBalancer 公开。 我向 LoadBalancer ip 发送一个简单的 http 请求,它必须在服务器端 运行 约 10 分钟。 恰好 5 分钟后,我得到:

requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

我试过了:

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: my-bsc-backendconfig
spec:
  timeoutSec: 3600

我的负载均衡器配置如下:

apiVersion: v1
kind: Service
metadata:
  annotations:
    cloud.google.com/backend-config: '{"ports": {"5000":"my-bsc-backendconfig"}'
  creationTimestamp: "2020-12-24T10:08:54Z"
  finalizers:
  - service.kubernetes.io/load-balancer-cleanup
  labels:
    name: wesnapp-flask
  name: wesnapp-flask-service
  namespace: default
  resourceVersion: "14652233"
  selfLink: /api/v1/namespaces/default/services/wesnapp-flask-service
  uid: a922e9cb-4702-481f-b1a9-e09df1653ff7
spec:
  clusterIP: 10.64.9.113
  externalTrafficPolicy: Cluster
  ports:
  - nodePort: 31429
    port: 5000
    protocol: TCP
    targetPort: 5000
  selector:
    name: wesnapp-flask
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: x.x.x.x

有什么解决这个问题的想法吗? 谢谢

你的假设是正确的。 GCE LoadBalancer 终止连接。
this Google document 中所述,有一个 Stream idle timeout 配置为 300 秒(5 分钟)且无法更改。 HTTP 流在没有 activity.

的情况下 5 分钟后变为空闲