负载均衡
2024年07月25日
一、认识
Docker Swarm
提供了内置的负载均衡功能,以便在多个服务副本之间均匀分配流量。当你在 Swarm
集群中创建一个服务并指定多个副本时,Swarm
会自动在这些副本之间分配流量,从而实现负载均衡。
二、原理
2.1 DNS 轮询
Swarm
使用内部的 DNS
服务为每个服务创建一个 DNS
条目。当请求解析服务的 DNS
名称时,DNS
服务会返回所有可用副本的 IP
地址。客户端可以通过轮询这些 IP
地址来实现负载均衡。
2.2 VIP 模式
Swarm
为每个服务分配一个虚拟 IP
地址(VIP
),所有服务副本共享这个 VIP
。当请求到达 VIP
时,Swarm
会自动将请求分发到相应的服务副本。
2.3 内部负载均衡
Swarm
集群中的每个节点都有一个内置的负载均衡器,用于在集群内部均匀分配流量。当外部请求到达某个节点时,如果该节点上没有目标服务的副本,Swarm
会将请求转发到有服务副本的节点上。