【发布时间】:2018-08-01 08:17:21
【问题描述】:
我有一个入口(默认的 GKE 入口),它在我的服务之前处理所有 SSL。我的服务之一是 WebSocket 服务(python 高速公路)。当我使用 LoadBalancer 公开服务而不传递入口时,使用 ws:// 一切工作正常。相反,当我使用 NodePort 公开它并通过入口时,即使没有客户端连接,我也经常看到连接正在下降。以下是高速公路日志:
WARNING:autobahn.asyncio.websocket.WebSocketServerProtocol:dropping connection to peer tcp:10.156.0.58:36868 with abort=False: None
当我使用带有 wss:// 的客户端连接时,连接成功,但 每隔几秒钟就会发生一次断开连接(无法获得一致的数字)。 虽然我不认为它是相关的,但我将 GCE 中相关后端服务的超时更改为 3600 秒,并尝试使用 clientIP 和 cookie 为其提供会话亲和性,但似乎没有一个可以阻止断开连接。 这是我的入口定义:
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
ws 服务是“server-internal-ws-service”。 有什么建议吗?
【问题讨论】:
标签: websocket google-compute-engine kubernetes-ingress google-kubernetes-engine