Kubernetes中的Socket IO一直断开连接



我想在Kubernetes中启动一个集群Socket IO应用程序。当我创建一个服务(无论是NodePort还是LoadBalancer)时,客户端应用程序一直断开连接,并使用以下日志重新连接:

undefined
oah4g28zZCw36g1MAAAm
undefined
undefined
oac4g28zZCw36g1MFAAAx
undefined

这发生得很快

但是,当我直接连接到单个Pod时,问题就消失了,连接变得稳定。

我如何创建服务是通过以下命令:

kubectl expose deployment xxx --type=LoadBalancer --port=80 --target-port=3000

我知道服务中缺少KeepAlive或Timeout配置,但我如何添加这些或更好地说正确配置Socket IO服务?

您可以使用sessionAffinity: ClientIP,它将从K8s服务管理会话。

kind: Service
apiVersion: v1
metadata:
name: example
spec:
selector:
app: example
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
sessionAffinity: ClientIP
sessionAffinityConfig:
clientIP:
timeoutSeconds: 1800

只是裁判:ws websocket服务器库需要粘会话时使用负载均衡器后面吗?

最新更新