我正在使用docker-swarm建立一個雲架構的項目。我知道,使用swarm,我可以部署服務的副本,這意味着該映像的多個容器將運行以服務請求。如何在Docker-Swarm模式下完成負載均衡
我還看到,docker有一個內部負載均衡器來管理這個請求分配。
不過,我需要了解以下幫助:
說我有一個公開服務的REST API或者說,它的一個web應用程序的容器。如果我在羣中部署了多個容器(副本),並且我有其他容器(運行某些應用程序)與此HTTP/REST服務交談。
然後,當我寫這些應用程序IP:端口組合使用?是否有任何工作節點IP正在運行這些服務?這樣做是否會妥善分配負載,即使是在運行相同服務的其他工人/經理之間也是如此?
或者我應該調用管理器來反過來適當地維護路由(即使管理器節點沒有運行此特定服務的容器)?
謝謝。
你確定它總是循環?你能鏈接到這個事實嗎?它讓我感到奇怪的設計選擇。可能產生大量不必要的網絡流量,例如如果一個容器需要另一個容器的服務,並且在同一主機上有一個副本 - 應該給予副本優先級,以避免不必要的網絡流量。 –
@farhad:謝謝。我看到羣集中的節點之間的負載平衡混亂。但是,假設我已經將容器隔離到跨節點設置的不同覆蓋網絡。負載平衡是否仍然發生?(1) 節點++ - >容器(A)_1,容器(A) Container(A)類型的兩種服務都連接到三個不同的覆蓋網絡,每個覆蓋網絡只有C **,D&E在Node **上運行。 因此,當C,D或E試圖通過自己的覆蓋網絡訪問類型A的容器時,它會被處理嗎? – Shabirmean
@AssafLavie容器流量使用dns。 Swarm內部DNS將以循環順序返回與服務名稱匹配的所有活動容器記錄。 Kubernetes通過pod概念處理這個問題。 –