![使用哪种 GCP 产品来运行 Docker 容器,将一系列 UDP 端口暴露给公共互联网](https://linux22.com/image/757719/%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%20GCP%20%E4%BA%A7%E5%93%81%E6%9D%A5%E8%BF%90%E8%A1%8C%20Docker%20%E5%AE%B9%E5%99%A8%EF%BC%8C%E5%B0%86%E4%B8%80%E7%B3%BB%E5%88%97%20UDP%20%E7%AB%AF%E5%8F%A3%E6%9A%B4%E9%9C%B2%E7%BB%99%E5%85%AC%E5%85%B1%E4%BA%92%E8%81%94%E7%BD%91.png)
我不知道该使用哪种 GCP 产品才能运行 Docker 容器,例如“docker run -p 5001-5110:5001-5110/udp hunter_ctrl_standalone:latest -s foo”。容器将使用约 2 GB 的 RAM、1 个 CPU。无需负载平衡。
Cloud Run 似乎仅适用于 HTTP(s) 工作负载。GKE 似乎也更适合 HTTP(s) 工作负载。使用容器优化操作系统 (COS) 的 Compute Engine 上的容器似乎确实可以解决问题,但另一方面,根据https://cloud.google.com/compute/docs/containers/deploying-containers#limitations无法通过 API(仅限控制台和 gloud)自动操作容器。
我是否错过了某种可能性? 有没有关于 GCP 运行时环境及其优缺点的良好概述?
答案1
我看到您正在尝试收集有关不同 GCP 产品以及在何处运行部署的一些信息以及它们的优点。
我在 StackOverflow 上找到了这个问答 [1],我想你可能会感兴趣。
答案2
应用引擎听起来不错。您可以在 app.yaml 文件中设置转发端口:
转发端口: 可选。您可以将端口从实例 (HOST_PORT) 转发到 Docker 容器 (CONTAINER_PORT)。如果您仅指定 PORT,则 App Engine 会假定它是主机和容器上的相同端口。默认情况下,TCP 和 UDP 流量都会被转发。流量必须直接发送到目标实例的 IP 地址,而不是通过 appspot.com 域或您的自定义域。
转发端口允许直接连接到实例上的 Docker 容器。此流量可以通过任何协议传输。[https://cloud.google.com/appengine/docs/flexible/custom-runtimes/configuring-your-app-with-app-yaml#port_forwarding][1]
虽然使用带有容器优化操作系统的虚拟机听起来也不错,但 AppEngine 是平台即服务,需要做的事情更少