Load-Balancing
通過 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 ...
我知道這可以通過使用 Ingress 的 Kubernetes來完成- 每個 docker 容器都將被 HTTP 負載均衡器視為後端服務,這最終將用於生產;對於我的 test/qa/demo 設置,我正在尋找更簡單的東西,一個大型 CoreOS 實例,執行多個 docker 容器並具有完全相同的 HTTP 負載均衡器(稍後將在 prod 中使用)指向 docker 容器CoreOS 實例。
CoreOS 有這樣的功能嗎?
如果沒有,除了啟動 NGINX 容器以將所有流量從 HTTP 負載均衡器路由到不同容器之外,我還有什麼其他選擇?
在 GCP L7 LB 中,您已經:
LB 前端 >> LB 後端 >> 實例組 >> 實例 >> 埠
因此,所有艱苦的工作都發生在負載均衡器上。
得到你想要的東西的步驟是:
- 確保每個容器都在主機(CoreOS)上公開了自己的埠,並且您想要公開的服務可以通過這些埠訪問。
- 創建一個防火牆規則,允許來自 130.211.0.0/22 和 35.191.0.0/16 的流量到達您的 CoreOS 主機。- 這是為了允許從負載均衡器到您的容器的流量。
- 確保 CoreOS 主機屬於實例組。
- 繼續並配置您的 LB 後端(編輯 LB 配置)。為每個執行在 CoreOS 實例上的容器添加一個新的後端服務,並指定其埠。(在這裡您將每個容器與不同的後端相關聯)
- 繼續配置主機和路徑規則以根據需要將流量發送到後端。
- 配置您的前端(以及 IP 和可選的 SSL 證書)
- 給它 5 分鐘的時間來建立和測試你的東西。你完成了!
一旦你了解它是如何工作的,它就很容易管理。
請參閱https://cloud.google.com/compute/docs/load-balancing/http