2016-11-28 31 views
0

負載均衡器和服務鏈路都可以實現服務的高可用性。 負載均衡器通過代理服務器,而通過DNS服務鏈接。我可以使用服務鏈接而不是負載平衡器嗎?

因爲這個DNS只屬於Rancher本身,所以公共服務只能使用負載平衡器來分配請求。

但是對於內部服務,如果服務鏈接與負載平衡器相同? 服務鏈接是否可用於高度可用性?

由於DNS緩存,請求是否可能無法平衡分配?

例如:

服務backend,3個容器,backend_1backend_2backend_3

服務nginx的,使一個proxy_passbackend

難道總是傳遞給backend_1,因爲它一旦DNS來backend_1,它總是使用backend_1

換句話說,我可以使用服務連接而不是負載均衡器來進行內部服務嗎?

回答

0

這是自問自答的牧場主論壇:https://forums.rancher.com/t/load-balancer-or-service-link/4719/2

根據客戶端的行爲,得到的答覆是介於「完全不正確的平衡」,並作爲一個簡單的方法粗略地平衡「工程確定要求」。

DNS服務器會返回一個答案與的(健康)的IP地址的所有backend容器在每次它要求隨機順序,以1秒的TTL。

但客戶端可以自由地做任何喜歡的信息。有些人會拿第一個答案,其他人會從列表中隨機選擇,或者not so randomly。有些人會尊重TTL,其他人會將這些值緩存一段時間,或者直到請求失敗等等。

Nginx具體會在啓動時默認解析一次名稱。爲了讓它做任何事你必須給它一個resolver。任何主機上的牧場主DNS服務始終爲169.254.169.250

+1

請問您是否可以嘗試在您的答案中包含鏈接的相關部分?鏈接傾向於打破,這將使這個問題得不到解決。有關更多信息,請參閱[如何解答](http://stackoverflow.com/help/how-to-answer)。 – hbaderts

相關問題