我可以使用服务链接而不是负载均衡器吗?

时间:2016-11-28 06:52:37

标签: rancher

负载均衡器和服务链路都可以实现高服务可用性。 负载均衡器由代理进行,而服务链接则由DNS进行。

由于此DNS仅属于Rancher本身,因此公共服务只能使用负载均衡器来分发请求。

但是对于内部服务,如果服务链接与负载均衡器相同? 服务链接可用于高可用性吗?

由于DNS缓存,请求是否可能无法平衡分配?

例如:

服务backend,包含3个容器,backend_1backend_2backend_3

服务nginx,将proxy_pass设为backend

它是否会一直转移到backend_1,因为一旦它转为backend_1的DNS,它将始终使用backend_1

换句话说,我可以使用服务链接代替负载均衡器进行内部服务吗?

1 个答案:

答案 0 :(得分:0)

Rancher论坛上询问并回答:https://forums.rancher.com/t/load-balancer-or-service-link/4719/2

根据客户的行为,答案介于“根本没有正确平衡”和“作为粗略平衡请求的简单方法”之间。

DNS服务器将在每次询问时以随机顺序返回所有(健康)backend容器IP的答案,TTL为1秒。

但是客户可以随意使用这些信息做任何事情。有些人只接受第一个答案,其他人则从列表中随机选择,或not so randomly。有些人会尊重TTL,有些人会在他们决定的某段时间内或者永远地,或者在请求失败之前缓存该值等等。

默认情况下,Nginx会在启动时专门解析一次名称。要使它做任何其他事情,你必须给它一个resolver。任何主机上的Rancher DNS服务始终为169.254.169.250