2017-03-13 32 views
1

我想爲我寫的web服務設置故障轉移。 無處不在我讀Docker羣1.12自動故障轉移,但我認爲只有失敗的容器。使用Docker Swarm進行DNS故障轉移1.12

我應該如何爲我的服務配置公共DNS?

如果主機關閉,故障轉移如何工作?

隨着正常的DNS輪循機制和節點的IP,它將無法工作。對於n臺服務器,每第n個請求都會失敗。如果一臺主機關閉,docker路由網格不起作用。或者我想念這裏的東西?

供參考:目前我沒有使用碼頭羣,但我打算這樣做。

回答

0

你有兩個選擇:

  • 如果您使用的是像amazonaws雲提供商,您可以使用ELB或什麼都負載均衡器的cloudprovider提供,他們通常支持模式TCP和健康檢查。然後你會將你的DNS指向負載平衡器。通過這種方式,當節點發生故障時,它將通過健康檢查從負載平衡器中移除,並在健康狀況再次恢復時恢復。

  • 您可以使用自己的負載平衡器。 HAproxy和Nginx支持TCP模式,您可以設置健康檢查規則。當一個節點發生故障時,它將通過健康檢查從負載平衡器中刪除,並在健康狀況再次恢復時恢復。確保HighAvailablity是通過Keepalived等工具提供的,因此loadbalancer不會成爲失敗點。

請注意,這適用於TCP流量,因爲許多負載均衡器不支持UDP流量。

+0

謝謝你的回答。目前我正在使用你的第二個選項。但在這裏我有同樣的問題。什麼時候節點(是負載均衡容器之一運行的)停止運行?我能在這裏做什麼?我喜歡更新DNS循環賽? – user3603632