有没有人在 GKE、Google 游戏服务器或 Agones 中为 iPv6 找到一个好的解决方案?

Has anyone identified a good solution for iPv6 in GKE, Google Game Servers, or Agones?

我目前正在使用 Google 游戏服务器 (https://cloud.google.com/game-servers) 托管游戏服务。这基本上是 GKE 中的 运行ning Agones。除了 iPv6 之外,这在大多数情况下都很好用。

我正在努力寻找任何关于如何让这种设置与 iPv6 兼容的建议。看起来这应该是答案 https://cloud.google.com/load-balancing/docs/ipv6 但 Agones 设置为跨端口范围的 运行 服务器,因为它旋转并关闭服务器,看来我需要一个特定的端口和非持久性连接到特定机器以使用 googles 负载平衡器解决方案。

供参考,这是一个依赖 socket.io 通信的 NodeJS 后端。

如有任何建议,我们将不胜感激。

如评论中所述Google 云 VPC 不支持 IPv6 连接:

Google Cloud VPCs do not support IPv6. A few public facing services such as HTTPS Load Balancers do support IPv6 but that will not help you with internal services. – John Hanley Sep 29 at 12:23

如果您的堆栈需要 IPv6 连接,很遗憾,您将无法在 Google Kubernetes Engine 上部署它目前,它与 GCP 上的任何其他 Compute 资源遵循相同的规则,并使用相同的 VPC 网络.

正如你在官方中看到的那样VPC specifications:

VPC networks only support IPv4 unicast traffic. They do not support broadcast, multicast, or IPv6 traffic within the network; VMs in the VPC network can only send to IPv4 destinations and only receive traffic from IPv4 sources. However, it is possible to create an IPv6 address for a global load balancer.

至于全局负载均衡器支持IPv6here是您需要的所有信息:

Google Cloud supports IPv6 clients with HTTP(S) Load Balancing, SSL Proxy Load Balancing, and TCP Proxy Load Balancing. The load balancer accepts IPv6 connections from your users, and then proxies those connections to your backends.

You can configure both IPv4 and IPv6 external addresses for the following:

  • external HTTP(S) load balancers
  • SSL proxy load balancers
  • TCP proxy load balancers

它们各自支持的协议和端口范围列在各自的规范中(上面提供所有链接)。

SSL Proxy Load Balancing:

This does not affect SSL proxy load balancers. External forwarding rules, which are used in the definition of an SSL load balancer, can only reference TCP ports 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 3389, 5222, 5432, 5671, 5672, 5900, 5901, 6379, 8085, 8099, 9092, 9200, and 9300. Traffic with a different TCP destination port is not forwarded to the load balancer's backend.

TCP Proxy Load Balancing:

TCP Proxy Load Balancing is intended for TCP traffic on specific well-known ports, such as port 25 for Simple Mail Transfer Protocol (SMTP). For more information, see Port specifications. For client traffic that is encrypted on these same ports, use SSL Proxy Load Balancing.

有一个警告:

Note: TCP Proxy Load Balancing doesn't support TCP ports 80 or 8080. For HTTP traffic, use HTTP(S) Load Balancing.

说到 External HTTP(S) Load Balancing,它的名字不言而喻。

因此,如果您更愿意使用您提到的一些任意端口范围,答案是:不,不幸的是,您不能使用 Google 云负载平衡解决方案