2015-06-17 109 views
0

我的目標是創建以下:

  • 一個nginx的容器作爲一個單一的入口點,這將負載平衡之中器N節點容器(API)的。
  • 一個MySQL容器(最終我會運行副本以及不知道這是否與問題有關)。
  • 許多API容器將連接到MySQL容器

根據我的理解:通常,應該存在用戶與特定訪問特定的表與它連接到MySQL的每個服務器的特定主機實例。管理MySQL用戶

問題:

我怎樣才能維持相同的安全水平,同時允許器N節點容器動態進入/離開負載平衡。

我在嘗試解決這個:

  • 力的所有節點容器到特定IP範圍內產卵,並創造接受來自該IP範圍連接的API用戶。我不確定是否可以強制docker在特定的IP範圍內創建容器。此外,這個解決方案仍然降低了安全性,因爲現在有一個範圍可用,而不是1-1。

  • 如果我可以找到一種方法來創建容器之間的私人連接(我知道 - 鏈接做到這一點,但它不會在重新啓動時動態更新),那麼我就不必公開數據庫。在這種情況下,擁有一個具有主機%的API用戶是可以接受的,因爲我確信沒有人能夠連接到除我自己的容器之外的那個容器?

+0

你是在Docker羣還是類似的部署? – Thomasleveil

+0

我最終打算使用Kubernetes,但如果swarm可以幫助我解決這個問題,我並不是反對在艦隊/ kubernetes上採用它。 –

回答

0

如果您在一個節點內運行所有容器,則可以在本地主機接口上公開所有API和數據庫容器。這樣他們將不能在節點外訪問並且彼此可見。如果您想在基於Kubernetes的某種雲中進行部署,您必須確保您的網絡符合以下要求中的最低要求:https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/networking.md這意味着所有節點都可以自由地相互通信。但即使如此,您仍然可以使用防火牆規則來保護您的部署,或僅爲內部通信提供專用網絡。當你有安全的網絡時,你不應該害怕外部連接。