通过 Google Cloud HTTP 负载均衡器将多个 URL 映射到 CoreOS 上的 Docker 容器

通过 Google Cloud HTTP 负载均衡器将多个 URL 映射到 CoreOS 上的 Docker 容器

由于 CoreOS 是为运行 Docker 容器而设计的,我想知道是否有办法将 HTTP 负载均衡器上的后端服务直接映射到在单个 CoreOS 实例上运行的 Docker 映像。

这是我想要的结构:

www.example.com/marketing -> docker:marketing-app
www.example.com/accounts -> docker:accounts-app
www.example.com/ -> docker:www-app
...

我知道这可以用Kubernetes 使用 Ingress- HTTP 负载均衡器将把每个 Docker 容器视为后端服务,这最终是我在生产中使用的;对于我的测试/qa/演示设置,我正在寻找更简单的东西,一个大型的 CoreOS 实例,运行多个 Docker 容器,并让完全相同的 HTTP 负载均衡器(稍后将在生产中使用)指向 CoreOS 实例上的 Docker 容器。

CoreOS 有这样的功能吗?

如果没有,除了启动 NGINX 容器将所有流量从 HTTP 负载均衡器路由到不同的容器之外,我还有什么其他选择?

答案1

在 GCP L7 LB 中,您可以:

LB 前端 >> LB 后端 >> 实例组 >> 实例 >> 端口

因此,所有艰苦的工作都发生在负载均衡器上。

获得你想要的东西的步骤如下:

  1. 确保每个容器在主机(CoreOS)上都有自己的公开端口,并且可以通过这些端口访问您想要公开的服务。

  2. 创建一个防火墙规则,允许来自 130.211.0.0/22 和 35.191.0.0/16 的流量到达您的 CoreOS 主机。- 这是为了允许从负载均衡器到您的容器的流量。

  3. 确保 CoreOS 主机属于实例组。

  4. 继续配置您的 LB 后端(编辑 LB 配置)。为在 CoreOS 实例上运行的每个容器添加一个新的后端服务,并指定其端口。(在这里您可以将每个容器与不同的后端关联起来)

  5. 继续配置主机和路径规则,以根据需要将流量发送到后端。

  6. 配置您的前端(以及 IP 和可选的 SSL 证书)

  7. 用 5 分钟时间构建并测试您的内容。您已完成!

一旦你理解了它的工作原理,管理起来就很容易了。

https://cloud.google.com/compute/docs/load-balancing/http

相关内容