在Google Cloud中负载平衡websocket连接

我遇到了一个问题,我无法使用Google技术完全解决问题.

我需要通过SSL提供> 500并行websocket连接.客户端理想地连接到wss://wss.mydomain.com并由实例提供服务.

选项1:我目前使用自定义运行时托管VM来部署运行启用SSL的websocket服务器的Dockerfile.
部署托管VM实例会生成一个GCE实例.
我使用Google Cloud DNS将wss.mydomain.com指向GCE实例的这一个IP地址.

问题:我无法连接到wss.mydomain.com(甚至不是my-mvm.appspot.com),因为websocket连接(通过SSL)不会转发到托管VM实例.提出了issue,但没有看到任何帮助我的回应.其他人也在here和here得出这个结论.

因此,如果托管虚拟机不是答案,我可以在Google云架构中的哪个位置找到它?

选项2:由于managedVM似乎是GCE的一个绝对涂层,也许我可以保留当前已经提供我的GCE实例的设置并自己添加负载平衡?

选项2a:HTTP(S)负载平衡不允许websocket流量,因此一个是out.

选项2b:网络负载平衡可行.我需要将实例分配给目标池才能工作.是否可以自动将新创建的托管VM实例分配给目标池,以便它们加入负载平衡?如果是这样,这将是问题的完整解决方案吗?

选项3:我想继续使用我的Dockerfile进行设置.所以我在看容器引擎.我根本没有经验.

在我涉足另一个雷区之前,哪个选项最有可能解决我的问题?也许还有另一个我没想过的选择.

最佳答案 选项2b也将被淘汰,因为托管VM流量仍然通过appspot.com前端,该前端不会将websocket流量转发到实例(如链接的其他问题中所述).

如果你想让它现在正常工作,我建议首先使用带有autoscaling的GCE实例和网络负载平衡.如果您希望获得与托管虚拟机相同级别的可伸缩性,那么您可能希望开始阅读Container Engine并部署您的应用程序Dockerized.

点赞