我正在寻找网站的高可用性解决方案,并且已经找到了 Kubernates、Docker Swarm......但所有这些东西都应该只平衡集群中的 Web 服务器、数据库和其他正在运行的服务。但是 IP 地址 DNS 怎么办?假设我决定使用 Docker Swarm,并在 3 个独立托管提供商中创建节点:AWS、Digital Ocean、Rackspace 或其他...然后我将我的网站复制到 3 个位置,一切听起来都很完美,但同时需要将访问者引导到我的服务器,为此我可能必须使用循环 DNS(指向 3 个 IP 的记录)。如果我的一个节点发生故障怎么办?DNS 仍然会指向那里,一些访问者将无法连接。请告诉我这种情况下的解决方案是什么。循环 DNS 可能不是 HA 服务唯一需要的。
假设 AWS ELB 或 DO LB 出现故障,因为一些坏人决定向他们发送几百 Gbits 的洪水流量 :) 我的观点是,如果 LB 因某种原因出现故障,最好的解决方案是什么来保持 HA。
答案1
配置您的 DNS 以指向来自提供商的专用负载均衡器(AWS 中的 ELB 和 DO 中新引入的负载均衡器),然后这些 LB 会将流量引导到您的功能节点。
答案2
有两种方法可以解决这个问题:
- 使用具有主动监控功能的 DNS 提供商,如果后端无法访问,他们可以禁用它(虽然还不完美,但总比没有好)
- 建立自己的任播网络,让您的 IP 范围从不同的数据中心传播
如果我可以给你我的个人意见 - 不要使用其中任何一种。如今的云服务已经足够可靠。甚至谷歌/脸书也会时不时地瘫痪...