至于现在Network Loadbalancer不支持IPv6。请注意,这是目前GCP上唯一可用的直通负载平衡器。将其与Google Cloud 负载平衡器摘要表进行比较。
只有HTTP/HTTPS 负载平衡器和TCP 代理/SSL 代理等代理负载平衡器才支持IPv6(与HTTP(S)、SSL 代理和 TCP 代理负载平衡的 IPv6 终止相比)
正如您在文档中所读到的:
由于负载均衡器是直通式负载均衡器,您的后端会自行终止负载均衡的 TCP 连接或 UDP 数据包。
您可能已经知道(您可以在此处阅读)暂时GCP VPC和GCE 实例仅支持IPv4 连接:
VPC 网络仅支持 IPv4
单播流量。它们不
支持
网络内的广播、
多播或 IPv6 流量
;VPC 网络中的虚拟机只能发送到 IPv4 目标,并且只能接收来自 IPv4 源的流量。但是,可以为全局负载均衡器创建 IPv6 地址。
正如您已经提到的TCP 代理和SSL 代理 不支持任意目标端口。仅支持此处列出的知名端口。任意端口只能与外部网络 TCP/UDP负载均衡器一起使用,但由于缺乏对IPv6的支持,您无法使用它。
至于您的特定用例,结论是目前无法按照您想要的方式完成。
您的后端真的必须暴露在这个非标准端口上吗?- 我认为您有充分的理由使用它,因此很可能将其更改为某些知名端口甚至不是一种选择。
问题是这不是 HTTP 服务。- 如果它是http服务但只暴露在某个任意端口上,那么你可以使用ingress。如果是这种情况,您只需创建一个入口,将请求转发到您的后端之一,Services如本例所示。入口后端确实可以使用任意端口,但不能使用任意协议——这就是重点。底层应用层协议必须是http。因此,如果您的服务使用一些完全不同的协议,您可能会立即忘记入口。
你实际上自己回答了你的问题。我看到您已经阅读了文档并非常彻底地分析了所有可用的解决方案,排除了那些不符合您要求的解决方案。嗯……我只能用这个总结来确认。我希望它会有所帮助,即使它没有提供您正在寻找的解决方案。