我正在尝试学习如何构建高可用性负载均衡服务对于应用服务器(例如 HTTP 流量)以及它们如何与 DNS 服务器协同工作。
考虑下图。我的理解是,负载均衡器(例如 HAProxy)可以配置为指定主服务器,并在主服务器发生故障时将回退策略指定为辅助服务器(该辅助服务器将成为新的主服务器)。
- 这是否需要 DNS 服务器知道或选主 LB 服务器?
- DNS 服务器有时不是外部管理负载均衡器的公司或组织的数据中心(或直接控制范围之外)?如果是这样,他们如何在 DNS 服务器中指定要命中哪个 LB 服务器?
答案1
您已经确定了为负载均衡器(或反向代理)创建冗余后端服务器的问题,但却发现负载均衡器本身成为单点故障。
这通常是通过让两个或多个负载平衡器单元共享一个公共 IP 地址来解决的,又名浮动 IP 地址,从而形成一个负载均衡集群。
DNS 条目将仅指定此浮动 IP 地址,并让负载平衡集群确定哪个负载平衡单元接收哪个传入请求。因此 DNS 服务器通常不需要了解负载平衡器组中的主要成员和后备成员。
存在不同的实现方式,既可以实现主动/被动设计(其中任何时候都只有一个集群节点可通过浮动 IP 地址访问),也可以实现主动/主动设计(其中所有集群单元可同时通过浮动 IP 地址访问)。
存在多种集群协议和应用程序,例如虚拟专用网络,高速缓存,glbp了解了术语之后,找到更多的替代方案就是一件轻而易举的事情。
haproxy 可以通过多种方式部署以实现集群功能,并且可以轻松搜索解决方案,例如这里, 和这里。
还有其他方法。例如参见采用循环法的 DNS 负载平衡和DNS 地理位置路由。
是的,DNS 服务确实可以托管在托管负载平衡器的组织之外。这通常只会影响变更的准备时间,而不会影响负载平衡器集群功能本身(警告:专业解决方案)。