Load-Balancing

通過 Google Cloud HTTP 負載均衡器將多個 URL 映射到 CoreOS 上的 Docker 容器

  • February 28, 2018

鑑於 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
...

我知道這可以通過使用 Ingress 的 Kubernetes來完成- 每個 docker 容器都將被 HTTP 負載均衡器視為後端服務,這最終將用於生產;對於我的 test/qa/demo 設置,我正在尋找更簡單的東西,一個大型 CoreOS 實例,執行多個 docker 容器並具有完全相同的 HTTP 負載均衡器(稍後將在 prod 中使用)指向 docker 容器CoreOS 實例。

CoreOS 有這樣的功能嗎?

如果沒有,除了啟動 NGINX 容器以將所有流量從 HTTP 負載均衡器路由到不同容器之外,我還有什麼其他選擇?

在 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

引用自:https://serverfault.com/questions/767767