如何在IPv6(GKE)上公开TCP服务

问题描述 投票:0回答:1

我正在尝试在公共IPv6地址上公开kubernetes TCP服务。应用程序在IPv4上运行良好,但无法在IPv6上进行配置。问题是这不是HTTP服务。当前服务由以下类型完成:非标准端口11042上的LoadBalancer。因此,我认为它会创建网络负载平衡器。

遵循支持IPv6的文档转发规则是目标HTTP代理目标HTTPS代理,目标SSL代理,目标TCP代理,但TCP代理关闭了可以使用的端口列表。我也在尝试使用Ingress,但在Google上它似乎仅支持HTTP / S。还有其他方法可以在公共IPv6上公开TCP服务吗?

谢谢

google-cloud-platform google-kubernetes-engine kubernetes-ingress
1个回答
0
投票

目前,Network Loadbalancer不支持IPv6。请注意,这是GCP当前唯一可用的pass-through负载均衡器。与Summary of Google Cloud load balancers表进行比较。

代理负载平衡器,例如HTTP / HTTPS负载平衡器TCP代理/ SSL代理确实支持IPv6(与IPv6 termination for HTTP(S), SSL Proxy, and TCP Proxy Load Balancing比较)

您可以在docs中读取:

由于负载均衡器是直通负载均衡器,后端终止负载平衡的TCP连接或UDP数据包自己。

您可能已经知道(并且可以阅读here,目前为止GCP VPCGCE实例仅支持IPv4连接

VPC网络仅支持IPv4unicast流量。他们会不是支持broadcastmulticast或IPv6流量内部网络; VPC网络中的VM只能发送到IPv4目标,并且只能从IPv4源接收流量。但是,可以为global load balancer创建IPv6地址。

您已经提到过TCP代理SSL代理 不支持任意目标端口。仅支持列出的here已知端口。任意端口只能与External Network TCP / UDP负载平衡器一起使用,但是由于缺乏对IPv6的支持,因此您不能使用它。

关于您的特定用例,结论是目前无法按照您想要的方式进行。

您的后端真的必须暴露在此非标准端口上吗? -我认为您有充分的理由使用它,因此很可能甚至无法更改某些知名端口。

问题是这不是HTTP服务。-如果它是http服务,但仅在某些任意端口上公开,则可以使用ingress。如果是这种情况,您只需创建一个ingress即可将请求转发到您的后端Services之一,如this示例中所示。入口后端确实可以使用任意端口,但是不是任意协议-就是重点。基础应用层协议必须为http。因此,如果您的服务使用某些完全不同的协议,您可能会立刻忘记ingress

您实际上亲自回答了您的问题。我看到您浏览了文档并已经相当彻底地分析了所有可用的解决方案,排除了不满足您要求的解决方案。好吧...我只能用这个总结来确认。我希望它即使没有提供您正在寻找的解决方案也能有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.