【发布时间】:2018-12-13 22:28:39
【问题描述】:
我正在尝试将 socket.io 集成到部署在 Google Kubernetes Engine 上的应用程序中。在本地开发,一切都很好。但是一旦部署,当我的套接字尝试连接时,我会不断收到可怕的 400 响应。我已经在 SO 和其他网站上搜索了几天,但没有找到任何可以解决我的问题的方法。
不幸的是,这个架构是由一位不再在我们公司工作的开发人员建立的,而且我当然不是 Kubernetes 或 GKE 专家,所以我肯定不确定我是否已正确设置所有内容。
设置如下:
我们有 5 个应用程序 pod,它们为分布在 5 个云节点(GCE vm 实例)上的应用程序提供服务
我们正在使用 nginx 入口控制器 (https://github.com/kubernetes/ingress-nginx) 创建负载均衡器以在我们的节点之间分配流量
这是我迄今为止尝试过的:
- 向入口添加以下注释:
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-hash: "sha1"
nginx.ingress.kubernetes.io/session-cookie-name: "route"
- 在入口引用的后端服务中添加
sessionAffinity: ClientIP
这些措施似乎没有任何作用,我仍然收到 400 回复。如果有人处理过类似的情况或有任何建议可以为我指明正确的方向,我会非常非常感激!
【问题讨论】:
标签: nginx socket.io kubernetes google-kubernetes-engine