title: GKE Ingress dropping websocket connections when using https
body: <p>I have an Ingress (the default GKE one) which is handling all the SSL before my services. One of my services is a WebSocket service (python autobahn). When I am exposing the service using LoadBalancer and not passing throw the ingress, using ws:// everything us working good. When instead I am exposing it using NodePort and passing through the ingress I am constantly seeing connections that are dropping even when no client is connecting. Here are the autobahnlogs:</p>
  
  <pre><code>WARNING:autobahn.asyncio.websocket.WebSocketServerProtocol:dropping connection to peer tcp:10.156.0.58:36868 with abort=False: None
  </code></pre>
  
  <p>When I connect using a client with wss:// the connection is successful but 
  a disconnection happens every few seconds (could not get a consistent number).
  Although I do not think it is related I changed the timeout of the related backend service in GCE to 3600 sec and also tried to give it session affinity using both clientIP and cookie but none seems to stop the dropping connections.
  Here is my ingress definition:</p>
  
  <pre><code>apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    name: {{ .Values.ingressName }}-ingress
    annotations:
        kubernetes.io/ingress.global-static-ip-name: {{ .Values.staticIpName }}-static-ip
    labels:
      oriient-app: "rest-api"
      oriient-system: "IPS"
  spec:
    tls:
    - secretName: sslcerts
    rules:
    - host: {{ .Values.restApiHost }}
      http:
        paths:
        - backend:
            serviceName: rest-api-internal-service
            servicePort: 80
    - host: {{ .Values.dashboardHost }}
      http:
        paths:
        - backend:
            serviceName: dashboard-internal-service
            servicePort: 80
    - host: {{ .Values.monitorHost }}
      http:
        paths:
        - backend:
            serviceName: monitor-internal-service
            servicePort: 80
    - host: {{ .Values.ipsHost }}
      http:
        paths:
        - backend:
            serviceName: server-internal-ws-service
            servicePort: 80
  </code></pre>
  
  <p>The ws service is the "server-internal-ws-service".
  Any suggestions?</p>