问题描述
我目前通过Google Game Servers(https://cloud.google.com/game-servers)托管游戏服务。这基本上是在GKE中运行agones。除涉及iPv6以外,这在大多数情况下都非常有效。
我正在努力寻找有关如何使这种设置与iPv6兼容的建议。似乎应该是答案https://cloud.google.com/load-balancing/docs/ipv6,但是agones已设置为在端口范围内运行服务器,因为它会旋转并关闭服务器,并且似乎我需要具有特定的端口和与特定端口的非持久连接机器来使用Google负载均衡器解决方案。
作为参考,这是一个依靠socket.io通信的NodeJS后端。
任何建议将不胜感激。
解决方法
如评论中所述 Google Cloud VPC 不支持 IPv6 连接:
Google Cloud VPC不支持IPv6。一些面向公众的服务 例如HTTPS负载平衡器确实支持IPv6,但这无济于事 为您提供内部服务。 –约翰·汉利9月29日12:23
如果您的堆栈需要 IPv6 连接,那么很遗憾,您暂时无法将其部署在 Google Kubernetes Engine 上与 GCP 上的任何其他 Compute 资源一样,并使用相同的 VPC网络。
您可以在官方VPC specifications中阅读:
VPC网络仅支持IPv4 unicast流量。他们不 支持 broadcast, multicast或IPv6流量 在网络内 ; VPC网络中的VM只能发送到IPv4目标,并且只能从IPv4源接收流量。但是, 可以为global load balancer创建IPv6地址。
关于 Global Loadbalancer (支持IPv6 ),here是您需要的所有信息:
Google Cloud支持HTTP(S) Load Balancing,SSL Proxy Load Balancing和 TCP Proxy Load Balancing。负载 平衡器接受来自用户的IPv6连接,然后接受代理 这些与您的后端的连接。
您可以为以下地址配置IPv4和IPv6外部地址: 以下:
- 外部HTTP(S)负载均衡器
- SSL代理负载平衡器
- TCP代理负载平衡器
它们各自支持的协议和端口范围在其各自的规范中列出(所有链接都在上面)。
这不会影响SSL代理负载平衡器。外部转发 SSL负载平衡器定义中使用的规则可以 仅参考TCP端口25、43、110、143、195、443、465、587、700, 993,995,1883,3389,5222,5432,5671,5672,5900,5901,6379,8085, 8099、9092、9200和9300。具有不同TCP目标的流量 端口未转发到负载均衡器的后端。
TCP代理负载平衡专门用于特定TCP流量 众所周知的端口,例如用于简单邮件传输协议的端口25 (SMTP)。有关更多信息,请参见Port specifications。 对于在这些相同端口上加密的客户端流量,请使用SSL Proxy Load Balancing。
一个警告:
注意:TCP代理负载平衡不支持TCP端口80或8080。对于HTTP通信,请使用HTTP(S) Load Balancing。
对于External HTTP(S) Load Balancing,它的名字不言而喻。
因此,如果您需要使用您提到的任意端口范围,答案是:不,很遗憾,您无法使用Google Cloud Load Balancing解决方案做到这一点