2015-06-17 84 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这意味着所有节点都可以自由地相互通信。但即使如此,您仍然可以使用防火墙规则来保护您的部署,或仅为内部通信提供专用网络。当你有安全的网络时,你不应该害怕外部连接。