Domain-Name-System

負載均衡器的 DNS 和容錯策略

  • June 27, 2020

我試圖讓自己了解如何為應用程序伺服器建構一個高度可用的負載平衡服務,例如 HTTP 流量,以及它們如何與 DNS 伺服器一起工作。

考慮下圖。我的理解是,負載均衡器(例如 HAProxy)可以配置為指定一個主伺服器和一個備用策略,如果主伺服器發生故障,則備用伺服器(成為新的主伺服器)。

  • 那不需要DNS伺服器知道選擇主LB伺服器嗎?
  • DNS 伺服器有時不是在管理負載均衡器的公司或組織的數據中心之外(或直接控制之外)嗎?如果是這樣,他們如何在 DNS 伺服器中指定要訪問的 LB 伺服器?

您已經確定了為負載均衡器(或反向代理)創建冗餘後端伺服器的問題,卻發現負載均衡器本身成為單點故障。

這通常通過讓兩個或多個負載均衡器單元共享一個公共 IP 地址(即浮動 IP 地址)來解決,從而創建一個負載均衡集群。

DNS 條目將僅指定這個浮動 IP 地址,並讓負載均衡集群確定哪個負載均衡單元接收哪個傳入請求。因此,DNS 伺服器通常不需要了解負載均衡器組中的主要成員和備用成員。

不同的實現方式使得在任何時候只有一個集群節點可以通過浮動 IP 地址到達的主動/被動設計和所有集群單元可以同時通過浮動 IP 地址到達的主動/主動設計成為可能。

存在大量集群協議和應用程序,例如vrrphsrpglbp。了解術語,找到更多替代方案是一項微不足道的任務。

haproxy 可以通過多種方式部署以實現集群功能,並且可以輕鬆搜尋解決方案,例如參見此處此處

還有其他方法。參見例如DNS Load Balancing with Round RobinDNS Geolocation routing

是的,DNS 服務確實可以在託管負載平衡器的組織的外部託管。這通常只影響更改的提前期,而不影響負載平衡器集群功能本身(警告:專門的解決方案)。

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