如何在Google Kubernetes Engine上启用端口以接受websocket连接?除了使用入口控制器之外,还有其他方法吗?
Google的全局负载均衡器支持Web套接字,因此您可以使用类型为 LoadBalancer 的k8s Service 来在群集之外公开此类服务 .
LoadBalancer
Service
请注意,以这种方式在Kubernetes外部创建和管理的负载 balancer 器将具有30秒的默认连接持续时间,这会干扰Web套接字操作并将导致连接频繁关闭 . 这对于有效使用的Web套接字几乎没用 .
在解决this issue之前,您需要手动修改此超时参数,或者(推荐)考虑使用集群内入口控制器(例如nginx),以便为您提供更多控制 .
根据GCP文档中的this article,您可以通过4种方式向外部应用程序公开服务 .
它可以使用ClusterIP,NodePort,(TCP/UDP) Load Balancer或外部名称公开 .
2 回答
Google的全局负载均衡器支持Web套接字,因此您可以使用类型为
LoadBalancer
的k8sService
来在群集之外公开此类服务 .请注意,以这种方式在Kubernetes外部创建和管理的负载 balancer 器将具有30秒的默认连接持续时间,这会干扰Web套接字操作并将导致连接频繁关闭 . 这对于有效使用的Web套接字几乎没用 .
在解决this issue之前,您需要手动修改此超时参数,或者(推荐)考虑使用集群内入口控制器(例如nginx),以便为您提供更多控制 .
根据GCP文档中的this article,您可以通过4种方式向外部应用程序公开服务 .
它可以使用ClusterIP,NodePort,(TCP/UDP) Load Balancer或外部名称公开 .