能否通过GKE Ingress创建Google Cloud内部TCP/UDP负载均衡器
结论
不能直接使用原生GKE Ingress资源配置内部TCP/UDP负载均衡器。
GKE默认的Ingress实现基于Google Cloud七层负载均衡器设计,原生仅支持HTTP/HTTPS协议的七层流量转发,不支持四层TCP/UDP透传场景,也无法直接生成内部TCP/UDP负载均衡资源。
替代实现方案
如果需要统一管理负载均衡资源,可以选择以下三种方案:
- 方案1:使用第三方Ingress控制器
部署Nginx Ingress Controller、HAProxy Ingress等第三方Ingress控制器,将控制器对应的Service类型设置为LoadBalancer,并添加GKE专属注解networking.gke.io/load-balancer-type: "Internal",GKE会自动创建内部TCP负载均衡器作为Ingress控制器的统一入口。后续所有服务的暴露规则都可以通过对应Ingress资源统一配置,也支持后端服务自行终止TLS流量。 - 方案2:使用GKE Gateway API
如果你的集群版本支持Gateway API,可以直接部署Gateway资源,GKE的Gateway API实现同时支持四层TCPRoute、UDPRoute和七层HTTPRoute的统一管理,可直接生成内部TCP/UDP负载均衡资源,能力覆盖范围比传统Ingress更广。 - 方案3:直接使用LoadBalancer类型Service
如果不需要Ingress的路由分发能力,仅需要暴露单个TCP/UDP服务,直接创建类型为LoadBalancer的Service,添加上述内部负载均衡注解,同时指定spec.ports.protocol为TCP或UDP即可,GKE会自动创建对应四层内部负载均衡资源,无需手动在云平台侧配置。
内容的提问来源于stack exchange,提问作者Sankar Narayanan
相关产品推荐
相关产品推荐

