2017-04-22 38 views
1

我在想下面的碼頭設置是否有區別。碼頭集裝箱和服務之間的區別

  • 通過遠程API管理兩個獨立的碼頭引擎。
  • 通過一個單一的碼頭引擎管理兩個碼頭羣節點。

我想知道你是否可以管理一個能夠在特定節點上運行容器的羣體嗎?是否有任何使用情況具有不同的碼頭引擎?

回答

2

兩者之間的區別是swarm模式。當碼頭引擎正在以羣集模式運行服務時,您將獲得:

  • 編排從管理器不斷嘗試糾正當前狀態和目標狀態之間的差異。這也可以包括使用仲裁模型的高可用性(只要大多數管理人員可以做出決策)。
  • 覆蓋網絡允許不同主機上的容器在自己的容器網絡上相互通話。這也可能涉及IPSEC的安全性。
  • 已發佈端口的網狀網絡和不會像容器IP那樣改變的服務的VIP。後者可以防止來自DNS緩存的問題。前者擁有羣中的所有節點發布端口並將流量路由到提供此服務的容器。
  • 滾動升級可避免任何因複製服務造成的停機。
  • 擴展服務時跨多個節點的負載平衡。

關於羣模式的更多細節可從docker's documentation獲得。

swarm模式的不足之處在於,當它們在遠程節點上運行時,它們會從容器中移除一層。您無法在任務上運行exec命令來調查容器,您需要在容器上執行該命令並且位於當前正在使用的節點上。 Docker還從--volumes-from等服務中刪除了一些選項,這些選項在容器可能在不同機器上運行時不適用。

如果您認爲您可能會超越在單個節點上運行容器,需要在不同節點上的容器之間進行通信,或者只需要滾動升級等編排功能,那麼我會推薦swarm模式。如果您有特定的要求阻止羣集模式成爲選項,我只能直接在主機上管理容器。而且,您可以同時執行這兩種操作,直接管理一些容器,將其他人作爲服務或堆棧內的堆棧,在同一個節點上管理。