![]() |
1
0
对于未来的流浪者。。。。
虽然
事情是这样的。。。 客户端浏览器-wss->GKE LB(SSL终止)-ws->站点API(nodejs)-WSS&授权->kube api server exec api 所以回答我自己的问题 ,根据我的测试,GKE-kubernetes只支持头中的授权,因此如果你想通过浏览器连接到它,就需要反向代理。每 this code ,一些Kubernetes设置允许在查询字符串中使用令牌,但我在GKE中没有任何成功。如果您使用的是不同的群集主机,请使用YMMY。我欢迎kubernetes团队对我的观察结果发表评论。 如果你来这里只是为了授权问题,你可以停止进一步阅读。 然而,还有更多的挑战需要克服,有好消息也有坏消息。。。首先是好消息: GKE Loadbalancer自动处理SSL终止 even for WebSockets ,因此您可以代理到WS或WSS,而不会出现任何问题。 然后是坏消息: GKE Loadbalancer force在30秒内终止所有连接,即使它们正在使用!有一些变通办法,但它们都不是 don't stay put ,要求您 deploy your own controller ,或者您需要使用 Ingress . 对于终端会话来说,这意味着Chrome将用1006代码关闭客户端,即使此时正在运行命令。 对于某些WS场景,可以在1006关闭时简单地重新连接,但对于终端会话,这是一个交易破坏者,因为您无法重新连接到以前的终端实例,必须从一个新的终端实例开始。 目前,我们已经求助于增加GKE负载平衡器的超时。但最终我们计划部署我们自己的负载平衡器,它可以更好地处理这个问题。Ingress有 some issues 我们现在不想与之生活在一起。 |
![]() |
young · 插座io错误格式错误的箭头函数参数列表[关闭] 3 年前 |
![]() |
June Leow · 跨选项卡使用Web套接字的实时通知栏 3 年前 |
![]() |
garson · 打开Websocket(“消息”)不工作 7 年前 |
![]() |
TomáÅ¡ Zato · 无法连接到套接字io服务器 7 年前 |