google-cloud-platform - 有没有人在 GKE、Google Game Servers 或 Agones 中为 iPv6 找到了一个好的解决方案?
问题描述
我目前正在使用 Google 游戏服务器 ( https://cloud.google.com/game-servers ) 托管游戏服务。这基本上是在 GKE 中运行 Agones。除了 iPv6 之外,这在大多数情况下都非常有效。
我正在努力寻找有关如何使这种设置与 iPv6 兼容的任何建议。似乎这应该是答案https://cloud.google.com/load-balancing/docs/ipv6但 Agones 设置为在端口范围内运行服务器,因为它启动并关闭服务器,似乎我需要具有特定端口和与特定机器的非持久连接以使用谷歌负载均衡器解决方案。
作为参考,这是一个依赖于 socket.io 通信的 NodeJS 后端。
任何建议,将不胜感激。
解决方案
正如评论中已经指出的那样,谷歌云 VPC不支持IPv6连接:
Google Cloud VPC 不支持 IPv6。一些面向公众的服务(例如 HTTPS 负载均衡器)确实支持 IPv6,但这对您的内部服务没有帮助。——约翰·汉利 9 月 29 日 12:23
如果您的堆栈需要IPv6连接,很遗憾,您目前无法将其部署在Google Kubernetes Engine上,因为它与GCP上的任何其他计算资源遵循相同的规则并使用相同的VPC 网络。
正如您在官方VPC 规范中所读到的:
VPC 网络仅支持 IPv4 单播流量。它们不 支持 网络内的广播、 多播或 IPv6 流量 ;VPC 网络中的虚拟机只能发送到 IPv4 目标,并且只能接收来自 IPv4 源的流量。但是,可以为全局负载均衡器创建 IPv6 地址。
至于全局负载均衡器(支持 IPv6) ,这里有您需要的所有信息:
Google Cloud 通过HTTP(S) 负载平衡、 SSL 代理负载平衡和 TCP 代理负载平衡支持 IPv6 客户端 。负载均衡器接受来自您的用户的 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 流量,例如简单邮件传输协议 (SMTP) 的端口 25。有关详细信息,请参阅端口规范。对于在这些相同端口上加密的客户端流量,请使用SSL 代理负载平衡。
有一个警告:
注意: TCP 代理负载平衡不支持 TCP 端口 80 或 8080。对于 HTTP 流量,请使用 HTTP(S) 负载平衡。
当谈到外部 HTTP(S) 负载平衡时,它的名字不言而喻。
因此,如果您更愿意使用您提到的一些任意端口范围,答案是:不,不幸的是,您无法使用 Google Cloud Load Balancing 解决方案来做到这一点
推荐阅读
- r - 与任何 dplyr 过滤数据的逻辑比较
- php - 我可以将 phpize7.1 安装到 Ubuntu 15.10 吗?
- python - 使用 tensorflow 在海量数据集上训练神经网络很慢
- android - 如何在Android中设置视图下方的高程颜色?
- dialogflow-es - Dialogflow 获取预建日期实体的错误日期
- sql-server - 调用标识列而不从源插入任何数据
- typescript - 如何在打字稿中用单个元素扩展和填充数组?
- java - JSONObject 总是返回 "empty": false
- python-3.5 - 不能腌制
: pywintypes 上的属性查找日期时间失败 - websocket - WebSocket 的并发用户负载测试在 JMeter 中未正确执行