Reverse-Proxy

如何為 HA 設置 Traefik?在 Traefik 前需要反向代理嗎?

  • April 12, 2021

我正在嘗試在生產站點上設置 Traefik,但我正在努力解決一些高可用性問題。我認為我們在 Traefik 集群前仍然需要一個反向代理。以下是我考慮過的潛在設置,以及為什麼似乎需要反向代理:

  1. 設置 DNS A 記錄以指向每個 Traefik 節點以進行負載平衡和故障轉移。
  1. 將一條 DNS 記錄指向執行 Traefik 的節點之一。
  • 該節點成為 SPOF。我的節點在 CoreOS 上執行,每次更新後都會重新啟動,因此我們可以保證每周有幾分鐘的停機時間。
  • 每當預計停機時,我們可以將 DNS 記錄移動到備用節點。這將是一個痛苦的手動管理。我可以設想一個與 locksmithd 配對的解決方案,它可以自動處理這個問題,但我真的不想建構它,它也不會處理意外停機時間。
  • 使用 Docker Swarm(或 Kubernetes)的部分理由是使節點可互換。
  1. 在 Traefik 集群前面放置一個負載均衡器/反向代理。反向代理可以在所有 Traefik 節點之間提供故障轉移,DNS 將指向反向代理。
  • 是的,這是一個 SPOF,但根據我的經驗,使用此設置很容易獲得良好的正常執行時間。如果需要偶爾維護,可以將 DNS 記錄指向新的代理。

我是否錯過了什麼或過度思考?

有不同類型的解決方案。

**1)**在您的 Swarm/Kubernetes 集群前建構您自己的 HA 負載均衡器,以分配流量並執行故障轉移。

那裡有很多不同的電器:

  1. 網標器
  2. 坎普
  3. F5

雖然這種方法是 HA,但通常並不便宜。

一個更便宜的替代方案可能是Nginx/Haproxy + Keepalived設置。

但是,您當然需要浮動 IP 並且必須處理 arp 記憶體。

**2)**使用“雲負載均衡器”。Digital Ocean、AWS、GKE、Openstack 都提供了這樣的功能。它更容易設置(大部分時間)但是如果它更便宜,你必須計算。

在 DigitalOcean 上,LB 僅為 20 美元,並且有一個帶有託管 Kubernetes 集群的 Beta。你可能想看看它。所有組件都很好地連接在一起 https://www.digitalocean.com/products/kubernetes/

3) 如果您的應用程序不是 100% 關鍵,我可以建議我迄今為止使用的特殊解決方案:

Cloudflare + 低 TTL + https://github.com/Berndinox/cloudflare-ddns

它的工作原理很簡單:https ://github.com/Berndinox/compose-v3-collection/blob/master/wordpress/www.yml 如何:它啟動 WordPress 及其所有要求,包括 DNS 容器。DNS 容器正在更新 Cloudflare 上域的 DNS 記錄(取決於容器啟動的主機,IP 不同)。很好,如果一個主機重新啟動或容器執行狀況檢查失敗,容器將重新調度。當被重新調度並且最初使用的主機處於離線狀態時,容器將在另一台主機上啟動,然後將新 IP 推送到 Cloudflare。這一切都是自動發生的,無需做任何事情。:)

Cloudflare TTL 非常低,因此可能只有幾秒鐘的停機時間。

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