如何在 Google Kubernetes Engine 中设置 websocket

How to setup a websocket in Google Kubernetes Engine

如何启用 Google Kubernetes Engine 上的端口以接受 websocket 连接?除了使用入口控制器之外,还有其他方法吗?

根据 GCP 文档中的 this article,您可以通过 4 种方式向外部应用程序公开服务。

它可以通过 ClusterIP、NodePort, a (TCP/UDP) Load Balancer 或外部名称公开。

Google 的全局负载均衡器支持 Web 套接字,因此您可以使用 LoadBalancer 类型的 k8s Service 在集群之外公开此类服务。

请注意,以这种方式在Kubernetes之外创建和管理的负载均衡器将默认连接持续时间为30秒,这会干扰web socket操作并导致连接频繁关闭。这对于有效使用web sockets几乎没有用。

this issue 解决之前,您将需要手动修改此超时参数,或者(推荐)考虑使用集群内入口控制器(例如 nginx),它可以为您提供更多控制权。